var fabric,saveAs;(function(){var n;window.AmCharts?n=window.AmCharts:(n={},window.AmCharts=n,n.themes={},n.maps={},n.inheriting={},n.charts=[],n.onReadyArray=[],n.useUTC=!1,n.updateRate=30,n.uid=0,n.lang={},n.translations={},n.mapTranslations={},n.windows={},n.initHandlers=[]);n.Class=function(t){var i=function(){arguments[0]!==n.inheriting&&(this.events={},this.construct.apply(this,arguments))},r;t.inherits?(i.prototype=new t.inherits(n.inheriting),i.base=t.inherits.prototype,delete t.inherits):(i.prototype.createEvents=function(){for(var n=0,t=arguments.length;n<t;n++)this.events[arguments[n]]=[]},i.prototype.listenTo=function(n,t,i){this.removeListener(n,t,i);n.events[t].push({handler:i,scope:this})},i.prototype.addListener=function(n,t,i){this.removeListener(this,n,t);this.events[n].push({handler:t,scope:i})},i.prototype.removeListener=function(n,t,i){if(n&&n.events)for(n=n.events[t],t=n.length-1;0<=t;t--)n[t].handler===i&&n.splice(t,1)},i.prototype.fire=function(n,t){for(var r,u=this.events[n],i=0,f=u.length;i<f;i++)r=u[i],r.handler.call(r.scope,t)});for(r in t)i.prototype[r]=t[r];return i};n.addChart=function(t){n.updateInt||(n.updateInt=setInterval(function(){n.update()},Math.round(1e3/n.updateRate)));n.charts.push(t)};n.removeChart=function(t){for(var i=n.charts,r=i.length-1;0<=r;r--)i[r]==t&&i.splice(r,1);0===i.length&&n.updateInt&&(clearInterval(n.updateInt),n.updateInt=NaN)};n.isModern=!0;n.getIEVersion=function(){var n=0,t,i;return"Microsoft Internet Explorer"==navigator.appName&&(t=navigator.userAgent,i=/MSIE ([0-9]{1,}[.0-9]{0,})/,null!==i.exec(t)&&(n=parseFloat(RegExp.$1))),n};n.applyLang=function(t,i){var r=n.translations;i.dayNames=n.extend({},n.dayNames);i.shortDayNames=n.extend({},n.shortDayNames);i.monthNames=n.extend({},n.monthNames);i.shortMonthNames=n.extend({},n.shortMonthNames);i.amString="am";i.pmString="pm";r&&(r=r[t])&&(n.lang=r,r.monthNames&&(i.dayNames=n.extend({},r.dayNames),i.shortDayNames=n.extend({},r.shortDayNames),i.monthNames=n.extend({},r.monthNames),i.shortMonthNames=n.extend({},r.shortMonthNames)),r.am&&(i.amString=r.am),r.pm&&(i.pmString=r.pm))};n.IEversion=n.getIEVersion();9>n.IEversion&&0<n.IEversion&&(n.isModern=!1,n.isIE=!0);n.dx=0;n.dy=0;(document.addEventListener||window.opera)&&(n.isNN=!0,n.isIE=!1,n.dx=.5,n.dy=.5);document.attachEvent&&(n.isNN=!1,n.isIE=!0,n.isModern||(n.dx=0,n.dy=0));window.chrome&&(n.chrome=!0);n.handleMouseUp=function(t){for(var r,u=n.charts,i=0;i<u.length;i++)r=u[i],r&&r.handleReleaseOutside&&r.handleReleaseOutside(t)};n.handleMouseMove=function(t){for(var r,u=n.charts,i=0;i<u.length;i++)r=u[i],r&&r.handleMouseMove&&r.handleMouseMove(t)};n.handleWheel=function(t){for(var i,u=n.charts,r=0;r<u.length;r++)if(i=u[r],i&&i.mouseIsOver){i.mouseWheelScrollEnabled||i.mouseWheelZoomEnabled?i.handleWheel&&i.handleWheel(t):t.stopPropagation&&t.stopPropagation();break}};n.resetMouseOver=function(){for(var r,i=n.charts,t=0;t<i.length;t++)r=i[t],r&&(r.mouseIsOver=!1)};n.ready=function(t){n.onReadyArray.push(t)};n.handleLoad=function(){var i,t,r;for(n.isReady=!0,i=n.onReadyArray,t=0;t<i.length;t++)r=i[t],isNaN(n.processDelay)?r():setTimeout(r,n.processDelay*t)};n.addInitHandler=function(t,i){n.initHandlers.push({method:t,types:i})};n.callInitHandler=function(t){var u=n.initHandlers,r,i;if(n.initHandlers)for(r=0;r<u.length;r++)i=u[r],i.types?n.isInArray(i.types,t.type)&&i.method(t):i.method(t)};n.getUniqueId=function(){return n.uid++,"AmChartsEl-"+n.uid};n.isNN&&(document.addEventListener("mousemove",n.handleMouseMove,!0),document.addEventListener("mouseup",n.handleMouseUp,!0),window.addEventListener("load",n.handleLoad,!0),window.addEventListener("DOMMouseScroll",n.handleWheel,!0),document.addEventListener("mousewheel",n.handleWheel,!0));n.isIE&&(document.attachEvent("onmousemove",n.handleMouseMove),document.attachEvent("onmouseup",n.handleMouseUp),window.attachEvent("onload",n.handleLoad));n.clear=function(){var i=n.charts,t;if(i)for(t=i.length-1;0<=t;t--)i[t].clear();n.updateInt&&clearInterval(n.updateInt);n.charts=[];n.isNN&&(document.removeEventListener("mousemove",n.handleMouseMove,!0),document.removeEventListener("mouseup",n.handleMouseUp,!0),window.removeEventListener("load",n.handleLoad,!0),window.removeEventListener("DOMMouseScroll",n.handleWheel,!0),document.removeEventListener("mousewheel",n.handleWheel,!0));n.isIE&&(document.detachEvent("onmousemove",n.handleMouseMove),document.detachEvent("onmouseup",n.handleMouseUp),window.detachEvent("onload",n.handleLoad))};n.makeChart=function(t,i,r){var e=i.type,f=i.theme,u;n.isString(f)&&(f=n.themes[f],i.theme=f);switch(e){case"serial":u=new n.AmSerialChart(f);break;case"xy":u=new n.AmXYChart(f);break;case"pie":u=new n.AmPieChart(f);break;case"radar":u=new n.AmRadarChart(f);break;case"gauge":u=new n.AmAngularGauge(f);break;case"funnel":u=new n.AmFunnelChart(f);break;case"map":u=new n.AmMap(f);break;case"stock":u=new n.AmStockChart(f);break;case"gantt":u=new n.AmGanttChart(f)}return n.extend(u,i),n.isReady?isNaN(r)?u.write(t):setTimeout(function(){n.realWrite(u,t)},r):n.ready(function(){isNaN(r)?u.write(t):setTimeout(function(){n.realWrite(u,t)},r)}),u};n.realWrite=function(n,t){n.write(t)};n.updateCount=0;n.validateAt=Math.round(n.updateRate/5);n.update=function(){var i=n.charts,r,t;if(n.updateCount++,r=!1,n.updateCount==n.validateAt&&(r=!0,n.updateCount=0),i)for(t=0;t<i.length;t++)i[t].update&&i[t].update(),r&&i[t].autoResize&&i[t].validateSize&&i[t].validateSize()};n.bezierX=3;n.bezierY=6})(),function(){var n=window.AmCharts;n.toBoolean=function(n,t){if(void 0===n)return t;switch(String(n).toLowerCase()){case"true":case"yes":case"1":return!0;case"false":case"no":case"0":case null:return!1;default:return Boolean(n)}};n.removeFromArray=function(n,t){var i;if(void 0!==t&&void 0!==n)for(i=n.length-1;0<=i;i--)n[i]==t&&n.splice(i,1)};n.getPath=function(){var t=document.getElementsByTagName("script"),n,i;if(t)for(n=0;n<t.length;n++)if(i=t[n].src,-1!==i.search(/\/(amcharts|ammap)\.js/))return i.replace(/\/(amcharts|ammap)\.js.*/,"/")};n.normalizeUrl=function(n){return""!==n&&-1===n.search(/\/$/)?n+"/":n};n.isAbsolute=function(n){return 0===n.search(/^http[s]?:|^\//)};n.isInArray=function(n,t){for(var i=0;i<n.length;i++)if(n[i]==t)return!0;return!1};n.getDecimals=function(n){var t=0;return isNaN(n)||(n=String(n),-1!=n.indexOf("e-")?t=Number(n.split("-")[1]):-1!=n.indexOf(".")&&(t=n.split(".")[1].length)),t};n.wordwrap=function(t,i,r,u){var o,e,f,s;if(t+="",1>i)return t;for(o=-1,t=(s=t.split(/\r\n|\n|\r/)).length;++o<t;s[o]+=f){for(f=s[o],s[o]="";f.length>i;s[o]+=n.trim(f.slice(0,e))+((f=f.slice(e)).length?r:""))e=2==u||(e=f.slice(0,i+1).match(/\S*(\s)?$/))[1]?i:e.input.length-e[0].length||1==u&&i||e.input.length+(e=f.slice(i).match(/^\S*/))[0].length;f=n.trim(f)}return s.join(r)};n.trim=function(n){return n.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};n.wrappedText=function(t,i,r,u,f,e,o,s){var h=n.text(t,i,r,u,f,e,o),c,l;return h&&(c=h.getBBox(),c.width>s&&(l="\n",n.isModern||(l="<br>"),s=Math.floor(s/(c.width/i.length)),2<s&&(s-=2),i=n.wordwrap(i,s,l,!0),h.remove(),h=n.text(t,i,r,u,f,e,o))),h};n.getStyle=function(n,t){var i="";return document.defaultView&&document.defaultView.getComputedStyle?i=document.defaultView.getComputedStyle(n,"").getPropertyValue(t):n.currentStyle&&(t=t.replace(/\-(\w)/g,function(n,t){return t.toUpperCase()}),i=n.currentStyle[t]),i};n.removePx=function(n){if(void 0!==n)return Number(n.substring(0,n.length-2))};n.getURL=function(t,i){if(t)if("_self"!=i&&i)if("_top"==i&&window.top)window.top.location.href=t;else if("_parent"==i&&window.parent)window.parent.location.href=t;else if("_blank"==i)window.open(t);else{var r=document.getElementsByName(i)[0];r?r.src=t:(r=n.windows[i])?r.opener&&!r.opener.closed?r.location.href=t:n.windows[i]=window.open(t):n.windows[i]=window.open(t)}else window.location.href=t};n.ifArray=function(n){return n&&"object"==typeof n&&0<n.length?!0:!1};n.callMethod=function(n,t){for(var i,e,u,f,r=0;r<t.length;r++)if(i=t[r],i&&(i[n]&&i[n](),e=i.length,0<e))for(u=0;u<e;u++)f=i[u],f&&f[n]&&f[n]()};n.toNumber=function(n){return"number"==typeof n?n:Number(String(n).replace(/[^0-9\-.]+/g,""))};n.toColor=function(n){var t,i;if(""!==n&&void 0!==n)if(-1!=n.indexOf(","))for(n=n.split(","),t=0;t<n.length;t++)i=n[t].substring(n[t].length-6,n[t].length),n[t]="#"+i;else n=n.substring(n.length-6,n.length),n="#"+n;return n};n.toCoordinate=function(n,t,i){var r;return void 0!==n&&(n=String(n),i&&i<t&&(t=i),r=Number(n),-1!=n.indexOf("!")&&(r=t-Number(n.substr(1))),-1!=n.indexOf("%")&&(r=t*Number(n.substr(0,n.length-1))/100)),r};n.fitToBounds=function(n,t,i){return n<t&&(n=t),n>i&&(n=i),n};n.isDefined=function(n){return void 0===n?!1:!0};n.stripNumbers=function(n){return n.replace(/[0-9]+/g,"")};n.roundTo=function(n,t){if(0>t)return n;var i=Math.pow(10,t);return Math.round(n*i)/i};n.toFixed=function(n,t){var i=String(Math.round(n*Math.pow(10,t))),r,u;if(0<t){if(r=i.length,r<t)for(u=0;u<t-r;u++)i="0"+i;return r=i.substring(0,i.length-t),""===r&&(r=0),r+"."+i.substring(i.length-t,i.length)}return String(i)};n.formatDuration=function(t,i,r,u,f,e){var s=n.intervals,h=e.decimalSeparator,o;if(t>=s[i].contains)return o=t-Math.floor(t/s[i].contains)*s[i].contains,"ss"==i?(o=n.formatNumber(o,e),1==o.split(h)[0].length&&(o="0"+o)):o=n.roundTo(o,e.precision),("mm"==i||"hh"==i)&&10>o&&(o="0"+o),r=o+""+u[i]+""+r,t=Math.floor(t/s[i].contains),i=s[i].nextInterval,n.formatDuration(t,i,r,u,f,e);if("ss"==i&&(t=n.formatNumber(t,e),1==t.split(h)[0].length&&(t="0"+t)),("mm"==i||"hh"==i)&&10>t&&(t="0"+t),r=t+""+u[i]+""+r,s[f].count>s[i].count)for(t=s[i].count;t<s[f].count;t++)i=s[i].nextInterval,"ss"==i||"mm"==i||"hh"==i?r="00"+u[i]+""+r:"DD"==i&&(r="0"+u[i]+""+r);return":"==r.charAt(r.length-1)&&(r=r.substring(0,r.length-1)),r};n.formatNumber=function(t,i,r,u,f){var c,l,e,h,s,o;if(t=n.roundTo(t,i.precision),isNaN(r)&&(r=i.precision),c=i.decimalSeparator,i=i.thousandsSeparator,l=0>t?"-":"",t=Math.abs(t),h=String(t),s=!1,-1!=h.indexOf("e")&&(s=!0),0<=r&&!s&&(h=n.toFixed(t,r)),e="",s)e=h;else{for(h=h.split("."),s=String(h[0]),o=s.length;0<=o;o-=3)e=o!=s.length?0!==o?s.substring(o-3,o)+i+e:s.substring(o-3,o)+e:s.substring(o-3,o);void 0!==h[1]&&(e=e+c+h[1]);void 0!==r&&0<r&&"0"!=e&&(e=n.addZeroes(e,c,r))}return e=l+e,""===l&&!0===u&&0!==t&&(e="+"+e),!0===f&&(e+="%"),e};n.addZeroes=function(t,i,r){return t=t.split(i),void 0===t[1]&&0<r&&(t[1]="0"),t[1].length<r?(t[1]+="0",n.addZeroes(t[0]+i+t[1],i,r)):void 0!==t[1]?t[0]+i+t[1]:t[0]};n.scientificToNormal=function(n){var t,i,r;if(n=String(n).split("e"),"-"==n[1].substr(0,1)){for(t="0.",i=0;i<Math.abs(Number(n[1]))-1;i++)t+="0";t+=n[0].split(".").join("")}else for(r=0,t=n[0].split("."),t[1]&&(r=t[1].length),t=n[0].split(".").join(""),i=0;i<Math.abs(Number(n[1]))-r;i++)t+="0";return t};n.toScientific=function(n,t){if(0===n)return"0";var r=Math.floor(Math.log(Math.abs(n))*Math.LOG10E),i=String(i).split(".").join(t);return String(i)+"e"+r};n.randomColor=function(){return"#"+("00000"+(16777216*Math.random()<<0).toString(16)).substr(-6)};n.hitTest=function(t,i,r){var u=!1,e=t.x,o=t.x+t.width,s=t.y,h=t.y+t.height,f=n.isInRectangle;return u||(u=f(e,s,i)),u||(u=f(e,h,i)),u||(u=f(o,s,i)),u||(u=f(o,h,i)),u||!0===r||(u=n.hitTest(i,t,!0)),u};n.isInRectangle=function(n,t,i){return n>=i.x-5&&n<=i.x+i.width+5&&t>=i.y-5&&t<=i.y+i.height+5?!0:!1};n.isPercents=function(n){if(-1!=String(n).indexOf("%"))return!0};n.findPosX=function(n){var t=n,i=n.offsetLeft;if(n.offsetParent){for(;n=n.offsetParent;)i+=n.offsetLeft;for(;(t=t.parentNode)&&t!=document.body;)i-=t.scrollLeft||0}return i};n.findPosY=function(n){var t=n,i=n.offsetTop;if(n.offsetParent){for(;n=n.offsetParent;)i+=n.offsetTop;for(;(t=t.parentNode)&&t!=document.body;)i-=t.scrollTop||0}return i};n.findIfFixed=function(t){if(t.offsetParent)for(;t=t.offsetParent;)if("fixed"==n.getStyle(t,"position"))return!0;return!1};n.findIfAuto=function(t){return t.style&&"auto"==n.getStyle(t,"overflow")?!0:t.parentNode?n.findIfAuto(t.parentNode):!1};n.findScrollLeft=function(t,i){return t.scrollLeft&&(i+=t.scrollLeft),t.parentNode?n.findScrollLeft(t.parentNode,i):i};n.findScrollTop=function(t,i){return t.scrollTop&&(i+=t.scrollTop),t.parentNode?n.findScrollTop(t.parentNode,i):i};n.formatValue=function(t,i,r,u,f,e,o,s){var c,l,h;if(i)for(void 0===f&&(f=""),c=0;c<r.length;c++)l=r[c],h=i[l],void 0!==h&&(h=e?n.addPrefix(h,s,o,u):n.formatNumber(h,u),t=t.replace(new RegExp("\\[\\["+f+""+l+"\\]\\]","g"),h));return t};n.formatDataContextValue=function(n,t){var u,r,i;if(n)for(u=n.match(/\[\[.*?\]\]/g),r=0;r<u.length;r++)i=u[r],i=i.substr(2,i.length-4),void 0!==t[i]&&(n=n.replace(new RegExp("\\[\\["+i+"\\]\\]","g"),t[i]));return n};n.massReplace=function(n,t){var i,r;for(i in t)t.hasOwnProperty(i)&&(r=t[i],void 0===r&&(r=""),n=n.replace(i,r));return n};n.cleanFromEmpty=function(n){return n.replace(/\[\[[^\]]*\]\]/g,"")};n.addPrefix=function(t,i,r,u,f){var h=n.formatNumber(t,u),c="",e,o,s;if(0===t)return"0";if(0>t&&(c="-"),t=Math.abs(t),1<t){for(e=i.length-1;-1<e;e--)if(t>=i[e].number&&(o=t/i[e].number,s=Number(u.precision),1>s&&(s=1),r=n.roundTo(o,s),s=n.formatNumber(r,{precision:-1,decimalSeparator:u.decimalSeparator,thousandsSeparator:u.thousandsSeparator}),!f||o==r)){h=c+""+s+""+i[e].prefix;break}}else for(e=0;e<r.length;e++)if(t<=r[e].number){o=t/r[e].number;s=Math.abs(Math.floor(Math.log(o)*Math.LOG10E));o=n.roundTo(o,s);h=c+""+o+""+r[e].prefix;break}return h};n.remove=function(n){n&&n.remove()};n.getEffect=function(n){return">"==n&&(n="easeOutSine"),"<"==n&&(n="easeInSine"),"elastic"==n&&(n="easeOutElastic"),n};n.getObjById=function(n,t){for(var u,r,i=0;i<n.length;i++)r=n[i],r.id==t&&(u=r);return u};n.applyTheme=function(t,i,r){i||(i=n.theme);i&&i[r]&&n.extend(t,i[r])};n.isString=function(n){return"string"==typeof n?!0:!1};n.extend=function(n,t,i){var r;n||(n={});for(r in t)i?n.hasOwnProperty(r)||(n[r]=t[r]):n[r]=t[r];return n};n.copyProperties=function(n,t){for(var i in n)n.hasOwnProperty(i)&&"events"!=i&&void 0!==n[i]&&"function"!=typeof n[i]&&"cname"!=i&&(t[i]=n[i])};n.processObject=function(t,i,r,u){if(!1==t instanceof i&&(t=u?n.extend(new i(r),t):n.extend(t,new i(r),!0),t.listeners))for(var f in t.listeners)i=t.listeners[f],t.addListener(i.event,i.method);return t};n.fixNewLines=function(n){var t=RegExp("\\n","g");return n&&(n=n.replace(t,"<br />")),n};n.fixBrakes=function(t){if(n.isModern){var i=RegExp("<br>","g");t&&(t=t.replace(i,"\n"))}else t=n.fixNewLines(t);return t};n.deleteObject=function(t,i){if(t&&((void 0===i||null===i)&&(i=20),0!==i))if("[object Array]"===Object.prototype.toString.call(t))for(var r=0;r<t.length;r++)n.deleteObject(t[r],i-1),t[r]=null;else if(t&&!t.tagName)try{for(r in t)t[r]&&("object"==typeof t[r]&&n.deleteObject(t[r],i-1),"function"!=typeof t[r]&&(t[r]=null))}catch(u){}};n.bounce=function(n,t,i,r,u){return(t/=u)<1/2.75?7.5625*r*t*t+i:t<2/2.75?r*(7.5625*(t-=1.5/2.75)*t+.75)+i:t<2.5/2.75?r*(7.5625*(t-=2.25/2.75)*t+.9375)+i:r*(7.5625*(t-=2.625/2.75)*t+.984375)+i};n.easeInOutQuad=function(n,t,i,r,u){return(t/=u/2,1>t)?r/2*t*t+i:(t--,-r/2*(t*(t-2)-1)+i)};n.easeInSine=function(n,t,i,r,u){return-r*Math.cos(t/u*(Math.PI/2))+r+i};n.easeOutSine=function(n,t,i,r,u){return r*Math.sin(t/u*(Math.PI/2))+i};n.easeOutElastic=function(n,t,i,r,u){n=1.70158;var f=0,e=r;return 0===t?i:1==(t/=u)?i+r:(f||(f=.3*u),e<Math.abs(r)?(e=r,n=f/4):n=f/(2*Math.PI)*Math.asin(r/e),e*Math.pow(2,-10*t)*Math.sin(2*(t*u-n)*Math.PI/f)+r+i)};n.fixStepE=function(t){t=t.toExponential(0).split("e");var i=Number(t[1]);return 9==Number(t[0])&&i++,n.generateNumber(1,i)};n.generateNumber=function(n,t){for(var i="",u=0>t?Math.abs(t)-1:Math.abs(t),r=0;r<u;r++)i+="0";return 0>t?Number("0."+i+String(n)):Number(String(n)+i)};n.setCN=function(n,t,i,r){if(n.addClassNames&&t&&(t=t.node)&&i){var u=t.getAttribute("class");n=n.classNamePrefix+"-";r&&(n="");u?t.setAttribute("class",u+" "+n+i):t.setAttribute("class",n+i)}};n.parseDefs=function(t,i){var r,u,f;for(r in t)if(u=typeof t[r],0<t[r].length&&"object"==u)for(f=0;f<t[r].length;f++)u=document.createElementNS(n.SVG_NS,r),i.appendChild(u),n.parseDefs(t[r][f],u);else"object"==u?(u=document.createElementNS(n.SVG_NS,r),i.appendChild(u),n.parseDefs(t[r],u)):i.setAttribute(r,t[r])}}(),function(){var n=window.AmCharts;n.AxisBase=n.Class({construct:function(t){this.createEvents("clickItem","rollOverItem","rollOutItem");this.viY=this.viX=this.titleDY=this.y=this.x=this.dy=this.dx=0;this.axisThickness=1;this.axisColor="#000000";this.axisAlpha=1;this.gridCount=this.tickLength=5;this.gridAlpha=.15;this.gridThickness=1;this.gridColor="#000000";this.dashLength=0;this.labelFrequency=1;this.showLastLabel=this.showFirstLabel=!0;this.fillColor="#FFFFFF";this.fillAlpha=0;this.labelsEnabled=!0;this.labelRotation=0;this.autoGridCount=!0;this.offset=0;this.guides=[];this.visible=!0;this.counter=0;this.guides=[];this.ignoreAxisWidth=this.inside=!1;this.minHorizontalGap=75;this.minVerticalGap=35;this.titleBold=!0;this.minorGridEnabled=!1;this.minorGridAlpha=.07;this.autoWrap=!1;this.titleAlign="middle";this.labelOffset=0;this.bcn="axis-";this.centerLabels=!1;this.periods=[{period:"ss",count:1},{period:"ss",count:5},{period:"ss",count:10},{period:"ss",count:30},{period:"mm",count:1},{period:"mm",count:5},{period:"mm",count:10},{period:"mm",count:30},{period:"hh",count:1},{period:"hh",count:3},{period:"hh",count:6},{period:"hh",count:12},{period:"DD",count:1},{period:"DD",count:2},{period:"DD",count:3},{period:"DD",count:4},{period:"DD",count:5},{period:"WW",count:1},{period:"MM",count:1},{period:"MM",count:2},{period:"MM",count:3},{period:"MM",count:6},{period:"YYYY",count:1},{period:"YYYY",count:2},{period:"YYYY",count:5},{period:"YYYY",count:10},{period:"YYYY",count:50},{period:"YYYY",count:100}];this.dateFormats=[{period:"fff",format:"JJ:NN:SS"},{period:"ss",format:"JJ:NN:SS"},{period:"mm",format:"JJ:NN"},{period:"hh",format:"JJ:NN"},{period:"DD",format:"MMM DD"},{period:"WW",format:"MMM DD"},{period:"MM",format:"MMM"},{period:"YYYY",format:"YYYY"}];this.nextPeriod={fff:"ss",ss:"mm",mm:"hh",hh:"DD",DD:"MM",MM:"YYYY"};n.applyTheme(this,t,"AxisBase")},zoom:function(n,t){this.start=n;this.end=t;this.dataChanged=!0;this.draw()},fixAxisPosition:function(){var n=this.position;"H"==this.orientation?("left"==n&&(n="bottom"),"right"==n&&(n="top")):("bottom"==n&&(n="left"),"top"==n&&(n="right"));this.position=n},draw:function(){var n=this.chart,t,i;this.allLabels=[];this.counter=0;this.destroy();this.fixAxisPosition();this.labels=[];t=n.container;i=t.set();n.gridSet.push(i);this.set=i;t=t.set();n.axesLabelsSet.push(t);this.labelsSet=t;this.axisLine=new this.axisRenderer(this);this.autoGridCount?("V"==this.orientation?(n=this.height/this.minVerticalGap,3>n&&(n=3)):n=this.width/this.minHorizontalGap,this.gridCountR=Math.max(n,1)):this.gridCountR=this.gridCount;this.axisWidth=this.axisLine.axisWidth;this.addTitle()},setOrientation:function(n){this.orientation=n?"H":"V"},addTitle:function(){var i=this.title,t,r,u;this.titleLabel=null;i&&(t=this.chart,r=this.titleColor,void 0===r&&(r=t.color),u=this.titleFontSize,isNaN(u)&&(u=t.fontSize+1),i=n.text(t.container,i,r,t.fontFamily,u,this.titleAlign,this.titleBold),n.setCN(t,i,this.bcn+"title"),this.titleLabel=i)},positionTitle:function(){var f=this.titleLabel,i,e,t,r,s;if(f){r=this.labelsSet;t={};0<r.length()?t=r.getBBox():(t.x=0,t.y=0,t.width=this.viW,t.height=this.viH,n.VML&&(t.y+=this.y,t.x+=this.x));r.push(f);r=t.x;s=t.y;n.VML&&(this.rotate?r-=this.x:s-=this.y);var v=t.width,t=t.height,h=this.viW,c=this.viH,o=0,l=f.getBBox().height/2,a=this.inside,u=this.titleAlign;switch(this.position){case"top":i="left"==u?-1:"right"==u?h:h/2;e=s-10-l;break;case"bottom":i="left"==u?-1:"right"==u?h:h/2;e=s+t+10+l;break;case"left":i=r-10-l;a&&(i-=5);o=-90;e=("left"==u?c+1:"right"==u?-1:c/2)+this.titleDY;break;case"right":i=r+v+10+l;a&&(i+=7);e=("left"==u?c+2:"right"==u?-2:c/2)+this.titleDY;o=-90}this.marginsChanged?(f.translate(i,e),this.tx=i,this.ty=e):f.translate(this.tx,this.ty);this.marginsChanged=!1;isNaN(this.titleRotation)||(o=this.titleRotation);0!==o&&f.rotate(o)}},pushAxisItem:function(n,t){var r=this,i=n.graphics();0<i.length()&&(t?r.labelsSet.push(i):r.set.push(i));(i=n.getLabel())&&(this.labelsSet.push(i),i.click(function(t){r.handleMouse(t,n,"clickItem")}).mouseover(function(t){r.handleMouse(t,n,"rollOverItem")}).mouseout(function(t){r.handleMouse(t,n,"rollOutItem")}))},handleMouse:function(n,t,i){this.fire(i,{type:i,value:t.value,serialDataItem:t.serialDataItem,axis:this,target:t.label,chart:this.chart,event:n})},addGuide:function(t){for(var i=this.guides,u=!1,f=i.length,r=0;r<i.length;r++)i[r]==t&&(u=!0,f=r);t=n.processObject(t,n.Guide,this.theme);t.id||(t.id="guideAuto"+f+"_"+(new Date).getTime());u||i.push(t)},removeGuide:function(n){for(var i=this.guides,t=0;t<i.length;t++)i[t]==n&&i.splice(t,1)},handleGuideOver:function(n){clearTimeout(this.chart.hoverInt);var t=n.graphics.getBBox(),r=this.x+t.x+t.width/2,t=this.y+t.y+t.height/2,i=n.fillColor;void 0===i&&(i=n.lineColor);this.chart.showBalloon(n.balloonText,i,!0,r,t)},handleGuideOut:function(){this.chart.hideBalloon()},addEventListeners:function(n,t){var i=this;n.mouseover(function(){i.handleGuideOver(t)});n.touchstart(function(){i.handleGuideOver(t)});n.mouseout(function(){i.handleGuideOut(t)})},getBBox:function(){var t=this.labelsSet.getBBox();return n.VML||(t={x:t.x+this.x,y:t.y+this.y,width:t.width,height:t.height}),t},destroy:function(){n.remove(this.set);n.remove(this.labelsSet);var t=this.axisLine;t&&n.remove(t.set);n.remove(this.grid0)},chooseMinorFrequency:function(n){for(var t=10;0<t;t--)if(n/t==Math.round(n/t))return n/t},parseDatesDraw:function(){var h,d=this.chart,tt=this.showFirstLabel,it=this.showLastLabel,i,t="",u=n.extractPeriod(this.minPeriod),c=n.getPeriodDuration(u.period,u.count),e,v,y,l,r,w=this.firstDayOfWeek,rt=this.boldPeriodBeginning,p,nt,b,k;h=this.minorGridEnabled;var a,ut=this.gridAlpha,g,s=this.choosePeriod(0),o=s.period,s=s.count,f=n.getPeriodDuration(o,s);if(f<c&&(o=u.period,s=u.count,f=c),u=o,"WW"==u&&(u="DD"),this.stepWidth=this.getStepWidth(this.timeDifference),p=Math.ceil(this.timeDifference/f)+5,nt=e=n.resetDateToMin(new Date(this.startTime-f),o,s,w).getTime(),(u==o&&1==s&&this.centerLabelOnFullPeriod||this.autoWrap||this.centerLabels)&&(y=f*this.stepWidth,this.autoWrap&&!this.centerLabels&&(y=-y)),this.cellWidth=c*this.stepWidth,l=Math.round(e/f),c=-1,l/2==Math.round(l/2)&&(c=-2,e-=f),l=this.firstTime,b=0,k=0,h&&1<s&&(a=this.chooseMinorFrequency(s),g=n.getPeriodDuration(o,a)),0<this.gridCountR)for(p-5-c>this.autoRotateCount&&!isNaN(this.autoRotateAngle)&&(this.labelRotationR=this.autoRotateAngle),h=c;h<=p;h++){if(r=l+f*(h+Math.floor((nt-l)/f))-b,"DD"==o&&(r+=36e5),r=n.resetDateToMin(new Date(r),o,s,w).getTime(),"MM"==o&&(i=(r-e)/f,1.5<=(r-e)/f&&(r=r-(i-1)*f+n.getPeriodDuration("DD",3),r=n.resetDateToMin(new Date(r),o,1).getTime(),b+=f)),i=(r-this.startTime)*this.stepWidth,"radar"==d.type){if(0>i||i>this.axisWidth)continue;i=this.y+(this.axisWidth-i)}else this.rotate?(i+=this.x-this.viX,"date"==this.type&&"middle"==this.gridPosition&&(k=-f*this.stepWidth/2)):i="date"==this.type?this.axisWidth-i+(this.y-this.viY):i+(this.y-this.viY);if(t=!1,this.nextPeriod[u]&&(t=this.checkPeriodChange(this.nextPeriod[u],1,r,e,u)),e=!1,t&&this.markPeriodChange?(t=this.dateFormatsObject[this.nextPeriod[u]],this.twoLineMode&&(t=this.dateFormatsObject[u]+"\n"+t,t=n.fixBrakes(t)),e=!0):t=this.dateFormatsObject[u],rt||(e=!1),this.currentDateFormat=t,t=n.formatDate(new Date(r),t,d),(h!=c||tt)&&(h!=p||it)||(t=" "),this.labelFunction&&(t=this.labelFunction(t,new Date(r),this,o,s,v).toString()),this.boldLabels&&(e=!0),v=new this.axisItemRenderer(this,i,t,!1,y,k,!1,e),this.pushAxisItem(v),v=e=r,!isNaN(a))for(i=1;i<s;i+=a)this.gridAlpha=this.minorGridAlpha,t=r+g*i,t=n.resetDateToMin(new Date(t),o,a,w).getTime(),t=new this.axisItemRenderer(this,(t-this.startTime)*this.stepWidth,void 0,void 0,void 0,void 0,void 0,void 0,void 0,!0),this.pushAxisItem(t);this.gridAlpha=ut}},choosePeriod:function(t){var r=n.getPeriodDuration(this.periods[t].period,this.periods[t].count),i=this.periods;return this.timeDifference<r&&0<t?i[t-1]:Math.ceil(this.timeDifference/r)<=this.gridCountR?i[t]:t+1<i.length?this.choosePeriod(t+1):i[t]},getStepWidth:function(n){var t;return this.startOnAxis?(t=this.axisWidth/(n-1),1==n&&(t=this.axisWidth)):t=this.axisWidth/n,t},timeZoom:function(n,t){this.startTime=n;this.endTime=t},minDuration:function(){var t=n.extractPeriod(this.minPeriod);return n.getPeriodDuration(t.period,t.count)},checkPeriodChange:function(t,i,r,u,f){r=new Date(r);var o=new Date(u),e=this.firstDayOfWeek;return u=i,"DD"==t&&(i=1),r=n.resetDateToMin(r,t,i,e).getTime(),i=n.resetDateToMin(o,t,i,e).getTime(),"DD"==t&&"hh"!=f&&r-i<n.getPeriodDuration(t,u)?!1:r!=i?!0:!1},generateDFObject:function(){var n,t;for(this.dateFormatsObject={},n=0;n<this.dateFormats.length;n++)t=this.dateFormats[n],this.dateFormatsObject[t.period]=t.format}})}(),function(){var n=window.AmCharts;n.ValueAxis=n.Class({inherits:n.AxisBase,construct:function(t){this.cname="ValueAxis";this.createEvents("axisChanged","logarithmicAxisFailed","axisSelfZoomed","axisZoomed");n.ValueAxis.base.construct.call(this,t);this.dataChanged=!0;this.stackType="none";this.position="left";this.unitPosition="right";this.includeAllValues=this.recalculateToPercents=this.includeHidden=this.includeGuidesInMinMax=this.integersOnly=!1;this.durationUnits={DD:"d. ",hh:":",mm:":",ss:""};this.scrollbar=!1;this.baseValue=0;this.radarCategoriesEnabled=!0;this.gridType="polygons";this.useScientificNotation=!1;this.axisTitleOffset=10;this.pointPosition="axis";this.minMaxMultiplier=1;this.logGridLimit=2;this.totalTextOffset=this.treatZeroAs=0;this.minPeriod="ss";n.applyTheme(this,t,this.cname)},updateData:function(){0>=this.gridCountR&&(this.gridCountR=1);this.totals=[];this.data=this.chart.chartData;var t=this.chart;"xy"!=t.type&&(this.stackGraphs("smoothedLine"),this.stackGraphs("line"),this.stackGraphs("column"),this.stackGraphs("step"));this.recalculateToPercents&&this.recalculate();this.synchronizationMultiplier&&this.synchronizeWith?(n.isString(this.synchronizeWith)&&(this.synchronizeWith=t.getValueAxisById(this.synchronizeWith)),this.synchronizeWith&&(this.synchronizeWithAxis(this.synchronizeWith),this.foundGraphs=!0)):(this.foundGraphs=!1,this.getMinMax())},draw:function(){var u,d,f,b,o,c,e,k,r,l,a,h,p,v,et,g,it,w,s;if(n.ValueAxis.base.draw.call(this),u=this.chart,d=this.set,this.labelRotationR=this.labelRotation,n.setCN(u,this.set,"value-axis value-axis-"+this.id),n.setCN(u,this.labelsSet,"value-axis value-axis-"+this.id),n.setCN(u,this.axisLine.axisSet,"value-axis value-axis-"+this.id),f=this.type,"duration"==f&&(this.duration="ss"),!0===this.dataChanged&&(this.updateData(),this.dataChanged=!1),"date"==f&&(this.logarithmic=!1,this.min=this.minRR,this.max=this.maxRR,this.getDateMinMax()),this.logarithmic&&(b=this.treatZeroAs,o=this.getMin(0,this.data.length-1),this.minReal<o&&(this.minReal=o),isNaN(this.minReal)&&(this.minReal=o),0<b&&0===o&&(this.minReal=o=b),0>=o||0>=this.minimum)){this.fire("logarithmicAxisFailed",{type:"logarithmicAxisFailed",chart:u});return}this.grid0=null;var t,i,rt=u.dx,ut=u.dy,b=!1,o=this.logarithmic;if(isNaN(this.min)||isNaN(this.max)||!this.foundGraphs||Infinity==this.min||-Infinity==this.max)b=!0;else{var ft=this.labelFrequency,ot=this.showFirstLabel,st=this.showLastLabel,nt=1;if(t=0,this.minCalc=this.min,this.maxCalc=this.max,this.strictMinMax&&(isNaN(this.minimum)||(this.min=this.minimum),isNaN(this.maximum)||(this.max=this.maximum)),isNaN(this.minZoom)||(this.min=this.minZoom),isNaN(this.maxZoom)||(this.max=this.maxZoom),c=Math.round((this.maxCalc-this.minCalc)/this.step)+1,!0===o?(e=Math.log(this.max)*Math.LOG10E-Math.log(this.minReal)*Math.LOG10E,this.stepWidth=this.axisWidth/e,e>this.logGridLimit&&(c=Math.ceil(Math.log(this.max)*Math.LOG10E)+1,t=Math.round(Math.log(this.minReal)*Math.LOG10E),c>this.gridCountR&&(nt=Math.ceil(c/this.gridCountR)))):this.stepWidth=this.axisWidth/(this.max-this.min),h=0,1>this.step&&-1<this.step&&(h=n.getDecimals(this.step)),this.integersOnly&&(h=0),h>this.maxDecCount&&(h=this.maxDecCount),k=this.precision,isNaN(k)||(h=k),this.max=n.roundTo(this.max,this.maxDecCount),this.min=n.roundTo(this.min,this.maxDecCount),i={},i.precision=h,i.decimalSeparator=u.nf.decimalSeparator,i.thousandsSeparator=u.nf.thousandsSeparator,this.numberFormatter=i,v=this.guides,l=v.length,0<l){for(w=this.fillAlpha,i=this.fillAlpha=0;i<l;i++){var s=v[i],y=NaN,tt=s.above;isNaN(s.toValue)||(y=this.getCoordinate(s.toValue),r=new this.axisItemRenderer(this,y,"",!0,NaN,NaN,s),this.pushAxisItem(r,tt));a=NaN;isNaN(s.value)||(a=this.getCoordinate(s.value),r=new this.axisItemRenderer(this,a,s.label,!0,NaN,(y-a)/2,s),this.pushAxisItem(r,tt));isNaN(y)&&(a-=3,y=a+3);isNaN(y-a)||(r=new this.guideFillRenderer(this,a,y,s),this.pushAxisItem(r,tt),r=r.graphics(),s.graphics=r,s.balloonText&&this.addEventListeners(r,s))}this.fillAlpha=w}for(this.exponential=!1,i=t;i<c;i+=nt)v=n.roundTo(this.step*i+this.min,h),-1!=String(v).indexOf("e")&&(this.exponential=!0);if(this.duration&&(this.maxInterval=n.getMaxInterval(this.max,this.duration)),h=this.step,v=this.minorGridAlpha,this.minorGridEnabled&&(p=this.getMinorGridStep(h,this.stepWidth*h)),"date"==f)this.generateDFObject(),this.timeDifference=this.max-this.min,this.maxTime=this.lastTime=this.max,this.startTime=this.firstTime=this.min,this.parseDatesDraw();else for(c>=this.autoRotateCount&&!isNaN(this.autoRotateAngle)&&(this.labelRotationR=this.autoRotateAngle),i=t;i<c;i+=nt)if((f=h*i+this.minCalc,o&&this.max-this.min>10*this.min&&(f-=this.min),f=n.roundTo(f,this.maxDecCount+1),!this.integersOnly||Math.round(f)==f)&&(isNaN(k)||Number(n.toFixed(f,k))==f)&&(!0===o&&(0===f&&(f=this.minReal),e>this.logGridLimit&&(f=Math.pow(10,i))),r=this.formatValue(f,!1,i),Math.round(i/ft)!=i/ft&&(r=void 0),(0!==i||ot)&&(i!=c-1||st)||(r=" "),t=this.getCoordinate(f),this.rotate&&this.autoWrap&&(et=this.stepWidth*h-10),r=new this.axisItemRenderer(this,t,r,void 0,et,void 0,void 0,this.boldLabels),this.pushAxisItem(r),f==this.baseValue&&"radar"!=u.type&&(w=this.viW,s=this.viH,r=this.viX,l=this.viY,"H"==this.orientation?0<=t&&t<=w+1&&(g=[t,t,t+rt],it=[s,0,ut]):0<=t&&t<=s+1&&(g=[0,w,w+rt],it=[t,t,t+ut]),g&&(t=n.fitToBounds(2*this.gridAlpha,0,1),isNaN(this.zeroGridAlpha)||(t=this.zeroGridAlpha),t=n.line(u.container,g,it,this.gridColor,t,1,this.dashLength),t.translate(r,l),this.grid0=t,u.axesSet.push(t),t.toBack(),n.setCN(u,t,this.bcn+"zero-grid-"+this.id),n.setCN(u,t,this.bcn+"zero-grid"))),!isNaN(p)&&0<v&&i<c-1)){for(t=this.gridAlpha,this.gridAlpha=this.minorGridAlpha,r=1;r<h/p;r++)l=this.getCoordinate(f+p*r),l=new this.axisItemRenderer(this,l,"",!1,0,0,!1,!1,0,!0),this.pushAxisItem(l);this.gridAlpha=t}e=this.baseValue;this.min>this.baseValue&&this.max>this.baseValue&&(e=this.min);this.min<this.baseValue&&this.max<this.baseValue&&(e=this.max);o&&e<this.minReal&&(e=this.minReal);this.baseCoord=this.getCoordinate(e);e={type:"axisChanged",target:this,chart:u};e.min=o?this.minReal:this.min;e.max=this.max;this.fire("axisChanged",e);this.axisCreated=!0}o=this.axisLine.set;e=this.labelsSet;this.positionTitle();"radar"!=u.type?(u=this.viX,p=this.viY,d.translate(u,p),e.translate(u,p)):o.toFront();!this.visible||b?(d.hide(),o.hide(),e.hide()):(d.show(),o.show(),e.show());this.axisY=this.y-this.viY;this.axisX=this.x-this.viX},getDateMinMax:function(){this.minimumDate&&(this.minimumDate instanceof Date||(this.minimumDate=n.getDate(this.minimumDate,this.chart.dataDateFormat,"fff")),this.min=this.minimumDate.getTime());this.maximumDate&&(this.maximumDate instanceof Date||(this.maximumDate=n.getDate(this.maximumDate,this.chart.dataDateFormat,"fff")),this.max=this.maximumDate.getTime())},formatValue:function(t,i,r){var u=this.exponential,o=this.logarithmic,f=this.numberFormatter,e=this.chart;return!0===this.logarithmic&&(u=-1!=String(t).indexOf("e")?!0:!1),this.useScientificNotation&&(u=!0),this.usePrefixes&&(u=!1),u?(r=-1==String(t).indexOf("e")?t.toExponential(15):String(t),u=r.split("e"),r=Number(u[0]),u=Number(u[1]),r=n.roundTo(r,14),10==r&&(r=1,u+=1),r=r+"e"+u,0===t&&(r="0"),1==t&&(r="1")):(o&&(u=String(t).split("."),u[1]?(f.precision=u[1].length,0>r&&(f.precision=Math.abs(r)),i&&1<t&&(f.precision=0)):f.precision=-1),r=this.usePrefixes?n.addPrefix(t,e.prefixesOfBigNumbers,e.prefixesOfSmallNumbers,f,!i):n.formatNumber(t,f,f.precision)),this.duration&&(i&&(f.precision=0),r=n.formatDuration(t,this.duration,"",this.durationUnits,this.maxInterval,f)),"date"==this.type&&(r=n.formatDate(new Date(t),this.currentDateFormat,e)),this.recalculateToPercents?r+="%":(i=this.unit)&&(r="left"==this.unitPosition?i+r:r+i),this.labelFunction&&(r="date"==this.type?this.labelFunction(r,new Date(t),this).toString():this.labelFunction(t,r,this).toString()),r},getMinorGridStep:function(n,t){var f=[5,4,2],e,u,i,r;for(60>t&&f.shift(),e=Math.floor(Math.log(Math.abs(n))*Math.LOG10E),u=0;u<f.length;u++)if(i=n/f[u],r=Math.floor(Math.log(Math.abs(i))*Math.LOG10E),!(1<Math.abs(e-r)))if(1>n){if(r=Math.pow(10,-r)*i,r==Math.round(r))return i}else if(i==Math.round(i))return i},stackGraphs:function(t){var h=this.stackType,p,l;"stacked"==h&&(h="regular");"line"==h&&(h="none");"100% stacked"==h&&(h="100%");this.stackType=h;var c=[],e=[],o=[],a=[],f,v=this.chart.graphs,i,r,u,s,w=this.baseValue,y=!1;if(("line"==t||"step"==t||"smoothedLine"==t)&&(y=!0),y&&("regular"==h||"100%"==h))for(s=0;s<v.length;s++)u=v[s],u.hidden||(r=u.type,u.chart==this.chart&&u.valueAxis==this&&t==r&&u.stackable&&(i&&(u.stackGraph=i),i=u));for(i=this.start;i<=this.end;i++)for(p=0,s=0;s<v.length;s++)(u=v[s],u.hidden)?u.newStack&&(o[i]=NaN,e[i]=NaN):(r=u.type,u.chart==this.chart&&u.valueAxis==this&&t==r&&u.stackable)&&((r=this.data[i].axes[this.id].graphs[u.id],f=r.values.value,isNaN(f))?u.newStack&&(o[i]=NaN,e[i]=NaN):(l=n.getDecimals(f),p<l&&(p=l),isNaN(a[i])?a[i]=Math.abs(f):a[i]+=Math.abs(f),a[i]=n.roundTo(a[i],p),l=u.fillToGraph,y&&l&&(l=this.data[i].axes[this.id].graphs[l.id])&&(r.values.open=l.values.value),"regular"==h&&(y&&(isNaN(c[i])?(c[i]=f,r.values.close=f,r.values.open=this.baseValue):(r.values.close=isNaN(f)?c[i]:f+c[i],r.values.open=c[i],c[i]=r.values.close)),"column"==t&&(u.newStack&&(o[i]=NaN,e[i]=NaN),r.values.close=f,0>f?(r.values.close=f,isNaN(e[i])?r.values.open=w:(r.values.close+=e[i],r.values.open=e[i]),e[i]=r.values.close):(r.values.close=f,isNaN(o[i])?r.values.open=w:(r.values.close+=o[i],r.values.open=o[i]),o[i]=r.values.close)))));for(i=this.start;i<=this.end;i++)for(s=0;s<v.length;s++)(u=v[s],u.hidden)?u.newStack&&(o[i]=NaN,e[i]=NaN):(r=u.type,u.chart==this.chart&&u.valueAxis==this&&t==r&&u.stackable&&(r=this.data[i].axes[this.id].graphs[u.id],f=r.values.value,isNaN(f)||(c=f/a[i]*100,r.values.percents=c,r.values.total=a[i],u.newStack&&(o[i]=NaN,e[i]=NaN),"100%"==h&&(isNaN(e[i])&&(e[i]=0),isNaN(o[i])&&(o[i]=0),0>c?(r.values.close=n.fitToBounds(c+e[i],-100,100),r.values.open=e[i],e[i]=r.values.close):(r.values.close=n.fitToBounds(c+o[i],-100,100),r.values.open=o[i],o[i]=r.values.close)))))},recalculate:function(){for(var r=this.chart,l=r.graphs,u,f,i,e,s,h=0;h<l.length;h++)if(u=l[h],u.valueAxis==this){f="value";("candlestick"==u.type||"ohlc"==u.type)&&(f="open");var o,t,c=this.end+2,c=n.fitToBounds(this.end+1,0,this.data.length-1),e=this.start;if(0<e&&e--,t=this.start,u.compareFromStart&&(t=0),!isNaN(r.startTime)&&(i=r.categoryAxis)){var a=i.minDuration(),a=new Date(r.startTime+a/2),v=n.resetDateToMin(new Date(r.startTime),i.minPeriod).getTime();n.resetDateToMin(new Date(a),i.minPeriod).getTime()>v&&t++}for((i=r.recalculateFromDate)&&(i=n.getDate(i,r.dataDateFormat,"fff"),t=r.getClosestIndex(r.chartData,"time",i.getTime(),!0,0,r.chartData.length),c=r.chartData.length-1),i=t;i<=c&&(t=this.data[i].axes[this.id].graphs[u.id],o=t.values[f],u.recalculateValue&&(o=t.dataContext[u.valueField+u.recalculateValue]),isNaN(o));i++);for(this.recBaseValue=o,f=e;f<=c;f++){t=this.data[f].axes[this.id].graphs[u.id];t.percents={};e=t.values;for(s in e)t.percents[s]="percents"!=s?e[s]/o*100-100:e[s]}}},getMinMax:function(){for(var i=!1,u=this.chart,t=u.graphs,f,r=0;r<t.length;r++)f=t[r].type,("line"==f||"step"==f||"smoothedLine"==f)&&this.expandMinMax&&(i=!0);if(i&&(0<this.start&&this.start--,this.end<this.data.length-1&&this.end++),"serial"==u.type&&(!0!==u.categoryAxis.parseDates||i||this.end<this.data.length-1&&this.end++),this.includeAllValues&&(this.start=0,this.end=this.data.length-1),i=this.minMaxMultiplier,this.min=this.getMin(this.start,this.end),this.max=this.getMax(),this.minRR=this.min,this.maxRR=this.max,i=(this.max-this.min)*(i-1),this.min-=i,this.max+=i,i=this.guides.length,this.includeGuidesInMinMax&&0<i)for(u=0;u<i;u++)t=this.guides[u],t.toValue<this.min&&(this.min=t.toValue),t.value<this.min&&(this.min=t.value),t.toValue>this.max&&(this.max=t.toValue),t.value>this.max&&(this.max=t.value);isNaN(this.minimum)||(this.min=this.minimum);isNaN(this.maximum)||(this.max=this.maximum);"date"==this.type&&this.getDateMinMax();this.min>this.max&&(i=this.max,this.max=this.min,this.min=i);isNaN(this.minTemp)||(this.min=this.minTemp);isNaN(this.maxTemp)||(this.max=this.maxTemp);this.minReal=this.min;this.maxReal=this.max;0===this.min&&0===this.max&&(this.max=9);this.min>this.max&&(this.min=this.max-1);i=this.min;u=this.max;t=this.max-this.min;r=0===t?Math.pow(10,Math.floor(Math.log(Math.abs(this.max))*Math.LOG10E))/10:Math.pow(10,Math.floor(Math.log(Math.abs(t))*Math.LOG10E))/10;isNaN(this.maximum)&&isNaN(this.maxTemp)&&(this.max=Math.ceil(this.max/r)*r+r);isNaN(this.minimum)&&isNaN(this.minTemp)&&(this.min=Math.floor(this.min/r)*r-r);0>this.min&&0<=i&&(this.min=0);0<this.max&&0>=u&&(this.max=0);"100%"==this.stackType&&(this.min=0>this.min?-100:0,this.max=0>this.max?0:100);t=this.max-this.min;r=Math.pow(10,Math.floor(Math.log(Math.abs(t))*Math.LOG10E))/10;this.step=Math.ceil(t/this.gridCountR/r)*r;t=Math.pow(10,Math.floor(Math.log(Math.abs(this.step))*Math.LOG10E));t=n.fixStepE(t);r=Math.ceil(this.step/t);5<r&&(r=10);5>=r&&2<r&&(r=5);this.step=Math.ceil(this.step/(t*r))*t*r;1>t?(this.maxDecCount=Math.abs(Math.log(Math.abs(t))*Math.LOG10E),this.maxDecCount=Math.round(this.maxDecCount),this.step=n.roundTo(this.step,this.maxDecCount+1)):this.maxDecCount=0;this.min=this.step*Math.floor(this.min/this.step);this.max=this.step*Math.ceil(this.max/this.step);0>this.min&&0<=i&&(this.min=0);0<this.max&&0>=u&&(this.max=0);1<this.minReal&&1<this.max-this.minReal&&(this.minReal=Math.floor(this.minReal));t=Math.pow(10,Math.floor(Math.log(Math.abs(this.minReal))*Math.LOG10E));0===this.min&&(this.minReal=t);0===this.min&&1<this.minReal&&(this.minReal=1);0<this.min&&0<this.minReal-this.step&&(this.minReal=this.min+this.step<this.minReal?this.min+this.step:this.min);this.logarithmic&&(2<Math.log(u)*Math.LOG10E-Math.log(i)*Math.LOG10E?(this.minReal=this.min=Math.pow(10,Math.floor(Math.log(Math.abs(i))*Math.LOG10E)),this.max=Math.pow(10,Math.ceil(Math.log(Math.abs(u))*Math.LOG10E))):(i=Math.pow(10,Math.floor(Math.log(Math.abs(i))*Math.LOG10E))/10,Math.pow(10,Math.floor(Math.log(Math.abs(this.min))*Math.LOG10E))/10<i&&(this.minReal=this.min=10*i)))},getMin:function(n,t){for(var r,f,e,i,u,o,s=n;s<=t;s++){f=this.data[s].axes[this.id].graphs;for(e in f)if(f.hasOwnProperty(e)&&(i=this.chart.getGraphById(e),i.includeInMinMax&&(!i.hidden||this.includeHidden)))if(isNaN(r)&&(r=Infinity),this.foundGraphs=!0,i=f[e].values,this.recalculateToPercents&&(i=f[e].percents),this.minMaxField)u=i[this.minMaxField],u<r&&(r=u);else for(o in i)i.hasOwnProperty(o)&&"percents"!=o&&"total"!=o&&(u=i[o],u<r&&(r=u))}return r},getMax:function(){for(var t,r,u,n,i,f,e=this.start;e<=this.end;e++){r=this.data[e].axes[this.id].graphs;for(u in r)if(r.hasOwnProperty(u)&&(n=this.chart.getGraphById(u),n.includeInMinMax&&(!n.hidden||this.includeHidden)))if(isNaN(t)&&(t=-Infinity),this.foundGraphs=!0,n=r[u].values,this.recalculateToPercents&&(n=r[u].percents),this.minMaxField)i=n[this.minMaxField],i>t&&(t=i);else for(f in n)n.hasOwnProperty(f)&&"percents"!=f&&"total"!=f&&(i=n[f],i>t&&(t=i))}return t},dispatchZoomEvent:function(n,t){var i={type:"axisZoomed",startValue:n,endValue:t,target:this,chart:this.chart};this.fire(i.type,i)},zoomOut:function(){var n=this.chart;"xy"!=n.type&&(this.maxZoom=this.minZoom=void 0,n.updateAfterValueZoom())},zoomToValues:function(n,t){var i=this.chart;"xy"==i.type?(t<n&&(i=t,t=n,n=i),n<this.min&&(n=this.min),t>this.max&&(t=this.max),i={type:"axisSelfZoomed"},i.chart=this.chart,i.valueAxis=this,i.multiplier=this.axisWidth/Math.abs(this.getCoordinate(t)-this.getCoordinate(n)),i.startValue=n,i.endValue=t,i.position="V"==this.orientation?this.reversed?this.getCoordinate(n):this.getCoordinate(t):this.reversed?this.getCoordinate(t):this.getCoordinate(n),this.fire(i.type,i)):(this.minZoom=n,this.maxZoom=t,i.updateAfterValueZoom())},coordinateToValue:function(n){if(isNaN(n))return NaN;var i=this.axisWidth,t=this.stepWidth,u=this.reversed,f=this.rotate,r=this.min,e=this.minReal;return!0===this.logarithmic?Math.pow(10,(f?!0===u?(i-n)/t:n/t:!0===u?n/t:(i-n)/t)+Math.log(e)*Math.LOG10E):!0===u?f?r-(n-i)/t:n/t+r:f?n/t+r:r-(n-i)/t},getCoordinate:function(n,t){if(isNaN(n))return NaN;var i=this.rotate,e=this.reversed,f=this.axisWidth,u=this.stepWidth,r=this.min,o=this.minReal;return!0===this.logarithmic?(0===n&&(n=this.treatZeroAs),r=Math.log(n)*Math.LOG10E-Math.log(o)*Math.LOG10E,i=i?!0===e?f-u*r:u*r:!0===e?u*r:f-u*r):i=!0===e?i?f-u*(n-r):u*(n-r):i?u*(n-r):f-u*(n-r),i=this.rotate?i+(this.x-this.viX):i+(this.y-this.viY),1e7<Math.abs(i)&&(i=i/Math.abs(i)*1e7),t||(i=Math.round(i)),i},synchronizeWithAxis:function(n){this.synchronizeWith=n;this.listenTo(this.synchronizeWith,"axisChanged",this.handleSynchronization)},handleSynchronization:function(){if(this.synchronizeWith){n.isString(this.synchronizeWith)&&(this.synchronizeWith=this.chart.getValueAxisById(this.synchronizeWith));var t=this.synchronizeWith,i=t.min,u=t.max,t=t.step,r=this.synchronizationMultiplier;r&&(this.min=i*r,this.max=u*r,this.step=t*r,i=Math.abs(Math.log(Math.abs(Math.pow(10,Math.floor(Math.log(Math.abs(this.step))*Math.LOG10E))))*Math.LOG10E),this.maxDecCount=i=Math.round(i),this.draw())}}})}(),function(){var n=window.AmCharts;n.RecAxis=n.Class({construct:function(t){var f=t.chart,i=t.axisThickness,r=t.axisColor,c=t.axisAlpha,e=t.offset,l=t.dx,u=t.dy,o=t.viX,s=t.viY,h=t.viH,v=t.viW,a=f.container;"H"==t.orientation?(r=n.line(a,[0,v],[0,0],r,c,i),this.axisWidth=t.width,"bottom"==t.position?(u=i/2+e+h+s-1,i=o):(u=-i/2-e+s+u,i=l+o)):(this.axisWidth=t.height,"right"==t.position?(r=n.line(a,[0,0,-l],[0,h,h-u],r,c,i),u=s+u,i=i/2+e+l+v+o-1):(r=n.line(a,[0,0],[0,h],r,c,i),u=s,i=-i/2-e+o));r.translate(i,u);i=f.container.set();i.push(r);f.axesSet.push(i);n.setCN(f,r,t.bcn+"line");this.axisSet=i;this.set=r}})}(),function(){var n=window.AmCharts;n.RecItem=n.Class({construct:function(t,i,r,u,f,e,o,s,h,c,l,a){var d,ii,g,bt,ot,pt,nt,w;i=Math.round(i);d=t.chart;this.value=r;void 0==r&&(r="");h||(h=0);void 0==u&&(u=!0);ii=d.fontFamily;g=t.fontSize;void 0==g&&(g=d.fontSize);bt=t.color;void 0==bt&&(bt=d.color);void 0!==l&&(bt=l);ot=t.chart.container;pt=ot.set();this.set=pt;var ht=t.axisThickness,oi=t.axisColor,ni=t.axisAlpha,y=t.tickLength,dt=t.gridAlpha,gt=t.gridThickness,ri=t.gridColor,ui=t.dashLength,si=t.fillColor,ti=t.fillAlpha,hi=t.labelsEnabled;l=t.labelRotationR;var fi=t.counter,k=t.inside,ct=t.labelOffset,ft=t.dx,rt=t.dy,ci=t.orientation,lt=t.position,kt=t.previousCoord,it=t.viH,at=t.viW,et=t.offset,ut,st;o?(void 0!==o.id&&(a=d.classNamePrefix+"-guide-"+o.id),hi=!0,isNaN(o.tickLength)||(y=o.tickLength),void 0!=o.lineColor&&(ri=o.lineColor),void 0!=o.color&&(bt=o.color),isNaN(o.lineAlpha)||(dt=o.lineAlpha),isNaN(o.dashLength)||(ui=o.dashLength),isNaN(o.lineThickness)||(gt=o.lineThickness),!0===o.inside&&(k=!0,0<et&&(et=0)),isNaN(o.labelRotation)||(l=o.labelRotation),isNaN(o.fontSize)||(g=o.fontSize),o.position&&(lt=o.position),void 0!==o.boldLabel&&(s=o.boldLabel),isNaN(o.labelOffset)||(ct=o.labelOffset)):""===r&&(y=0);c&&!isNaN(t.minorTickLength)&&(y=t.minorTickLength);nt="start";0<f&&(nt="middle");t.centerLabels&&(nt="middle");var b=l*Math.PI/180,vt,yt,p=0,v=0,wt=0,tt=vt=0,ei=0;"V"==ci&&(l=0);hi&&""!==r&&(w=t.autoWrap&&0===l?n.wrappedText(ot,r,bt,ii,g,nt,s,Math.abs(f),0):n.text(ot,r,bt,ii,g,nt,s),nt=w.getBBox(),tt=nt.width,ei=nt.height);"H"==ci?(0<=i&&i<=at+1&&(0<y&&0<ni&&i+h<=at+1&&(ut=n.line(ot,[i+h,i+h],[0,y],oi,ni,gt),pt.push(ut)),0<dt&&(st=n.line(ot,[i,i+ft,i+ft],[it,it+rt,rt],ri,dt,gt,ui),pt.push(st))),v=0,p=i,o&&90==l&&k&&(p-=g),!1===u?(nt="start",v="bottom"==lt?k?v+y:v-y:k?v-y:v+y,p+=3,0<f&&(p+=f/2-3,nt="middle"),0<l&&(nt="middle")):nt="middle",1==fi&&0<ti&&!o&&!c&&kt<at&&(u=n.fitToBounds(i,0,at),kt=n.fitToBounds(kt,0,at),vt=u-kt,0<vt&&(yt=n.rect(ot,vt,t.height,si,ti),yt.translate(u-vt+ft,rt),pt.push(yt))),"bottom"==lt?(v+=it+g/2+et,k?(0<l?(v=it-tt/2*Math.sin(b)-y-3,p+=tt/2*Math.cos(b)-2):0>l?(v=it+tt*Math.sin(b)-y-1,p+=-tt*Math.cos(b)-ei*Math.sin(b)-4):v-=y+g+3+3,v-=ct):(0<l?(v=it+tt/2*Math.sin(b)+y+3,p-=tt/2*Math.cos(b)):0>l?(v=it+y+3-tt/2*Math.sin(b)+2,p+=tt/2*Math.cos(b)):v+=y+ht+3+3,v+=ct)):(v+=rt+g/2-et,p+=ft,k?(0<l?(v=tt/2*Math.sin(b)+y+3,p-=tt/2*Math.cos(b)):v+=y+3,v+=ct):(0<l?(v=-(tt/2)*Math.sin(b)-y-6,p+=tt/2*Math.cos(b)):v-=y+g+3+ht+3,v-=ct)),"bottom"==lt?vt=(k?it-y-1:it+ht-1)+et:(wt=ft,vt=(k?rt:rt-y-ht+1)-et),e&&(p+=e),e=p,0<l&&(e+=tt/2*Math.cos(b)),w&&(g=0,k&&(g=tt/2*Math.cos(b)),e+g>at+2||0>e))&&(w.remove(),w=null):(0<=i&&i<=it+1&&(0<y&&0<ni&&i+h<=it+1&&(ut=n.line(ot,[0,y+1],[i+h,i+h],oi,ni,gt),pt.push(ut)),0<dt&&(st=n.line(ot,[0,ft,at+ft],[i,i+rt,i+rt],ri,dt,gt,ui),pt.push(st))),nt="end",(!0===k&&"left"==lt||!1===k&&"right"==lt)&&(nt="start"),v=i-ei/2+2,1==fi&&0<ti&&!o&&!c&&(u=n.fitToBounds(i,0,it),kt=n.fitToBounds(kt,0,it),b=u-kt,yt=n.polygon(ot,[0,t.width,t.width,0],[0,0,b,b],si,ti),yt.translate(ft,u-b+rt),pt.push(yt)),v+=g/2,"right"==lt?(p+=ft+at+et,v+=rt,k?(e||(v-=g/2+3),p=p-(y+4)-ct):(p+=y+4+ht,v-=2,p+=ct)):k?(p+=y+4-et,e||(v-=g/2+3),o&&(p+=ft,v+=rt),p+=ct):(p+=-y-ht-6-et,v-=2,p-=ct),ut&&("right"==lt?(wt+=ft+et+at-1,vt+=rt,wt=k?wt-ht:wt+ht):(wt-=et,k||(wt-=y+ht))),e&&(v+=e),k=-3,"right"==lt&&(k+=rt),w&&(v>it+1||v<k)&&(w.remove(),w=null));ut&&(ut.translate(wt,vt),n.setCN(d,ut,t.bcn+"tick"),n.setCN(d,ut,a,!0),o&&n.setCN(d,ut,"guide"));!1===t.visible&&(ut&&ut.remove(),w&&(w.remove(),w=null));w&&(w.attr({"text-anchor":nt}),w.translate(p,v,NaN,!0),0!==l&&w.rotate(-l,t.chart.backgroundColor),t.allLabels.push(w),this.label=w,n.setCN(d,w,t.bcn+"label"),n.setCN(d,w,a,!0),o&&n.setCN(d,w,"guide"));st&&(n.setCN(d,st,t.bcn+"grid"),n.setCN(d,st,a,!0),o&&n.setCN(d,st,"guide"));yt&&(n.setCN(d,yt,t.bcn+"fill"),n.setCN(d,yt,a,!0));c?st&&n.setCN(d,st,t.bcn+"grid-minor"):(t.counter=0===fi?1:0,t.previousCoord=i);0===this.set.node.childNodes.length&&this.set.remove()},graphics:function(){return this.set},getLabel:function(){return this.label}})}(),function(){var n=window.AmCharts;n.RecFill=n.Class({construct:function(t,i,r,u){var c=t.dx,l=t.dy,f=t.orientation,h=0,o,e,s;r<i&&(e=i,i=r,r=e);o=u.fillAlpha;isNaN(o)&&(o=0);e=t.chart.container;s=u.fillColor;"V"==f?(i=n.fitToBounds(i,0,t.viH),r=n.fitToBounds(r,0,t.viH)):(i=n.fitToBounds(i,0,t.viW),r=n.fitToBounds(r,0,t.viW));r-=i;isNaN(r)&&(r=4,h=2,o=0);0>r&&"object"==typeof s&&(s=s.join(",").split(",").reverse());"V"==f?(f=n.rect(e,t.viW,r,s,o),f.translate(c,i-h+l)):(f=n.rect(e,r,t.viH,s,o),f.translate(i-h+c,l));n.setCN(t.chart,f,"guide-fill");u.id&&n.setCN(t.chart,f,"guide-fill-"+u.id);this.set=e.set([f])},graphics:function(){return this.set},getLabel:function(){}})}(),function(){var n=window.AmCharts;n.AmChart=n.Class({construct:function(t){this.svgIcons=this.tapToActivate=!0;this.theme=t;this.classNamePrefix="amcharts";this.addClassNames=!1;this.version="3.17.3";n.addChart(this);this.createEvents("dataUpdated","init","rendered","drawn","failed","resized");this.height=this.width="100%";this.dataChanged=!0;this.chartCreated=!1;this.previousWidth=this.previousHeight=0;this.backgroundColor="#FFFFFF";this.borderAlpha=this.backgroundAlpha=0;this.color=this.borderColor="#000000";this.fontFamily="Verdana";this.fontSize=11;this.usePrefixes=!1;this.autoResize=!0;this.autoDisplay=!1;this.addCodeCredits=!0;this.precision=-1;this.percentPrecision=2;this.decimalSeparator=".";this.thousandsSeparator=",";this.labels=[];this.allLabels=[];this.titles=[];this.marginRight=this.marginLeft=this.autoMarginOffset=0;this.timeOuts=[];this.creditsPosition="top-left";var r=document.createElement("div"),i=r.style;i.overflow="hidden";i.position="relative";i.textAlign="left";this.chartDiv=r;r=document.createElement("div");i=r.style;i.overflow="hidden";i.position="relative";i.textAlign="left";this.legendDiv=r;this.titleHeight=0;this.hideBalloonTime=150;this.handDrawScatter=2;this.handDrawThickness=1;this.prefixesOfBigNumbers=[{number:1e3,prefix:"k"},{number:1e6,prefix:"M"},{number:1e9,prefix:"G"},{number:1e12,prefix:"T"},{number:1e15,prefix:"P"},{number:1e18,prefix:"E"},{number:1e21,prefix:"Z"},{number:1e24,prefix:"Y"}];this.prefixesOfSmallNumbers=[{number:1e-24,prefix:"y"},{number:1e-21,prefix:"z"},{number:1e-18,prefix:"a"},{number:1e-15,prefix:"f"},{number:1e-12,prefix:"p"},{number:1e-9,prefix:"n"},{number:1e-6,prefix:"μ"},{number:.001,prefix:"m"}];this.panEventsEnabled=!0;this.product="amcharts";this.animations=[];this.balloon=new n.AmBalloon(this.theme);this.balloon.chart=this;n.applyTheme(this,t,"AmChart")},drawChart:function(){0<this.realWidth&&0<this.realHeight&&(this.drawBackground(),this.redrawLabels(),this.drawTitles(),this.brr(),this.renderFix(),this.chartDiv&&(this.boundingRect=this.chartDiv.getBoundingClientRect()))},drawBackground:function(){var r,u;n.remove(this.background);var i=this.container,t=this.backgroundColor,f=this.backgroundAlpha,e=this.set;n.isModern||0!==f||(f=.001);r=this.updateWidth();this.realWidth=r;u=this.updateHeight();this.realHeight=u;t=n.polygon(i,[0,r-1,r-1,0],[0,0,u-1,u-1],t,f,1,this.borderColor,this.borderAlpha);n.setCN(this,t,"bg");this.background=t;e.push(t);(t=this.backgroundImage)&&(i=i.image(t,0,0,r,u),n.setCN(this,t,"bg-image"),this.bgImg=i,e.push(i))},drawTitles:function(t){var s=this.titles,f,e,r,o,u,i;if(this.titleHeight=0,n.ifArray(s)){for(f=20,e=0;e<s.length;e++)r=s[e],r=n.processObject(r,n.Title,this.theme),!1!==r.enabled&&(i=r.color,void 0===i&&(i=this.color),o=r.size,isNaN(o)&&(o=this.fontSize+2),isNaN(r.alpha),u=this.marginLeft,i=n.wrappedText(this.container,r.text,i,this.fontFamily,o,"middle",!1,this.divRealWidth-32),i.translate(u+(this.realWidth-this.marginRight-u)/2,f),i.node.style.pointerEvents="none",r.sprite=i,n.setCN(this,i,"title"),r.id&&n.setCN(this,i,"title-"+r.id),u=!0,void 0!==r.bold&&(u=r.bold),u&&i.attr({"font-weight":"bold"}),i.attr({opacity:r.alpha}),f+=i.getBBox().height+5,t?i.remove():this.freeLabelsSet.push(i));this.titleHeight=f-10}},write:function(t){var f,i,h;if(t="object"!=typeof t?document.getElementById(t):t){for(;t.firstChild;)t.removeChild(t.firstChild);this.div=t;t.style.overflow="hidden";t.style.textAlign="left";var u=this.chartDiv,o=this.legendDiv,r=this.legend,e=o.style,s=u.style;if(this.measure(),this.previousHeight=this.divRealHeight,this.previousWidth=this.divRealWidth,i=document.createElement("div"),f=i.style,f.position="relative",this.containerDiv=i,i.className=this.classNamePrefix+"-main-div",u.className=this.classNamePrefix+"-chart-div",t.appendChild(i),h=this.exportConfig,h&&n.AmExport&&!this.AmExport&&(this.AmExport=new n.AmExport(this,h)),this.amExport&&n.AmExport&&(this.AmExport=n.extend(this.amExport,new n.AmExport(this),!0)),this.AmExport&&this.AmExport.init&&this.AmExport.init(),r)if(r=this.addLegend(r,r.divId),r.enabled)switch(r.position){case"bottom":i.appendChild(u);i.appendChild(o);break;case"top":i.appendChild(o);i.appendChild(u);break;case"absolute":f.width=t.style.width;f.height=t.style.height;e.position="absolute";s.position="absolute";void 0!==r.left&&(e.left=r.left+"px");void 0!==r.right&&(e.right=r.right+"px");void 0!==r.top&&(e.top=r.top+"px");void 0!==r.bottom&&(e.bottom=r.bottom+"px");r.marginLeft=0;r.marginRight=0;i.appendChild(u);i.appendChild(o);break;case"right":f.width=t.style.width;f.height=t.style.height;e.position="relative";s.position="absolute";i.appendChild(u);i.appendChild(o);break;case"left":f.width=t.style.width;f.height=t.style.height;e.position="absolute";s.position="relative";i.appendChild(u);i.appendChild(o);break;case"outside":i.appendChild(u)}else i.appendChild(u);else i.appendChild(u);this.listenersAdded||(this.addListeners(),this.listenersAdded=!0);this.initChart()}},createLabelsSet:function(){n.remove(this.labelsSet);this.labelsSet=this.container.set();this.freeLabelsSet.push(this.labelsSet)},initChart:function(){var t,i;if(this.listeners)for(t in this.listeners)i=this.listeners[t],this.addListener(i.event,i.method);window.AmCharts_path&&(this.path=window.AmCharts_path);void 0===this.path&&(this.path=n.getPath());void 0===this.path&&(this.path="amcharts/");this.path=n.normalizeUrl(this.path);void 0===this.pathToImages&&(this.pathToImages=this.path+"images/");this.initHC||(n.callInitHandler(this),this.initHC=!0);n.applyLang(this.language,this);(t=this.numberFormatter)&&(isNaN(t.precision)||(this.precision=t.precision),void 0!==t.thousandsSeparator&&(this.thousandsSeparator=t.thousandsSeparator),void 0!==t.decimalSeparator&&(this.decimalSeparator=t.decimalSeparator));(t=this.percentFormatter)&&!isNaN(t.precision)&&(this.percentPrecision=t.precision);this.nf={precision:this.precision,thousandsSeparator:this.thousandsSeparator,decimalSeparator:this.decimalSeparator};this.pf={precision:this.percentPrecision,thousandsSeparator:this.thousandsSeparator,decimalSeparator:this.decimalSeparator};this.destroy();(t=this.container)?(t.container.innerHTML="",t.width=this.realWidth,t.height=this.realHeight,t.addDefs(this),this.chartDiv.appendChild(t.container)):t=new n.AmDraw(this.chartDiv,this.realWidth,this.realHeight,this);this.container=t;this.extension=".png";this.svgIcons&&n.SVG&&(this.extension=".svg");this.checkDisplay();t.chart=this;n.VML||n.SVG?(t.handDrawn=this.handDrawn,t.handDrawScatter=this.handDrawScatter,t.handDrawThickness=this.handDrawThickness,this.set&&this.set.remove(),this.set=t.set(),this.gridSet&&this.gridSet.remove(),this.gridSet=t.set(),this.cursorLineSet&&this.cursorLineSet.remove(),this.cursorLineSet=t.set(),this.graphsBehindSet&&this.graphsBehindSet.remove(),this.graphsBehindSet=t.set(),this.bulletBehindSet&&this.bulletBehindSet.remove(),this.bulletBehindSet=t.set(),this.columnSet&&this.columnSet.remove(),this.columnSet=t.set(),this.graphsSet&&this.graphsSet.remove(),this.graphsSet=t.set(),this.trendLinesSet&&this.trendLinesSet.remove(),this.trendLinesSet=t.set(),this.axesSet&&this.axesSet.remove(),this.axesSet=t.set(),this.cursorSet&&this.cursorSet.remove(),this.cursorSet=t.set(),this.scrollbarsSet&&this.scrollbarsSet.remove(),this.scrollbarsSet=t.set(),this.bulletSet&&this.bulletSet.remove(),this.bulletSet=t.set(),this.freeLabelsSet&&this.freeLabelsSet.remove(),this.axesLabelsSet&&this.axesLabelsSet.remove(),this.axesLabelsSet=t.set(),this.freeLabelsSet=t.set(),this.balloonsSet&&this.balloonsSet.remove(),this.balloonsSet=t.set(),this.zoomButtonSet&&this.zoomButtonSet.remove(),this.zbSet&&(this.zbSet.remove(),this.zbSet=null),this.zoomButtonSet=t.set(),this.linkSet&&this.linkSet.remove(),this.linkSet=t.set()):this.fire("failed",{type:"failed",chart:this})},premeasure:function(){var n=this.div,t,i;n&&(this.boundingRect=this.chartDiv.getBoundingClientRect(),t=n.offsetWidth,i=n.offsetHeight,n.clientHeight&&(t=n.clientWidth,i=n.clientHeight),(t!=this.mw||i!=this.mh)&&(this.mw=t,this.mh=i,this.measure()))},measure:function(){var t=this.div;if(t){var f=this.chartDiv,r=t.offsetWidth,u=t.offsetHeight,e=this.container;t.clientHeight&&(r=t.clientWidth,u=t.clientHeight);var i=n.removePx(n.getStyle(t,"padding-left")),o=n.removePx(n.getStyle(t,"padding-right")),s=n.removePx(n.getStyle(t,"padding-top")),h=n.removePx(n.getStyle(t,"padding-bottom"));isNaN(i)||(r-=i);isNaN(o)||(r-=o);isNaN(s)||(u-=s);isNaN(h)||(u-=h);i=t.style;t=i.width;i=i.height;-1!=t.indexOf("px")&&(r=n.removePx(t));-1!=i.indexOf("px")&&(u=n.removePx(i));u=Math.round(u);r=Math.round(r);t=Math.round(n.toCoordinate(this.width,r));i=Math.round(n.toCoordinate(this.height,u));(r!=this.previousWidth||u!=this.previousHeight)&&0<t&&0<i&&(f.style.width=t+"px",f.style.height=i+"px",f.style.padding=0,e&&e.setSize(t,i),this.balloon=n.processObject(this.balloon,n.AmBalloon,this.theme),this.balloon.setBounds(2,2,t-2,i));this.balloon.chart=this;this.realWidth=t;this.realHeight=i;this.divRealWidth=r;this.divRealHeight=u}},checkDisplay:function(){if(this.autoDisplay&&this.container){var t=n.rect(this.container,10,10),i=t.getBBox();0===i.width&&0===i.height&&(this.divRealHeight=this.divRealWidth=this.realHeight=this.realWidth=0,this.previousWidth=this.previousHeight=NaN);t.remove()}},destroy:function(){this.chartDiv.innerHTML="";this.clearTimeOuts();this.legend&&this.legend.destroy()},clearTimeOuts:function(){var t=this.timeOuts,n;if(t)for(n=0;n<t.length;n++)clearTimeout(t[n]);this.timeOuts=[]},clear:function(t){if(n.callMethod("clear",[this.chartScrollbar,this.scrollbarV,this.scrollbarH,this.chartCursor]),this.chartCursor=this.scrollbarH=this.scrollbarV=this.chartScrollbar=null,this.clearTimeOuts(),this.container&&(this.container.remove(this.chartDiv),this.container.remove(this.legendDiv)),t||n.removeChart(this),t=this.div)for(;t.firstChild;)t.removeChild(t.firstChild);this.legend&&this.legend.destroy()},setMouseCursor:function(t){"auto"==t&&n.isNN&&(t="default");this.chartDiv.style.cursor=t;this.legendDiv.style.cursor=t},redrawLabels:function(){var t,n;for(this.labels=[],t=this.allLabels,this.createLabelsSet(),n=0;n<t.length;n++)this.drawLabel(t[n])},drawLabel:function(t){if(this.container&&!1!==t.enabled){t=n.processObject(t,n.Label,this.theme);var u=t.y,i=t.text,r=t.align,o=t.size,s=t.color,f=t.rotation,h=t.alpha,c=t.bold,e=n.toCoordinate(t.x,this.realWidth),u=n.toCoordinate(u,this.realHeight);e||(e=0);u||(u=0);void 0===s&&(s=this.color);isNaN(o)&&(o=this.fontSize);r||(r="start");"left"==r&&(r="start");"right"==r&&(r="end");"center"==r&&(r="middle",f?u=this.realHeight-u+u/2:e=this.realWidth/2-e);void 0===h&&(h=1);void 0===f&&(f=0);u+=o/2;i=n.text(this.container,i,s,this.fontFamily,o,r,c,h);i.translate(e,u);n.setCN(this,i,"label");t.id&&n.setCN(this,i,"label-"+t.id);0!==f&&i.rotate(f);t.url?(i.setAttr("cursor","pointer"),i.click(function(){n.getURL(t.url)})):i.node.style.pointerEvents="none";this.labelsSet.push(i);this.labels.push(i)}},addLabel:function(n,t,i,r,u,f,e,o,s,h){n={x:n,y:t,text:i,align:r,size:u,color:f,alpha:o,rotation:e,bold:s,url:h,enabled:!0};this.container&&this.drawLabel(n);this.allLabels.push(n)},clearLabels:function(){for(var t=this.labels,n=t.length-1;0<=n;n--)t[n].remove();this.labels=[];this.allLabels=[]},updateHeight:function(){var n=this.divRealHeight,t=this.legend,i;return t&&(i=this.legendDiv.offsetHeight,t=t.position,("top"==t||"bottom"==t)&&(n-=i,(0>n||isNaN(n))&&(n=0),this.chartDiv.style.height=n+"px")),n},updateWidth:function(){var t=this.divRealWidth,f=this.divRealHeight,n=this.legend,i,r;if(n){i=this.legendDiv;r=i.offsetWidth;isNaN(n.width)||(r=n.width);n.ieW&&(r=n.ieW);var e=i.offsetHeight,i=i.style,u=this.chartDiv.style,n=n.position;("right"==n||"left"==n)&&(t-=r,(0>t||isNaN(t))&&(t=0),u.width=t+"px",this.balloon.setBounds(2,2,t-2,this.realHeight),"left"==n?(u.left=r+"px",i.left="0px"):(u.left="0px",i.left=t+"px"),f>e&&(i.top=(f-e)/2+"px"))}return t},getTitleHeight:function(){return this.drawTitles(!0),this.titleHeight},addTitle:function(n,t,i,r,u){return isNaN(t)&&(t=this.fontSize+2),n={text:n,size:t,color:i,alpha:r,bold:u,enabled:!0},this.titles.push(n),n},handleWheel:function(n){var t=0;n||(n=window.event);n.wheelDelta?t=n.wheelDelta/120:n.detail&&(t=-n.detail/3);t&&this.handleWheelReal(t,n.shiftKey);n.preventDefault&&n.preventDefault()},handleWheelReal:function(){},handleDocTouchStart:function(){this.hideBalloonReal();this.handleMouseMove();this.tmx=this.mouseX;this.tmy=this.mouseY},handleDocTouchEnd:function(){-.5<this.tmx&&this.tmx<this.divRealWidth+1&&0<this.tmy&&this.tmy<this.divRealHeight?(this.handleMouseMove(),4>Math.abs(this.mouseX-this.tmx)&&4>Math.abs(this.mouseY-this.tmy)&&(this.tapped=!0)):this.tapped=!1},addListeners:function(){var n=this,t=n.chartDiv;document.addEventListener?(n.panEventsEnabled&&(t.style.msTouchAction="none"),"ontouchstart"in document.documentElement&&(t.addEventListener("touchstart",function(t){n.handleTouchStart.call(n,t)},!0),t.addEventListener("touchmove",function(t){n.handleMouseMove.call(n,t)},!0),t.addEventListener("touchend",function(t){n.handleTouchEnd.call(n,t)},!0),document.addEventListener("touchstart",function(t){n.handleDocTouchStart.call(n,t)}),document.addEventListener("touchend",function(t){n.handleDocTouchEnd.call(n,t)})),t.addEventListener("mousedown",function(t){n.mouseIsOver=!0;n.handleMouseMove.call(n,t);n.handleMouseDown.call(n,t)},!0),t.addEventListener("mouseover",function(t){n.handleMouseOver.call(n,t)},!0),t.addEventListener("mouseout",function(t){n.handleMouseOut.call(n,t)},!0)):(t.attachEvent("onmousedown",function(t){n.handleMouseDown.call(n,t)}),t.attachEvent("onmouseover",function(t){n.handleMouseOver.call(n,t)}),t.attachEvent("onmouseout",function(t){n.handleMouseOut.call(n,t)}))},dispDUpd:function(){if(!this.skipEvents){var n;this.dispatchDataUpdated&&(this.dispatchDataUpdated=!1,n="dataUpdated",this.fire(n,{type:n,chart:this}));this.chartCreated||(this.chartCreated=!0,n="init",this.fire(n,{type:n,chart:this}));this.chartRendered||(n="rendered",this.fire(n,{type:n,chart:this}),this.chartRendered=!0);n="drawn";this.fire(n,{type:n,chart:this})}this.skipEvents=!1},validateSize:function(){var n=this,t,i;n.premeasure();n.checkDisplay();(n.divRealWidth!=n.previousWidth||n.divRealHeight!=n.previousHeight)&&(t=n.legend,0<n.realWidth&&0<n.realHeight&&(n.sizeChanged=!0,t&&(n.legendInitTO&&clearTimeout(n.legendInitTO),i=setTimeout(function(){t.invalidateSize()},10),n.timeOuts.push(i),n.legendInitTO=i),"xy"!=n.type?n.marginsUpdated=!1:(n.marginsUpdated=!0,n.selfZoom=!0),clearTimeout(n.initTO),i=setTimeout(function(){n.initChart()},10),n.timeOuts.push(i),n.initTO=i),n.fire("resized",{type:"resized",chart:n}),n.renderFix(),t&&t.renderFix&&t.renderFix(),n.previousHeight=n.divRealHeight,n.previousWidth=n.divRealWidth)},invalidateSize:function(){this.previousHeight=this.previousWidth=NaN;this.invalidateSizeReal()},invalidateSizeReal:function(){var n=this,t;n.marginsUpdated=!1;clearTimeout(n.validateTO);t=setTimeout(function(){n.validateSize()},5);n.timeOuts.push(t);n.validateTO=t},validateData:function(n){this.chartCreated&&(this.dataChanged=!0,this.marginsUpdated=!1,this.initChart(n))},validateNow:function(n,t){this.initTO&&clearTimeout(this.initTO);n&&(this.dataChanged=!0,this.marginsUpdated=!1);this.skipEvents=t;this.chartRendered=!1;this.write(this.div)},showItem:function(n){n.hidden=!1;this.initChart()},hideItem:function(n){n.hidden=!0;this.initChart()},hideBalloon:function(){var n=this;clearTimeout(n.hoverInt);clearTimeout(n.balloonTO);n.hoverInt=setTimeout(function(){n.hideBalloonReal.call(n)},n.hideBalloonTime)},cleanChart:function(){},hideBalloonReal:function(){var n=this.balloon;n&&n.hide()},showBalloon:function(n,t,i,r,u){var f=this;clearTimeout(f.balloonTO);clearTimeout(f.hoverInt);f.balloonTO=setTimeout(function(){f.showBalloonReal.call(f,n,t,i,r,u)},1)},showBalloonReal:function(n,t,i,r,u){this.handleMouseMove();var f=this.balloon;f.enabled&&(f.followCursor(!1),f.changeColor(t),!i||f.fixedPosition?(f.setPosition(r,u),isNaN(r)||isNaN(u)?f.followCursor(!0):f.followCursor(!1)):f.followCursor(!0),n&&f.showBalloon(n))},handleMouseOver:function(){this.outTO&&clearTimeout(this.outTO);n.resetMouseOver();this.mouseIsOver=!0},handleMouseOut:function(){var n=this;n.outTO&&clearTimeout(n.outTO);n.outTO=setTimeout(function(){n.handleMouseOutReal()},10)},handleMouseOutReal:function(){n.resetMouseOver();this.mouseIsOver=!1},handleMouseMove:function(n){if(n||(n=window.event),n){if(n.touches){if(n=n.touches.item(0),!n)return}else this.wasTouched=!1;this.boundingRect&&n.clientX&&(this.mouseX=n.clientX-this.boundingRect.left,this.mouseY=n.clientY-this.boundingRect.top)}},handleTouchStart:function(n){this.hideBalloonReal();n&&(n.touches&&this.tapToActivate&&!this.tapped||!this.panRequired)||(this.handleMouseMove(n),this.handleMouseDown(n))},handleTouchEnd:function(t){this.wasTouched=!0;this.handleMouseMove(t);n.resetMouseOver();this.handleReleaseOutside(t)},handleReleaseOutside:function(){},handleMouseDown:function(t){n.resetMouseOver();this.mouseIsOver=!0;t&&t.preventDefault&&(this.panEventsEnabled?t.preventDefault():t.touches||t.preventDefault())},addLegend:function(t,i){t=n.processObject(t,n.AmLegend,this.theme);t.divId=i;t.ieW=0;var r;return r="object"!=typeof i&&i?document.getElementById(i):i,this.legend=t,t.chart=this,r?(t.div=r,t.position="outside",t.autoMargins=!1):t.div=this.legendDiv,t},removeLegend:function(){this.legend=void 0;this.legendDiv.innerHTML=""},handleResize:function(){(n.isPercents(this.width)||n.isPercents(this.height))&&this.invalidateSizeReal();this.renderFix()},renderFix:function(){if(!n.VML){var t=this.container;t&&t.renderFix()}},getSVG:function(){if(n.hasSVG)return this.container},animate:function(t,i,r,u,f,e,o){return t["an_"+i]&&n.removeFromArray(this.animations,t["an_"+i]),r={obj:t,frame:0,attribute:i,from:r,to:u,time:f,effect:e,suffix:o},t["an_"+i]=r,this.animations.push(r),r},setLegendData:function(n){var t=this.legend;t&&t.setData(n)},stopAnim:function(t){n.removeFromArray(this.animations,t)},updateAnimations:function(){var i;if(this.container&&this.container.update(),this.animations)for(i=this.animations.length-1;0<=i;i--){var t=this.animations[i],r=1e3*t.time/n.updateRate,e=t.frame+1,u=t.obj,f=t.attribute;if(e<=r){t.frame++;var o=Number(t.from),s=Number(t.to)-o,r=n[t.effect](0,e,o,s,r);0===s?(this.animations.splice(i,1),u.node.style[f]=Number(t.to)+t.suffix):u.node.style[f]=r+t.suffix}else u.node.style[f]=Number(t.to)+t.suffix,this.animations.splice(i,1)}},update:function(){this.updateAnimations()},inIframe:function(){try{return window.self!==window.top}catch(n){return!0}},brr:function(){}});n.Slice=n.Class({construct:function(){}});n.SerialDataItem=n.Class({construct:function(){}});n.GraphDataItem=n.Class({construct:function(){}});n.Guide=n.Class({construct:function(t){this.cname="Guide";n.applyTheme(this,t,this.cname)}});n.Title=n.Class({construct:function(t){this.cname="Title";n.applyTheme(this,t,this.cname)}});n.Label=n.Class({construct:function(t){this.cname="Label";n.applyTheme(this,t,this.cname)}})}(),function(){var n=window.AmCharts;n.AmGraph=n.Class({construct:function(t){this.cname="AmGraph";this.createEvents("rollOverGraphItem","rollOutGraphItem","clickGraphItem","doubleClickGraphItem","rightClickGraphItem","clickGraph","rollOverGraph","rollOutGraph");this.type="line";this.stackable=!0;this.columnCount=1;this.columnIndex=0;this.centerCustomBullets=this.showBalloon=!0;this.maxBulletSize=50;this.minBulletSize=4;this.balloonText="[[value]]";this.hidden=this.scrollbar=this.animationPlayed=!1;this.pointPosition="middle";this.depthCount=1;this.includeInMinMax=!0;this.negativeBase=0;this.visibleInLegend=!0;this.showAllValueLabels=!1;this.showBulletsAt=this.showBalloonAt="close";this.lineThickness=1;this.dashLength=0;this.connect=!0;this.lineAlpha=1;this.bullet="none";this.bulletBorderThickness=2;this.bulletBorderAlpha=0;this.bulletAlpha=1;this.bulletSize=8;this.cornerRadiusTop=this.hideBulletsCount=this.bulletOffset=0;this.cursorBulletAlpha=1;this.gradientOrientation="vertical";this.dy=this.dx=0;this.periodValue="";this.clustered=!0;this.periodSpan=1;this.y=this.x=0;this.switchable=!0;this.tcc=this.minDistance=1;this.labelRotation=0;this.labelAnchor="auto";this.labelOffset=3;this.bcn="graph-";this.dateFormat="MMM DD, YYYY";this.noRounding=!0;n.applyTheme(this,t,this.cname)},draw:function(){var t=this.chart,o=t.type,u,i,r,f,e;isNaN(this.precision)||(this.numberFormatter?this.numberFormatter.precision=this.precision:this.numberFormatter={precision:this.precision,decimalSeparator:t.decimalSeparator,thousandsSeparator:t.thousandsSeparator});u=t.container;this.container=u;this.destroy();i=u.set();r=u.set();this.behindColumns?(t.graphsBehindSet.push(i),t.bulletBehindSet.push(r)):(t.graphsSet.push(i),t.bulletSet.push(r));f=this.bulletAxis;n.isString(f)&&(this.bulletAxis=t.getValueAxisById(f));this.bulletSet=r;this.scrollbar||(f=t.marginLeftReal,e=t.marginTopReal,i.translate(f,e),r.translate(f,e));u=u.set();n.remove(this.columnsSet);i.push(u);this.set=i;n.setCN(t,i,"graph-"+this.type);n.setCN(t,i,"graph-"+this.id);n.setCN(t,r,"graph-"+this.type);n.setCN(t,r,"graph-"+this.id);this.columnsSet=u;this.columnsArray=[];this.ownColumns=[];this.allBullets=[];this.animationArray=[];i=this.labelPosition;i||(r=this.valueAxis.stackType,i="top","column"==this.type&&(t.rotate&&(i="right"),"100%"==r||"regular"==r)&&(i="middle"),this.labelPosition=i);n.ifArray(this.data)&&(t=!1,"xy"==o?this.xAxis.axisCreated&&this.yAxis.axisCreated&&(t=!0):this.valueAxis.axisCreated&&(t=!0),!this.hidden&&t&&this.createGraph())},createGraph:function(){var t=this,r=t.chart,i;if(t.startAlpha=r.startAlpha,t.seqAn=r.sequencedAnimation,t.baseCoord=t.valueAxis.baseCoord,void 0===t.fillAlphas&&(t.fillAlphas=0),t.bulletColorR=t.bulletColor,void 0===t.bulletColorR&&(t.bulletColorR=t.lineColorR,t.bulletColorNegative=t.negativeLineColor),void 0===t.bulletAlpha&&(t.bulletAlpha=t.lineAlpha),("step"==i||n.VML)&&(t.noRounding=!1),i=r.type,"gantt"==i&&(i="serial"),clearTimeout(t.playedTO),!isNaN(t.valueAxis.min)&&!isNaN(t.valueAxis.max)){switch(i){case"serial":t.categoryAxis&&(t.createSerialGraph(),"candlestick"==t.type&&1>t.valueAxis.minMaxMultiplier&&t.positiveClip(t.set));break;case"radar":t.createRadarGraph();break;case"xy":t.createXYGraph();t.positiveClip(t.set)}t.playedTO=setTimeout(function(){t.setAnimationPlayed.call(t)},500*t.chart.startDuration)}},setAnimationPlayed:function(){this.animationPlayed=!0},createXYGraph:function(){var o=[],s=[],e=this.xAxis,h=this.yAxis,i;for(this.pmh=h.viH+1,this.pmw=e.viW+1,this.pmy=this.pmx=0,i=this.start;i<=this.end;i++){var n=this.data[i].axes[e.id].graphs[this.id],t=n.values,u=t.x,f=t.y,t=e.getCoordinate(u,this.noRounding),r=h.getCoordinate(f,this.noRounding);isNaN(u)||isNaN(f)||!(o.push(t),s.push(r),n.x=t,n.y=r,u=this.createBullet(n,t,r,i),f=this.labelText)||(n=this.createLabel(n,t,r,f),this.positionLabel(t,r,n,u),this.allBullets.push(n))}this.drawLineGraph(o,s);this.launchAnimation()},createRadarGraph:function(){for(var w=this.valueAxis.stackType,f=[],e=[],o=[],s=[],l,a,h,v,n,t,y,u=this.start;u<=this.end;u++)if(n=this.data[u].axes[this.valueAxis.id].graphs[this.id],"none"==w||"3d"==w?t=n.values.value:(t=n.values.close,y=n.values.open),isNaN(t))this.connect||(this.drawLineGraph(f,e,o,s),f=[],e=[],o=[],s=[]);else{var i=this.y-(this.valueAxis.getCoordinate(t,this.noRounding)-this.height),i=i*this.valueAxis.rMultiplier,r=180-360/(this.end-this.start+1)*u;if("middle"==this.valueAxis.pointPosition&&(r-=180/(this.end-this.start+1)),t=i*Math.sin(r/180*Math.PI),i*=Math.cos(r/180*Math.PI),f.push(t),e.push(i),!isNaN(y)){var p=this.y-(this.valueAxis.getCoordinate(y,this.noRounding)-this.height),p=p*this.valueAxis.rMultiplier,c=p*Math.sin(r/180*Math.PI),r=p*Math.cos(r/180*Math.PI);o.push(c);s.push(r);isNaN(h)&&(h=c);isNaN(v)&&(v=r)}r=this.createBullet(n,t,i,u);n.x=t;n.y=i;(c=this.labelText)&&(n=this.createLabel(n,t,i,c),this.positionLabel(t,i,n,r),this.allBullets.push(n));isNaN(l)&&(l=t);isNaN(a)&&(a=i)}f.push(l);e.push(a);isNaN(h)||(o.push(h),s.push(v));this.drawLineGraph(f,e,o,s);this.launchAnimation()},positionLabel:function(n,t,i,r){var s="middle",y=!1,h=this.labelPosition,f=i.getBBox(),u;if(r){var c=r.graphDataItem,e=this.chart.rotate,o=c.isNegative,p=this.chart,w=this.valueAxis;t-=f.height/8;void 0!==c.labelIsNegative&&(o=c.labelIsNegative);switch(h){case"top":h=e?"top":o?"bottom":"top";break;case"right":h=e?o?"left":"right":"right";break;case"bottom":h=e?"bottom":o?"top":"bottom";break;case"left":h=e?o?"right":"left":"left"}var l=c.columnGraphics,a=0,v=0;l&&(a=l.x,v=l.y);u=this.labelOffset;switch(h){case"top":t=w.reversed?t+(r.size/2+f.height/2+u):t-(r.size/2+f.height/2+u);break;case"right":s="start";n+=r.size/2+u;break;case"bottom":t=w.reversed?t-(r.size/2+f.height/2+u):t+(r.size/2+f.height/2+u);break;case"left":s="end";n-=r.size/2+u;break;case"inside":"column"==this.type&&(y=!0,e?o?(s="end",n=a-3-u):(s="start",n=a+3+u):t=o?v+7+u:v-10-u);break;case"middle":"column"==this.type&&(y=!0,e?n-=(n-a)/2+u-3:t-=(t-v)/2+u-3)}return"auto"!=this.labelAnchor&&(s=this.labelAnchor),i.attr({"text-anchor":s}),this.labelRotation&&i.rotate(this.labelRotation),i.translate(n,t),f=i.getBBox(),!this.showAllValueLabels&&l&&y&&(f.height>c.columnHeight||f.width>c.columnWidth)&&(i.remove(),i=!1),i&&("serial"==p.type||"gantt"==p.type)&&(e?(0>t||t>this.height)&&(i.remove(),i=!1):(0>n||n>this.width)&&(i.remove(),i=!1)),i}},getGradRotation:function(){var n=270;return"horizontal"==this.gradientOrientation&&(n=0),this.gradientRotation=n},createSerialGraph:function(){var au,gr,ur,li,wf,ai,bf,u,tu,ki,wu,fi,dt,hr,du,ne,de,ge,te,ie,bt,no,to,vr,ru,re,ue,lt,fe,ee,oe,gu,nf,tf,se,he,ce,rf,le,gi,yr;this.dashLengthSwitched=this.fillColorsSwitched=this.lineColorSwitched=void 0;var rt=this.chart,nr=this.id,pi=this.index,vt=this.data,ht=this.chart.container,e=this.valueAxis,b=this.type,p=this.columnWidthReal,kt=this.showBulletsAt;isNaN(this.columnWidth)||(p=this.columnWidth);isNaN(p)&&(p=.8);var wi=this.useNegativeColorIfDown,k=this.width,ut=this.height,ao=this.y,d=this.rotate,si=this.columnCount,eu=n.toCoordinate(this.cornerRadiusTop,p/2),ff=this.connect,s=[],h=[],cr,pr,ef,of,bi=this.chart.graphs.length,wr,et=this.dx/this.tcc,ct=this.dy/this.tcc,at=e.stackType,tr=this.start,lr=this.end,hi=this.scrollbar,br="graph-column-";hi&&(br="scrollbar-graph-column-");var ae=this.categoryAxis,ve=this.baseCoord,sf=this.negativeBase,ni=this.columnIndex,ot=this.lineThickness,yt=this.lineAlpha,hf=this.lineColorR,ti=this.dashLength,ir=this.set,ye,ou=this.getGradRotation(),ii=this.chart.columnSpacing,ft=ae.cellWidth,pe=(ft*p-si)/si;ii>pe&&(ii=pe);var g,t,su,cf=ut+1,lf=k+1,hu=0,af=0,vf,yf,cu,lu,pf=this.fillColorsR,rr=this.negativeFillColors,ci=this.negativeLineColor,kr=this.fillAlphas,dr=this.negativeFillAlphas;if("object"==typeof kr&&(kr=kr[0]),"object"==typeof dr&&(dr=dr[0]),au=this.noRounding,"step"==b&&(au=!1),gr=e.getCoordinate(e.min),e.logarithmic&&(gr=e.getCoordinate(e.minReal)),this.minCoord=gr,this.resetBullet&&(this.bullet="none"),hi||"line"!=b&&"smoothedLine"!=b&&"step"!=b||(1==vt.length&&"step"!=b&&"none"==this.bullet&&(this.bullet="round",this.resetBullet=!0),!rr&&void 0==ci||wi)||(ur=sf,ur>e.max&&(ur=e.max),ur<e.min&&(ur=e.min),e.logarithmic&&(ur=e.minReal),li=e.getCoordinate(ur),wf=e.getCoordinate(e.max),d?(cf=ut,lf=Math.abs(wf-li)+1,vf=ut,yf=Math.abs(gr-li)+1,lu=af=0,e.reversed?(hu=0,cu=li):(hu=li,cu=0)):(lf=k,cf=Math.abs(wf-li)+1,yf=k,vf=Math.abs(gr-li)+1,cu=hu=0,e.reversed?(lu=ao,af=li):lu=li+1)),ai=Math.round,this.pmx=ai(hu),this.pmy=ai(af),this.pmh=ai(cf),this.pmw=ai(lf),this.nmx=ai(cu),this.nmy=ai(lu),this.nmh=ai(vf),this.nmw=ai(yf),n.isModern||(this.nmy=this.nmx=0,this.nmh=this.height),this.clustered||(si=1),p="column"==b?(ft*p-ii*(si-1))/si:ft*p,1>p&&(p=1),bf=this.fixedColumnWidth,isNaN(bf)||(p=bf),"line"==b||"step"==b||"smoothedLine"==b){if(0<tr){for(u=tr-1;-1<u;u--)if(g=vt[u],t=g.axes[e.id].graphs[nr],su=t.values.value,!isNaN(su)){tr=u;break}if(this.lineColorField)for(u=tr;-1<u;u--)if(g=vt[u],t=g.axes[e.id].graphs[nr],t.lineColor){this.bulletColorSwitched=this.lineColorSwitched=t.lineColor;break}if(this.fillColorsField)for(u=tr;-1<u;u--)if(g=vt[u],t=g.axes[e.id].graphs[nr],t.fillColors){this.fillColorsSwitched=t.fillColors;break}if(this.dashLengthField)for(u=tr;-1<u;u--)if(g=vt[u],t=g.axes[e.id].graphs[nr],!isNaN(t.dashLength)){this.dashLengthSwitched=t.dashLength;break}}if(lr<vt.length-1)for(u=lr+1;u<vt.length;u++)if(g=vt[u],t=g.axes[e.id].graphs[nr],su=t.values.value,!isNaN(su)){lr=u;break}}lr<vt.length-1&&lr++;var v=[],y=[],fr=!1;("line"==b||"step"==b||"smoothedLine"==b)&&(this.stackable&&"regular"==at||"100%"==at||this.fillToGraph)&&(fr=!0);var we=this.noStepRisers,vu=-1e3,yu=-1e3,pu=this.minDistance,er=!0,nu=!1,be=0,ke=0;for(u=tr;u<=lr;u++){if(g=vt[u],t=g.axes[e.id].graphs[nr],t.index=u,ki=NaN,wi&&void 0==this.openField)for(wu=u+1;wu<vt.length&&(!vt[wu]||!(tu=vt[u+1].axes[e.id].graphs[nr])||!tu.values||(ki=tu.values.value,isNaN(ki)));wu++);var l,c,f,nt,dt=NaN,r=NaN,i=NaN,a=NaN,o=NaN,or=NaN,vi=NaN,sr=NaN,yi=NaN,ri=NaN,ui=NaN,tt=NaN,it=NaN,w=NaN,kf=NaN,df=NaN,st=NaN,lt=void 0,di=pf,ar=kr,ei=hf,pt,gt,gf=this.proCandlesticks,bu=this.topRadius,iu=this.pattern;if(void 0!=t.pattern&&(iu=t.pattern),isNaN(t.alpha)||(ar=t.alpha),isNaN(t.dashLength)||(ti=t.dashLength),fi=t.values,e.recalculateToPercents&&(fi=t.percents),fi){if(w=this.stackable&&"none"!=at&&"3d"!=at?fi.close:fi.value,("candlestick"==b||"ohlc"==b)&&(w=fi.close,df=fi.low,vi=e.getCoordinate(df),kf=fi.high,yi=e.getCoordinate(kf)),st=fi.open,i=e.getCoordinate(w,au),isNaN(st)||(o=e.getCoordinate(st,au),wi&&"regular"!=at&&"100%"!=at&&(ki=st,st=o=NaN)),wi&&(void 0==this.openField?tu&&(tu.isNegative=ki<w?!0:!1,isNaN(ki)&&(t.isNegative=!er)):t.isNegative=ki>w?!0:!1),!hi)switch(this.showBalloonAt){case"close":t.y=i;break;case"open":t.y=o;break;case"high":t.y=yi;break;case"low":t.y=vi}dt=g.x[ae.id];hr=this.periodSpan-1;"step"!=b||isNaN(g.cellWidth)||(ft=g.cellWidth);var wt=Math.floor(ft/2)+Math.floor(hr*ft/2),oi=wt,ku=0;"left"==this.stepDirection&&(ku=(2*ft+hr*ft)/2,dt-=ku);"center"==this.stepDirection&&(ku=ft/2,dt-=ku);"start"==this.pointPosition&&(dt-=ft/2+Math.floor(hr*ft/2),wt=0,oi=Math.floor(ft)+Math.floor(hr*ft));"end"==this.pointPosition&&(dt+=ft/2+Math.floor(hr*ft/2),wt=Math.floor(ft)+Math.floor(hr*ft),oi=0);we&&(du=this.columnWidth,isNaN(du)||(wt*=du,oi*=du));hi||(t.x=dt);-1e5>dt&&(dt=-1e5);dt>k+1e5&&(dt=k+1e5);d?(r=i,a=o,o=i=dt,isNaN(st)&&!this.fillToGraph&&(a=ve),or=vi,sr=yi):(a=r=dt,isNaN(st)&&!this.fillToGraph&&(o=ve));(!gf&&w<st||gf&&w<ye)&&(t.isNegative=!0,rr&&(di=rr),dr&&(ar=dr),void 0!=ci&&(ei=ci));nu=!1;isNaN(w)||(wi?w>ki?(er&&(nu=!0),er=!1):(er||(nu=!0),er=!0):t.isNegative=w<sf?!0:!1,ye=w);ne=!1;hi&&rt.chartScrollbar.ignoreCustomColors&&(ne=!0);ne||(void 0!=t.color&&(di=t.color),t.fillColors&&(di=t.fillColors));switch(b){case"line":isNaN(w)?ff||(this.drawLineGraph(s,h,v,y),s=[],h=[],v=[],y=[]):((Math.abs(r-vu)>=pu||Math.abs(i-yu)>=pu)&&(s.push(r),h.push(i),vu=r,yu=i),ri=r,ui=i,tt=r,it=i,!fr||isNaN(o)||isNaN(a)||(v.push(a),y.push(o)),(nu||void 0!=t.lineColor||void 0!=t.fillColors||!isNaN(t.dashLength))&&(this.drawLineGraph(s,h,v,y),s=[r],h=[i],v=[],y=[],!fr||isNaN(o)||isNaN(a)||(v.push(a),y.push(o)),wi?er?(this.lineColorSwitched=hf,this.fillColorsSwitched=pf):(this.lineColorSwitched=ci,this.fillColorsSwitched=rr):(this.lineColorSwitched=t.lineColor,this.fillColorsSwitched=t.fillColors),this.dashLengthSwitched=t.dashLength),t.gap&&(this.drawLineGraph(s,h,v,y),s=[],h=[],v=[],y=[]));break;case"smoothedLine":isNaN(w)?ff||(this.drawSmoothedGraph(s,h,v,y),s=[],h=[],v=[],y=[]):((Math.abs(r-vu)>=pu||Math.abs(i-yu)>=pu)&&(s.push(r),h.push(i),vu=r,yu=i),ri=r,ui=i,tt=r,it=i,!fr||isNaN(o)||isNaN(a)||(v.push(a),y.push(o)),void 0==t.lineColor&&void 0==t.fillColors&&isNaN(t.dashLength)||(this.drawSmoothedGraph(s,h,v,y),s=[r],h=[i],v=[],y=[],!fr||isNaN(o)||isNaN(a)||(v.push(a),y.push(o)),this.lineColorSwitched=t.lineColor,this.fillColorsSwitched=t.fillColors,this.dashLengthSwitched=t.dashLength),t.gap&&(this.drawSmoothedGraph(s,h,v,y),s=[],h=[],v=[],y=[]));break;case"step":isNaN(w)?ff||((1>=this.periodSpan||1<this.periodSpan&&r-cr>wt+oi)&&(cr=pr=NaN),this.drawLineGraph(s,h,v,y),s=[],h=[],v=[],y=[]):(d?(isNaN(cr)||(s.push(cr),h.push(i-wt)),h.push(i-wt),s.push(r),h.push(i+oi),s.push(r),!fr||isNaN(o)||isNaN(a)||(isNaN(ef)||(v.push(ef),y.push(o-wt)),v.push(a),y.push(o-wt),v.push(a),y.push(o+oi))):(isNaN(pr)||(h.push(pr),s.push(r-wt)),s.push(r-wt),h.push(i),s.push(r+oi),h.push(i),!fr||isNaN(o)||isNaN(a)||(isNaN(of)||(v.push(a-wt),y.push(of)),v.push(a-wt),y.push(o),v.push(a+oi),y.push(o))),cr=r,pr=i,ef=a,of=o,ri=r,ui=i,tt=r,it=i,(nu||void 0!=t.lineColor||void 0!=t.fillColors||!isNaN(t.dashLength))&&(de=s[s.length-2],ge=h[h.length-2],s.pop(),h.pop(),this.drawLineGraph(s,h,v,y),s=[de],h=[ge],d?(h.push(i+oi),s.push(r)):(s.push(r+oi),h.push(i)),v=[],y=[],this.lineColorSwitched=t.lineColor,this.fillColorsSwitched=t.fillColors,this.dashLengthSwitched=t.dashLength,wi&&(er?(this.lineColorSwitched=hf,this.fillColorsSwitched=pf):(this.lineColorSwitched=ci,this.fillColorsSwitched=rr))),(we||t.gap)&&(cr=pr=NaN,this.drawLineGraph(s,h,v,y),s=[],h=[],v=[],y=[]));break;case"column":pt=ei;void 0!=t.lineColor&&(pt=t.lineColor);isNaN(w)||(wi||(t.isNegative=w<sf?!0:!1),t.isNegative&&(rr&&(di=rr),void 0!=ci&&(pt=ci)),te=e.min,ie=e.max,w<te&&st<te||w>ie&&st>ie||(d?("3d"==at?(c=i-(si/2-this.depthCount+1)*(p+ii)+ii/2+ct*ni,l=a+et*ni,bt=ni):(c=Math.floor(i-(si/2-ni)*(p+ii)+ii/2),l=a,bt=0),f=p,ri=r,ui=c+p/2,tt=r,it=c+p/2,c+f>ut+bt*ct&&(f=ut-c+bt*ct),c<bt*ct&&(f+=c,c=bt*ct),nt=r-a,no=l,l=n.fitToBounds(l,0,k),nt+=no-l,nt=n.fitToBounds(nt,-l,k-l+et*ni),t.labelIsNegative=0>nt?!0:!1,isNaN(g.percentWidthValue)||(f=this.height*g.percentWidthValue/100,c=ke,ke+=f,ui=c+f/2),c<ut&&0<f&&(lt=new n.Cuboid(ht,nt,f,et-rt.d3x,ct-rt.d3y,di,ar,ot,pt,yt,ou,eu,d,ti,iu,bu,br),t.columnWidth=Math.abs(nt),t.columnHeight=Math.abs(f))):("3d"==at?(l=r-(si/2-this.depthCount+1)*(p+ii)+ii/2+et*ni,c=o+ct*ni,bt=ni):(l=r-(si/2-ni)*(p+ii)+ii/2,c=o,bt=0),f=p,ri=l+p/2,ui=i,tt=l+p/2,it=i,l+f>k+bt*et&&(f=k-l+bt*et),l<bt*et&&(f+=l-bt*et,l=bt*et),nt=i-o,t.labelIsNegative=0<nt?!0:!1,to=c,c=n.fitToBounds(c,this.dy,ut),nt+=to-c,nt=n.fitToBounds(nt,-c+ct*ni,ut-c),isNaN(g.percentWidthValue)||(f=this.width*g.percentWidthValue/100,l=be,be+=f,ri=l+f/2),l<k+ni*et&&0<f&&(this.showOnAxis&&(c-=ct/2),lt=new n.Cuboid(ht,f,nt,et-rt.d3x,ct-rt.d3y,di,ar,ot,pt,this.lineAlpha,ou,eu,d,ti,iu,bu,br),t.columnHeight=Math.abs(nt),t.columnWidth=Math.abs(f)))),lt&&(gt=lt.set,n.setCN(rt,lt.set,"graph-"+this.type),n.setCN(rt,lt.set,"graph-"+this.id),t.className&&n.setCN(rt,lt.set,t.className,!0),t.columnGraphics=gt,gt.translate(l,c),this.columnsSet.push(gt),(t.url||this.showHandOnHover)&&gt.setAttr("cursor","pointer"),!hi)&&("none"==at&&(wr=d?(this.end+1-u)*bi-pi:bi*u+pi),"3d"==at&&(d?(wr=(this.end+1-u)*bi-pi-1e3*this.depthCount,ri+=et*this.columnIndex,tt+=et*this.columnIndex,t.y+=et*this.columnIndex):(wr=(bi-pi)*(u+1)+1e3*this.depthCount,ui+=ct*this.columnIndex,it+=ct*this.columnIndex,t.y+=ct*this.columnIndex)),("regular"==at||"100%"==at)&&(wr=d?0<fi.value?(this.end+1-u)*bi+pi:(this.end+1-u)*bi-pi:0<fi.value?bi*u+pi:bi*u-pi),this.columnsArray.push({column:lt,depth:wr}),t.x=d?c+f/2:l+f/2,this.ownColumns.push(lt),this.animateColumns(lt,u,r,a,i,o),this.addListeners(gt,t)));break;case"candlestick":isNaN(st)||isNaN(w)||(pt=ei,void 0!=t.lineColor&&(pt=t.lineColor),d?(c=i-p/2,l=a,f=p,c+f>ut&&(f=ut-c),0>c&&(f+=c,c=0),c<ut&&0<f)&&(w>st?(re=[r,sr],ue=[a,or]):(re=[a,sr],ue=[r,or]),!isNaN(sr)&&!isNaN(or)&&i<ut&&0<i&&(vr=n.line(ht,re,[i,i],pt,yt,ot),ru=n.line(ht,ue,[i,i],pt,yt,ot)),nt=r-a,lt=new n.Cuboid(ht,nt,f,et,ct,di,kr,ot,pt,yt,ou,eu,d,ti,iu,bu,br)):(l=r-p/2,c=o+ot/2,f=p,l+f>k&&(f=k-l),0>l&&(f+=l,l=0),nt=i-o,l<k&&0<f)&&(gf&&w>=st&&(ar=0),lt=new n.Cuboid(ht,f,nt,et,ct,di,ar,ot,pt,yt,ou,eu,d,ti,iu,bu,br),w>st?(fe=[i,yi],ee=[o,vi]):(fe=[o,yi],ee=[i,vi]),!isNaN(yi)&&!isNaN(vi)&&r<k&&0<r&&(vr=n.line(ht,[r,r],fe,pt,yt,ot),ru=n.line(ht,[r,r],ee,pt,yt,ot),n.setCN(rt,vr,this.bcn+"line-high"),t.className&&n.setCN(rt,vr,t.className,!0),n.setCN(rt,ru,this.bcn+"line-low"),t.className&&n.setCN(rt,ru,t.className,!0))),lt&&(gt=lt.set,t.columnGraphics=gt,ir.push(gt),gt.translate(l,c-ot/2),(t.url||this.showHandOnHover)&&gt.setAttr("cursor","pointer"),vr&&(ir.push(vr),ir.push(ru)),ri=r,ui=i,d?(it=i,tt=r,"open"==kt&&(tt=a),"high"==kt&&(tt=sr),"low"==kt&&(tt=or)):(it=i,"open"==kt&&(it=o),"high"==kt&&(it=yi),"low"==kt&&(it=vi),tt=r),hi||(t.x=d?c+f/2:l+f/2,this.animateColumns(lt,u,r,a,i,o),this.addListeners(gt,t))));break;case"ohlc":if(!(isNaN(st)||isNaN(kf)||isNaN(df)||isNaN(w))){if(oe=ht.set(),ir.push(oe),w<st&&(t.isNegative=!0,void 0!=ci&&(ei=ci)),d){var io=i-p/2,io=n.fitToBounds(io,0,ut),ro=n.fitToBounds(i,0,ut),uo=i+p/2,uo=n.fitToBounds(uo,0,ut);nf=n.line(ht,[a,a],[io,ro],ei,yt,ot,ti);0<i&&i<ut&&(gu=n.line(ht,[or,sr],[i,i],ei,yt,ot,ti));tf=n.line(ht,[r,r],[ro,uo],ei,yt,ot,ti);it=i;tt=r;"open"==kt&&(tt=a);"high"==kt&&(tt=sr);"low"==kt&&(tt=or)}else{var fo=r-p/2,fo=n.fitToBounds(fo,0,k),eo=n.fitToBounds(r,0,k),oo=r+p/2,oo=n.fitToBounds(oo,0,k);nf=n.line(ht,[fo,eo],[o,o],ei,yt,ot,ti);0<r&&r<k&&(gu=n.line(ht,[r,r],[vi,yi],ei,yt,ot,ti));tf=n.line(ht,[eo,oo],[i,i],ei,yt,ot,ti);it=i;"open"==kt&&(it=o);"high"==kt&&(it=yi);"low"==kt&&(it=vi);tt=r}ir.push(nf);ir.push(gu);ir.push(tf);n.setCN(rt,nf,this.bcn+"stroke-open");n.setCN(rt,tf,this.bcn+"stroke-close");n.setCN(rt,gu,this.bcn+"stroke");t.className&&n.setCN(rt,oe,t.className,!0);ri=r;ui=i}}if(!hi&&!isNaN(w)&&(se=this.hideBulletsCount,(this.end-this.start<=se||0===se)&&(he=this.createBullet(t,tt,it,u),ce=this.labelText,ce&&he&&(rf=this.createLabel(t,tt,it,ce),(rf=this.positionLabel(ri,ui,rf,he,f,nt))&&this.allBullets.push(rf)),("regular"==at||"100%"==at)&&(le=e.totalText,le)))){gi=this.createLabel(t,0,0,le,e.totalTextColor);n.setCN(rt,gi,this.bcn+"label-total");this.allBullets.push(gi);var so=gi.getBBox(),ho=so.width,co=so.height,uu,fu,uf=e.totalTextOffset,lo=e.totals[u];lo&&lo.remove();yr=0;"column"!=b&&(yr=this.bulletSize);d?(fu=ui,uu=0>w?r-ho/2-2-yr-uf:r+ho/2+3+yr+uf):(uu=ri,fu=0>w?i+co/2+yr+uf:i-co/2-3-yr-uf);gi.translate(uu,fu);e.totals[u]=gi;d?(0>fu||fu>ut)&&gi.remove():(0>uu||uu>k)&&gi.remove()}}}("line"==b||"step"==b||"smoothedLine"==b)&&("smoothedLine"==b?this.drawSmoothedGraph(s,h,v,y):this.drawLineGraph(s,h,v,y),hi||this.launchAnimation());this.bulletsHidden&&this.hideBullets();this.customBulletsHidden&&this.hideCustomBullets()},animateColumns:function(n,t){var i=this,r=i.chart.startDuration;0<r&&!i.animationPlayed&&(i.seqAn?(n.set.hide(),i.animationArray.push(n),r=setTimeout(function(){i.animate.call(i)},r/(i.end-i.start+1)*(t-i.start)*1e3),i.timeOuts.push(r)):i.animate(n))},createLabel:function(t,i,r,u,f){var o=this.chart,e=t.labelColor,s;return e||(e=this.color),e||(e=o.color),f&&(e=f),f=this.fontSize,void 0===f&&(this.fontSize=f=o.fontSize),s=this.labelFunction,u=o.formatString(u,t),u=n.cleanFromEmpty(u),s&&(u=s(t,u)),t=n.text(this.container,u,e,o.fontFamily,f),t.node.style.pointerEvents="none",n.setCN(o,t,this.bcn+"label"),t.translate(i,r),this.bulletSet.push(t),t},positiveClip:function(n){n.clipRect(this.pmx,this.pmy,this.pmw,this.pmh)},negativeClip:function(n){n.clipRect(this.nmx,this.nmy,this.nmw,this.nmh)},drawLineGraph:function(t,i,r,u){var f=this,p,a,k;if(1<t.length){var l=f.noRounding,v=f.set,h=f.chart,y=f.container,w=y.set(),b=y.set();v.push(b);v.push(w);var c=f.lineAlpha,e=f.lineThickness,v=f.fillAlphas,nt=f.lineColorR,o=f.negativeLineAlpha;isNaN(o)&&(o=c);p=f.lineColorSwitched;p&&(nt=p);p=f.fillColorsR;a=f.fillColorsSwitched;a&&(p=a);k=f.dashLength;(a=f.dashLengthSwitched)&&(k=a);var a=f.negativeLineColor,d=f.negativeFillColors,g=f.negativeFillAlphas,s=f.baseCoord;0!==f.negativeBase&&(s=f.valueAxis.getCoordinate(f.negativeBase),s>f.height&&(s=f.height),0>s&&(s=0));c=n.line(y,t,i,nt,c,e,k,!1,!0,l);n.setCN(h,c,f.bcn+"stroke");w.push(c);w.click(function(n){f.handleGraphEvent(n,"clickGraph")}).mouseover(function(n){f.handleGraphEvent(n,"rollOverGraph")}).mouseout(function(n){f.handleGraphEvent(n,"rollOutGraph")});void 0===a||f.useNegativeColorIfDown||(e=n.line(y,t,i,a,o,e,k,!1,!0,l),n.setCN(h,e,f.bcn+"stroke"),n.setCN(h,e,f.bcn+"stroke-negative"),b.push(e));(0<v||0<g)&&(e=t.join(";").split(";"),o=i.join(";").split(";"),c=h.type,"serial"==c||"radar"==c?0<r.length?(r.reverse(),u.reverse(),e=t.concat(r),o=i.concat(u)):"radar"==c?(o.push(0),e.push(0)):f.rotate?(o.push(o[o.length-1]),e.push(s),o.push(o[0]),e.push(s),o.push(o[0]),e.push(e[0])):(e.push(e[e.length-1]),o.push(s),e.push(e[0]),o.push(s),e.push(t[0]),o.push(o[0])):"xy"==c&&(i=f.fillToAxis)&&(n.isString(i)&&(i=h.getValueAxisById(i)),"H"==i.orientation?(s="top"==i.position?0:i.viH,e.push(e[e.length-1]),o.push(s),e.push(e[0]),o.push(s),e.push(t[0]),o.push(o[0])):(s="left"==i.position?0:i.viW,o.push(o[o.length-1]),e.push(s),o.push(o[0]),e.push(s),o.push(o[0]),e.push(e[0]))),t=f.gradientRotation,0<v&&(i=n.polygon(y,e,o,p,v,1,"#000",0,t,l),i.pattern(f.pattern,NaN,h.path),n.setCN(h,i,f.bcn+"fill"),w.push(i)),d||void 0!==a)&&(isNaN(g)&&(g=v),d||(d=a),l=n.polygon(y,e,o,d,g,1,"#000",0,t,l),n.setCN(h,l,f.bcn+"fill"),n.setCN(h,l,f.bcn+"fill-negative"),l.pattern(f.pattern,NaN,h.path),b.push(l),b.click(function(n){f.handleGraphEvent(n,"clickGraph")}).mouseover(function(n){f.handleGraphEvent(n,"rollOverGraph")}).mouseout(function(n){f.handleGraphEvent(n,"rollOutGraph")}));f.applyMask(b,w)}},applyMask:function(n,t){var i=n.length();"serial"!=this.chart.type||this.scrollbar||(this.positiveClip(t),0<i&&this.negativeClip(n))},drawSmoothedGraph:function(t,i,r,u){if(1<t.length){var h=this.set,e=this.chart,c=this.container,a=c.set(),v=c.set();h.push(v);h.push(a);var o=this.lineAlpha,f=this.lineThickness,h=this.dashLength,k=this.fillAlphas,l=this.lineColorR,y=this.fillColorsR,p=this.negativeLineColor,w=this.negativeFillColors,d=this.negativeFillAlphas,b=this.baseCoord,s=this.lineColorSwitched;s&&(l=s);(s=this.fillColorsSwitched)&&(y=s);s=this.negativeLineAlpha;isNaN(s)&&(s=o);o=new n.Bezier(c,t,i,l,o,f,y,0,h);n.setCN(e,o,this.bcn+"stroke");a.push(o.path);void 0!==p&&(f=new n.Bezier(c,t,i,p,s,f,y,0,h),n.setCN(e,f,this.bcn+"stroke"),n.setCN(e,f,this.bcn+"stroke-negative"),v.push(f.path));0<k&&(o=t.join(";").split(";"),l=i.join(";").split(";"),f="",0<r.length?(r.push("M"),u.push("M"),r.reverse(),u.reverse(),o=t.concat(r),l=i.concat(u)):(this.rotate?(f+=" L"+b+","+i[i.length-1],f+=" L"+b+","+i[0]):(f+=" L"+t[t.length-1]+","+b,f+=" L"+t[0]+","+b),f+=" L"+t[0]+","+i[0]),r=new n.Bezier(c,o,l,NaN,0,0,y,k,h,f),n.setCN(e,r,this.bcn+"fill"),r.path.pattern(this.pattern,NaN,e.path),a.push(r.path),w||void 0!==p)&&(d||(d=k),w||(w=p),t=new n.Bezier(c,t,i,NaN,0,0,w,d,h,f),t.path.pattern(this.pattern,NaN,e.path),n.setCN(e,t,this.bcn+"fill"),n.setCN(e,t,this.bcn+"fill-negative"),v.push(t.path));this.applyMask(v,a)}},launchAnimation:function(){var t=this,i=t.chart.startDuration,r,u;0<i&&!t.animationPlayed&&(r=t.set,u=t.bulletSet,n.VML||(r.attr({opacity:t.startAlpha}),u.attr({opacity:t.startAlpha})),r.hide(),u.hide(),t.seqAn?(i=setTimeout(function(){t.animateGraphs.call(t)},t.index*i*1e3),t.timeOuts.push(i)):t.animateGraphs())},animateGraphs:function(){var n=this.chart,t=this.set,i=this.bulletSet,r=this.x,u=this.y,f;t.show();i.show();f=n.startDuration;n=n.startEffect;t&&(this.rotate?(t.translate(-1e3,u),i.translate(-1e3,u)):(t.translate(r,-1e3),i.translate(r,-1e3)),t.animate({opacity:1,translate:r+","+u},f,n),i.animate({opacity:1,translate:r+","+u},f,n))},animate:function(t){var r=this.chart,i=this.animationArray;!t&&0<i.length&&(t=i[0],i.shift());i=n[n.getEffect(r.startEffect)];r=r.startDuration;t&&(this.rotate?t.animateWidth(r,i):t.animateHeight(r,i),t.set.show())},legendKeyColor:function(){var t=this.legendColor,n=this.lineAlpha;return void 0===t&&(t=this.lineColorR,0===n&&(n=this.fillColorsR)&&(t="object"==typeof n?n[0]:n)),t},legendKeyAlpha:function(){var n=this.legendAlpha;return void 0===n&&(n=this.lineAlpha,this.fillAlphas>n&&(n=this.fillAlphas),0===n&&(n=this.bulletAlpha),0===n&&(n=1)),n},createBullet:function(t,i,r){var u,s,f,p;if(!isNaN(i)&&!isNaN(r)){var h=this.chart,c=this.container,l=this.bulletOffset,e=this.bulletSize;isNaN(t.bulletSize)||(e=t.bulletSize);var a=t.values.value,v=this.maxValue,o=this.minValue,y=this.maxBulletSize,s=this.minBulletSize;isNaN(v)||(isNaN(a)||(e=(a-o)/(v-o)*(y-s)+s),o==v&&(e=y));v=e;this.bulletAxis&&(e=t.values.error,isNaN(e)||(a=e),e=this.bulletAxis.stepWidth*a);e<this.minBulletSize&&(e=this.minBulletSize);this.rotate?i=t.isNegative?i-l:i+l:r=t.isNegative?r+l:r-l;s=this.bulletColorR;t.lineColor&&(this.bulletColorSwitched=t.lineColor);this.bulletColorSwitched&&(s=this.bulletColorSwitched);t.isNegative&&void 0!==this.bulletColorNegative&&(s=this.bulletColorNegative);void 0!==t.color&&(s=t.color);"xy"==h.type&&this.valueField&&(f=this.pattern,t.pattern&&(f=t.pattern));l=this.bullet;t.bullet&&(l=t.bullet);var a=this.bulletBorderThickness,o=this.bulletBorderColorR,y=this.bulletBorderAlpha,w=this.bulletAlpha;return o||(o=s),this.useLineColorForBulletBorder&&(o=this.lineColorR,this.lineColorSwitched&&(o=this.lineColorSwitched)),p=t.alpha,isNaN(p)||(w=p),("none"!=this.bullet||t.bullet)&&(u=n.bullet(c,l,e,s,w,a,o,y,v,0,f,h.path)),(this.customBullet||t.customBullet)&&(f=this.customBullet,t.customBullet&&(f=t.customBullet),f&&(u&&u.remove(),"function"==typeof f?(f=new f,f.chart=h,t.bulletConfig&&(f.availableSpace=r,f.graph=this,f.graphDataItem=t,f.bulletY=r,t.bulletConfig.minCoord=this.minCoord-r,f.bulletConfig=t.bulletConfig),f.write(c),u&&f.showBullet&&f.set.push(u),t.customBulletGraphics=f.cset,u=f.set):(u=c.set(),c=c.image(f,0,0,e,e),u.push(c),this.centerCustomBullets&&c.translate(-e/2,-e/2)))),u&&((t.url||this.showHandOnHover)&&u.setAttr("cursor","pointer"),("serial"==h.type||"gantt"==h.type)&&(-.5>+i||+i>this.width||r<-e/2||+r>this.height)&&(u.remove(),u=null),u&&(this.bulletSet.push(u),u.translate(i,r),this.addListeners(u,t),this.allBullets.push(u)),t.bx=i,t.by=r,n.setCN(h,u,this.bcn+"bullet"),t.className&&n.setCN(h,u,t.className,!0)),u?(u.size=e||0,t.bulletGraphics=u):u={size:0},u.graphDataItem=t,u}},showBullets:function(){var t=this.allBullets,n;for(this.bulletsHidden=!1,n=0;n<t.length;n++)t[n].show()},hideBullets:function(){var t=this.allBullets,n;for(this.bulletsHidden=!0,n=0;n<t.length;n++)t[n].hide()},showCustomBullets:function(){var i=this.allBullets,n,t;for(this.customBulletsHidden=!1,n=0;n<i.length;n++)t=i[n].graphDataItem,t.customBulletGraphics&&t.customBulletGraphics.show()},hideCustomBullets:function(){var i=this.allBullets,n,t;for(this.customBulletsHidden=!0,n=0;n<i.length;n++)t=i[n].graphDataItem,t.customBulletGraphics&&t.customBulletGraphics.hide()},addListeners:function(n,t){var i=this;n.mouseover(function(n){i.handleRollOver(t,n)}).mouseout(function(n){i.handleRollOut(t,n)}).touchend(function(n){i.handleRollOver(t,n);i.chart.panEventsEnabled&&i.handleClick(t,n)}).touchstart(function(n){i.handleRollOver(t,n)}).click(function(n){i.handleClick(t,n)}).dblclick(function(n){i.handleDoubleClick(t,n)}).contextmenu(function(n){i.handleRightClick(t,n)})},handleRollOver:function(t,i){var r,u,f,e,o;t&&(r=this.chart,u={type:"rollOverGraphItem",item:t,index:t.index,graph:this,target:this,chart:this.chart,event:i},this.fire("rollOverGraphItem",u),r.fire("rollOverGraphItem",u),clearTimeout(r.hoverInt),u=this.showBalloon,r.chartCursor&&("serial"==r.type||"gantt"==r.type)&&(u=!1,!r.chartCursor.valueBalloonsEnabled&&this.showBalloon&&(u=!0)),u?(u=r.formatString(this.balloonText,t,!0),f=this.balloonFunction,f&&(u=f(t,t.graph)),u=n.cleanFromEmpty(u),f=r.getBalloonColor(this,t),r.balloon.showBullet=!1,r.balloon.pointerOrientation="V",e=t.x,o=t.y,r.rotate&&(e=t.y,o=t.x),""!==u?r.showBalloon(u,f,!0,e+r.marginLeftReal,o+r.marginTopReal):this.chart.hideBalloonReal()):this.chart.hideBalloonReal());this.handleGraphEvent(i,"rollOverGraph")},handleRollOut:function(n,t){if(this.chart.hideBalloon(),n){var i={type:"rollOutGraphItem",item:n,index:n.index,graph:this,target:this,chart:this.chart,event:t};this.fire("rollOutGraphItem",i);this.chart.fire("rollOutGraphItem",i)}this.handleGraphEvent(t,"rollOutGraph")},handleClick:function(t,i){if(t){var r={type:"clickGraphItem",item:t,index:t.index,graph:this,target:this,chart:this.chart,event:i};this.fire("clickGraphItem",r);this.chart.fire("clickGraphItem",r);n.getURL(t.url,this.urlTarget)}this.handleGraphEvent(i,"clickGraph")},handleGraphEvent:function(n,t){var i={type:t,graph:this,target:this,chart:this.chart,event:n};this.fire(t,i);this.chart.fire(t,i)},handleRightClick:function(n,t){if(n){var i={type:"rightClickGraphItem",item:n,index:n.index,graph:this,target:this,chart:this.chart,event:t};this.fire("rightClickGraphItem",i);this.chart.fire("rightClickGraphItem",i)}},handleDoubleClick:function(n,t){if(n){var i={type:"doubleClickGraphItem",item:n,index:n.index,graph:this,target:this,chart:this.chart,event:t};this.fire("doubleClickGraphItem",i);this.chart.fire("doubleClickGraphItem",i)}},zoom:function(n,t){this.start=n;this.end=t;this.draw()},changeOpacity:function(n){var t=this.set,i,r;if(t&&t.setAttr("opacity",n),t=this.ownColumns)for(i=0;i<t.length;i++)r=t[i].set,r&&r.setAttr("opacity",n);(t=this.bulletSet)&&t.setAttr("opacity",n)},destroy:function(){var t,i;if(n.remove(this.set),n.remove(this.bulletSet),t=this.timeOuts,t)for(i=0;i<t.length;i++)clearTimeout(t[i]);this.timeOuts=[]}})}(),function(){var n=window.AmCharts;n.ChartCursor=n.Class({construct:function(t){this.cname="ChartCursor";this.createEvents("changed","zoomed","onHideCursor","draw","selected","moved");this.enabled=!0;this.cursorAlpha=1;this.selectionAlpha=.2;this.cursorColor="#CC0000";this.categoryBalloonAlpha=1;this.color="#FFFFFF";this.type="cursor";this.zoomed=!1;this.zoomable=!0;this.pan=!1;this.categoryBalloonDateFormat="MMM DD, YYYY";this.categoryBalloonText="[[category]]";this.categoryBalloonEnabled=this.valueBalloonsEnabled=!0;this.rolledOver=!1;this.cursorPosition="middle";this.bulletsEnabled=this.skipZoomDispatch=!1;this.bulletSize=8;this.selectWithoutZooming=this.oneBalloonOnly=!1;this.graphBulletSize=1.7;this.animationDuration=.3;this.zooming=!1;this.adjustment=0;this.avoidBalloonOverlapping=!0;this.leaveCursor=!1;this.leaveAfterTouch=!0;n.applyTheme(this,t,this.cname)},draw:function(){var r,t,i;if(this.destroy(),r=this.chart,r.panRequired=!0,t=r.container,this.rotate=r.rotate,this.container=t,t=t.set(),t.translate(this.x,this.y),this.set=t,r.cursorSet.push(t),t=new n.AmBalloon,t.className="category",t.chart=r,this.categoryBalloon=t,n.copyProperties(r.balloon,t),t.cornerRadius=0,t.shadowAlpha=0,t.borderThickness=1,t.borderAlpha=1,t.showBullet=!1,i=this.categoryBalloonColor,void 0===i&&(i=this.cursorColor),t.fillColor=i,t.balloonColor=i,t.fillAlpha=this.categoryBalloonAlpha,t.borderColor=i,t.color=this.color,i=this.valueLineAxis,n.isString(i)&&(i=r.getValueAxisById(i)),i||(i=r.valueAxes[0]),this.valueLineAxis=i,this.valueLineBalloonEnabled&&(this.vaBalloon=i=new n.AmBalloon,n.copyProperties(t,i),i.animationDuration=0,this.rotate||(i.pointerOrientation="H")),this.rotate&&(t.pointerOrientation="H"),this.extraWidth=0,this.prevX=[],this.prevY=[],this.prevTX=[],this.prevTY=[],this.valueBalloonsEnabled)for(t=0;t<r.graphs.length;t++)i=new n.AmBalloon,i.className=r.graphs[t].id,i.chart=r,n.copyProperties(r.balloon,i),r.graphs[t].valueBalloon=i;"cursor"==this.type?this.createCursor():this.createCrosshair()},updateData:function(){var n=this.chart;this.data=n.chartData;this.firstTime=n.firstTime;this.lastTime=n.lastTime},createCursor:function(){var i=this.chart,r=this.cursorAlpha,h=i.categoryAxis,c=this.categoryBalloon,t,e,u,f;u=i.dx;f=i.dy;var o=this.width,l=this.height,s=i.rotate;c.pointerWidth=h.tickLength;s?(t=[0,o,o+u],e=[0,0,f],u=[u,0,0],f=[f,0,l]):(t=[u,0,0],e=[f,0,l],u=[0,o,o+u],f=[0,0,f]);t=n.line(this.container,t,e,this.cursorColor,r,1);n.setCN(i,t,"cursor-line");this.line=t;t.node.style.pointerEvents="none";(e=this.fullRectSet)?(e.push(t),e.translate(this.x,this.y)):this.set.push(t);this.valueLineEnabled&&(t=this.valueLineAlpha,isNaN(t)||(r=t),r=n.line(this.container,u,f,this.cursorColor,r,1),r.node.style.pointerEvents="none",n.setCN(i,r,"cursor-value-line"),this.vLine=r,this.set.push(r));this.setBalloonBounds(c,h,s);(i=this.vaBalloon)&&this.setBalloonBounds(i,this.valueLineAxis,!s);this.hideCursor()},createCrosshair:function(){var t=this.cursorAlpha,r=this.container,i=n.line(r,[0,0],[0,this.height],this.cursorColor,t,1),t=n.line(r,[0,this.width],[0,0],this.cursorColor,t,1);n.setCN(this.chart,i,"cursor-line");n.setCN(this.chart,t,"cursor-line");this.set.push(i);this.set.push(t);this.vLine=i;this.hLine=t;this.hideCursor()},update:function(){var n=this.chart,t,i;n&&(n.mouseIsOver?(t=n.mouseX-this.x,i=n.mouseY-this.y,-.5<t&&t<this.width+1&&0<i&&i<this.height?((this.valueLineEnabled||this.valueLineBalloonEnabled)&&this.updateVLine(t,i),this.setPosition(),this.drawing?this.rolledOver||n.setMouseCursor("crosshair"):this.pan&&(this.rolledOver||n.setMouseCursor("move")),this.rolledOver=!0):this.rolledOver&&(this.handleMouseOut(),this.rolledOver=!1)):this.rolledOver&&(this.handleMouseOut(),this.rolledOver=!1))},updateVLine:function(n,t){var i=this.vLine,f=this.vaBalloon,r,u,e,o;!(i||f)||this.panning||this.drawing||(i&&i.show(),r=this.valueLineAxis,e=this.rotate,e?(i&&i.translate(n,0),r&&(u=r.coordinateToValue(n)),i=n):(i&&i.translate(0,t),r&&(u=r.coordinateToValue(t)),i=t-1),f&&!isNaN(u)&&this.prevLineValue!=u&&(o=r.formatValue(u,!0),this.setBalloonPosition(f,r,i,!e),f.showBalloon(o)),this.prevLineValue=u)},getMousePosition:function(){var n,t=this.width,i=this.height;return n=this.chart,this.rotate?(n=n.mouseY-this.y,0>n&&(n=0),n>i&&(n=i)):(n=n.mouseX-this.x-1,0>n&&(n=0),n>t&&(n=t)),n},updateCrosshair:function(){var t=this.chart,i=t.mouseX-this.x,r=t.mouseY-this.y,u=this.vLine,f=this.hLine,i=n.fitToBounds(i,0,this.width),r=n.fitToBounds(r,0,this.height);u&&0<this.cursorAlpha&&(u.show(),f.show(),u.translate(i,0),f.translate(0,r));this.zooming&&(t.hideXScrollbar&&(i=NaN),t.hideYScrollbar&&(r=NaN),this.updateSelectionSize(i,r));this.fireMoved();t.mouseIsOver||this.zooming||this.hideCursor()},fireMoved:function(){var t=this.chart,n={type:"moved",target:this};n.chart=t;n.zooming=this.zooming;n.x=t.mouseX-this.x;n.y=t.mouseY-this.y;this.fire("moved",n)},updateSelectionSize:function(t,i){n.remove(this.selection);var r=this.selectionPosX,u=this.selectionPosY,o=0,s=0,f=this.width,e=this.height;isNaN(t)||(r>t&&(o=t,f=r-t),r<t&&(o=r,f=t-r),r==t&&(o=t,f=0),f+=this.extraWidth,o-=this.extraWidth/2);isNaN(i)||(u>i&&(s=i,e=u-i),u<i&&(s=u,e=i-u),u==i&&(s=i,e=0),e+=this.extraWidth,s-=this.extraWidth/2);0<f&&0<e&&(r=n.rect(this.container,f,e,this.cursorColor,this.selectionAlpha),n.setCN(this.chart,r,"cursor-selection"),r.translate(o+this.x,s+this.y),this.selection=r)},arrangeBalloons:function(){var i=this.valueBalloons,r=this.x,u=this.y,f=this.height+u,n,t;for(i.sort(this.compareY),n=0;n<i.length;n++)t=i[n].balloon,t.setBounds(r,u,r+this.width,f),t.prevX=this.prevX[n],t.prevY=this.prevY[n],t.prevTX=this.prevTX[n],t.prevTY=this.prevTY[n],t.draw(),f=t.yPos-3;this.arrangeBalloons2()},compareY:function(n,t){return n.yy<t.yy?1:-1},arrangeBalloons2:function(){var u=this.valueBalloons,s,f,r,i,e,n,o,t;for(u.reverse(),f=this.x,e=u.length,i=0;i<e;i++)n=u[i].balloon,s=n.bottom,o=n.bottom-n.yPos,t=e-i-1,0<i&&s-o<r+3&&(n.setBounds(f,r+3,f+this.width,r+o+3),n.prevX=this.prevX[t],n.prevY=this.prevY[t],n.prevTX=this.prevTX[t],n.prevTY=this.prevTY[t],n.draw()),n.set&&n.set.show(),this.prevX[t]=n.prevX,this.prevY[t]=n.prevY,this.prevTX[t]=n.prevTX,this.prevTY[t]=n.prevTY,r=n.bottom},showBullets:function(){var e,i,u,t,f,r,o,s;for(n.remove(this.allBullets),e=this.container,i=e.set(),this.set.push(i),this.set.show(),this.allBullets=i,i=this.chart.graphs,u=0;u<i.length;u++)t=i[u],!t.hidden&&t.balloonText&&(f=this.data[this.index].axes[t.valueAxis.id].graphs[t.id],r=f.y,isNaN(r)||(o=f.x,this.rotate?(s=r,r=o):s=o,t=n.circle(e,this.bulletSize/2,this.chart.getBalloonColor(t,f,!0),t.cursorBulletAlpha),t.translate(s,r),this.allBullets.push(t)))},destroy:function(){this.clear();n.remove(this.selection);this.selection=null;var t=this.categoryBalloon;t&&t.destroy();(t=this.vaBalloon)&&t.destroy();this.destroyValueBalloons();n.remove(this.set)},clear:function(){},destroyValueBalloons:function(){var t=this.valueBalloons,n;if(t)for(n=0;n<t.length;n++)t[n].balloon.hide()},zoom:function(t,i,r,u){var f=this.chart,e,o;this.destroyValueBalloons();this.zooming=!1;this.rotate?this.selectionPosY=e=f.mouseY:this.selectionPosX=e=f.mouseX;this.start=t;this.end=i;this.startTime=r;this.endTime=u;this.zoomed=!0;u=f.categoryAxis;e=this.rotate;i=this.width;r=this.height;t=u.stepWidth;this.fullWidth&&(o=1,u.parseDates&&!u.equalSpacing&&(o=u.minDuration()),e?this.extraWidth=r=t*o:(this.extraWidth=i=t*o,this.categoryBalloon.minWidth=i),this.line&&this.line.remove(),this.line=n.rect(this.container,i,r,this.cursorColor,this.cursorAlpha,0),this.line.node.style.pointerEvents="none",n.setCN(f,this.line,"cursor-fill"),this.fullRectSet&&this.fullRectSet.push(this.line));this.stepWidth=t;this.tempVal=this.valueBalloonsEnabled;this.valueBalloonsEnabled=!1;this.setPosition();this.valueBalloonsEnabled=this.tempVal;this.hideCursor();this.hideReal()},hideObj:function(n){n&&n.hide()},hideCursor:function(n){void 0===n&&(n=!0);this.leaveCursor?this.hideValueBalloon():(this.hideReal(),n&&this.fire("onHideCursor",{type:"onHideCursor",chart:this.chart,target:this}),this.drawing||this.chart.setMouseCursor("auto"),this.normalizeBulletSize())},hideValueBalloon:function(){this.hideObj(this.vaBalloon);this.hideObj(this.vLine);this.hideObj(this.hLine)},hideReal:function(){this.hideObj(this.set);this.hideObj(this.categoryBalloon);this.hideObj(this.line);this.hideObj(this.vLine);this.hideObj(this.hLine);this.hideValueBalloon();this.hideObj(this.allBullets);this.destroyValueBalloons();this.selectWithoutZooming||n.remove(this.selection);this.previousIndex=NaN},setPosition:function(t,i,r,u){void 0===i&&(i=!0);"cursor"==this.type?(this.tempPosition=NaN,n.ifArray(this.data))&&(isNaN(t)&&(t=this.getMousePosition()),(t!=this.previousMousePosition||!0===this.zoomed||this.oneBalloonOnly)&&!isNaN(t)&&("mouse"==this.cursorPosition&&(this.tempPosition=t),isNaN(r)&&(r=this.chart.categoryAxis.xToIndex(t)),r!=this.previousIndex||this.zoomed||"mouse"==this.cursorPosition||this.oneBalloonOnly)&&(this.updateCursor(r,i,u),this.zoomed=!1),this.previousMousePosition=t):this.updateCrosshair()},normalizeBulletSize:function(){var r=this.resizedBullets,i,n,t;if(r)for(i=0;i<r.length;i++)n=r[i],t=n.bulletGraphics,t&&(t.translate(n.bx,n.by,1),n=n.graph,isNaN(this.graphBulletAlpha)||(t.setAttr("fill-opacity",n.bulletAlpha),t.setAttr("stroke-opacity",n.bulletBorderAlpha)))},updateCursor:function(t,i,r){var c=this.chart,p=this.fullWidth,l=c.mouseX-this.x,d=c.mouseY-this.y;if(this.drawingNow&&(n.remove(this.drawingLine),this.drawingLine=n.line(this.container,[this.x+this.drawStartX,this.x+l],[this.y+this.drawStartY,this.y+d],this.cursorColor,1,1)),this.enabled){void 0===i&&(i=!0);this.index=t+=this.adjustment;var h=c.categoryAxis,et=c.dx,b=c.dy,rt=this.x+1,ut=this.y+1,it=this.width,nt=this.height,y=this.data[t],a;if(this.data[t+1]&&(a=this.data[t+1]),this.fireMoved(),y){var u=y.x[h.id],v=c.rotate,o=this.stepWidth,e=this.categoryBalloon,f=this.firstTime,s=this.lastTime,tt=this.cursorPosition,w=this.zooming,ft=this.panning,g=c.graphs;if(c.mouseIsOver||w||ft||this.forceShow)if(this.forceShow=!1,ft){i=this.panClickPos;t=this.panClickEndTime;var c=this.panClickStartTime,w=this.panClickEnd,k=this.panClickStart,l=(v?i-d:i-l)/o;(!h.parseDates||h.equalSpacing)&&(l=Math.round(l));0!==l&&(i={type:"zoomed",target:this},i.chart=this.chart,h.parseDates&&!h.equalSpacing?(t+l>s&&(l=s-t),c+l<f&&(l=f-c),i.start=Math.round(c+l),i.end=Math.round(t+l),this.fire(i.type,i)):w+l>=this.data.length||0>k+l||(i.start=k+l,i.end=w+l,this.fire(i.type,i)))}else{if("start"==tt?u-=h.cellWidth/2:"mouse"==tt&&(c.mouseIsOver?u=v?d-2:l-2:isNaN(this.tempPosition)||(u=this.tempPosition-2)),v){if(0>u)if(w)u=0;else{this.hideCursor();return}if(u>nt+1)if(w)u=nt+1;else{this.hideCursor();return}}else{if(0>u)if(w)u=0;else{this.hideCursor();return}if(u>it)if(w)u=it;else{this.hideCursor();return}}if(f=this.line,0<this.cursorAlpha&&(v?(s=0,o=u+b,p&&(o-=h.cellWidth/2)):(s=u,o=0,p&&(s-=h.cellWidth/2)),tt=this.animationDuration,0<tt&&!this.zooming?isNaN(this.previousX)?f.translate(s,o):(f.translate(this.previousX,this.previousY),f.animate({translate:s+","+o},tt,"easeOutSine")):f.translate(s,o),this.previousX=s,this.previousY=o,f.show()),this.linePos=v?u+b:u,w&&(p&&f.hide(),v?this.updateSelectionSize(NaN,u):this.updateSelectionSize(u,NaN)),s=!0,w&&(s=!1),this.categoryBalloonEnabled&&s&&(this.setBalloonPosition(e,h,u,v),(f=this.categoryBalloonFunction)?e.showBalloon(f(y.category)):(f=u="",h.parseDates?(u=n.formatDate(y.category,this.categoryBalloonDateFormat,c),h=n.changeDate(new Date(y.category),c.categoryAxis.minPeriod,1),f=n.formatDate(h,this.categoryBalloonDateFormat,c),-1!=u.indexOf("fff")&&(u=n.formatMilliseconds(u,y.category),f=n.formatMilliseconds(f,h))):(u=n.fixNewLines(y.category),a&&(f=n.fixNewLines(a.category))),h=this.categoryBalloonText.replace(/\[\[category\]\]/g,String(u)),h=h.replace(/\[\[toCategory\]\]/g,String(f)),e.showBalloon(h))),g&&this.bulletsEnabled&&this.showBullets(),this.oneBalloonOnly){for(u=Infinity,h=0;h<g.length;h++)e=g[h],e.showBalloon&&!e.hidden&&e.balloonText&&(a=y.axes[e.valueAxis.id].graphs[e.id],f=a.y,"top"==e.showBalloonAt&&(f=0),"bottom"==e.showBalloonAt&&(f=this.height),isNaN(f)||(v?Math.abs(l-f)<u&&(u=Math.abs(l-f),k=e):Math.abs(d-f)<u&&(u=Math.abs(d-f),k=e)));this.mostCloseGraph&&(k=this.mostCloseGraph)}if(!r&&(t!=this.previousIndex||k!=this.previousMostCloseGraph)&&(this.normalizeBulletSize(),this.destroyValueBalloons(),this.resizedBullets=[],g&&this.valueBalloonsEnabled&&s&&c.balloon.enabled)){for(this.valueBalloons=r=[],h=0;h<g.length;h++)if(e=g[h],f=NaN,(!this.oneBalloonOnly||e==k)&&e.showBalloon&&!e.hidden&&e.balloonText&&("step"==e.type&&"left"==e.stepDirection&&(y=this.data[t+1]),y)){if((a=y.axes[e.valueAxis.id].graphs[e.id])&&(f=a.y),"top"==e.showBalloonAt&&(f=0),"bottom"==e.showBalloonAt&&(f=this.height),this.showNextAvailable&&isNaN(f)&&t+1<this.data.length)for(s=t+1;s<this.data.length;s++)if((u=this.data[s])&&(a=u.axes[e.valueAxis.id].graphs[e.id],f=a.y,!isNaN(f)))break;isNaN(f)||(u=a.x,o=!0,v?(s=f,0>u||u>nt)&&(o=!1):(s=u,u=f,(0>s||s>it+et+1)&&(o=!1),(-2>f||f>nt)&&(o=!1)),o&&(o=this.graphBulletSize,p=this.graphBulletAlpha,1==o&&isNaN(p)||!n.isModern||!(b=a.bulletGraphics)||(b.translate(a.bx,a.by,o),this.resizedBullets.push(a),isNaN(p)||(b.setAttr("fill-opacity",p),b.setAttr("stroke-opacity",p))),o=e.valueBalloon,p=c.getBalloonColor(e,a),o.setBounds(rt,ut,rt+it,ut+nt),o.pointerOrientation="H",b=this.balloonPointerOrientation,"vertical"==b&&(o.pointerOrientation="V"),"horizontal"==b&&(o.pointerOrientation="H"),o.changeColor(p),void 0!==e.balloonAlpha&&(o.fillAlpha=e.balloonAlpha),void 0!==e.balloonTextColor&&(o.color=e.balloonTextColor),o.setPosition(s+rt,u+ut),s=c.formatString(e.balloonText,a,!0),(u=e.balloonFunction)&&(s=u(a,e).toString()),""!==s&&(v?o.showBalloon(s):(o.text=s,o.show=!0),r.push({yy:f,balloon:o})),!v&&o.set&&(o.set.hide(),e=o.textDiv)&&(e.style.visibility="hidden")))}this.avoidBalloonOverlapping&&this.arrangeBalloons()}i?(i={type:"changed"},i.index=t,i.chart=this.chart,i.zooming=w,i.mostCloseGraph=k,i.position=v?d:l,i.target=this,c.fire("changed",i),this.fire("changed",i),this.skipZoomDispatch=!1):(this.skipZoomDispatch=!0,c.updateLegendValues(t));this.previousIndex=t;this.previousMostCloseGraph=k}}}else this.hideCursor()},setBalloonPosition:function(n,t,i,r){var c=t.position,s=t.inside;t=t.axisThickness;var e=this.chart,o=e.dx,e=e.dy,u=this.x,f=this.y,h=this.width,l=this.height;r?(s&&("right"==c?n.setBounds(u,f+e,u+h+o,f+i+e):n.setBounds(u,f+e,u+h+o,f+i)),"right"==c?s?n.setPosition(u+h+o,f+i+e):n.setPosition(u+h+o+t,f+i+e):s?n.setPosition(u,f+i):n.setPosition(u-t,f+i)):"top"==c?s?n.setPosition(u+i+o,f+e):n.setPosition(u+i+o,f+e-t+1):s?n.setPosition(u+i,f+l):n.setPosition(u+i,f+l+t-1)},setBalloonBounds:function(n,t,i){var a=t.position,c=t.inside,l=t.axisThickness,s=t.tickLength,e=this.chart,h=e.dx,e=e.dy,r=this.x,u=this.y,f=this.width,o=this.height;i?(c&&(n.pointerWidth=0),"right"==a?c?n.setBounds(r,u+e,r+f+h,u+o+e):n.setBounds(r+f+h+l,u+e,r+f+1e3,u+o+e):c?n.setBounds(r,u,f+r,o+u):n.setBounds(-1e3,-1e3,r-s-l,u+o+15)):(n.maxWidth=f,t.parseDates&&(s=0,n.pointerWidth=0),"top"==a?c?n.setBounds(r+h,u+e,f+h+r,o+u):n.setBounds(r+h,-1e3,f+h+r,u+e-s-l):c?n.setBounds(r,u,f+r,o+u-s):n.setBounds(r,u+o+s+l-1,r+f,u+o+s+l))},enableDrawing:function(n){this.enabled=!n;this.hideCursor();this.rolledOver=!1;this.drawing=n},isZooming:function(n){n&&n!=this.zooming&&this.handleMouseDown("fake");n||n==this.zooming||this.handleMouseUp()},handleMouseOut:function(){if(this.enabled)if(this.zooming)this.setPosition();else{this.index=void 0;var n={type:"changed",index:void 0,target:this};n.chart=this.chart;this.leaveCursor||this.fire("changed",n);this.chart.wasTouched&&this.leaveAfterTouch||this.hideCursor()}},handleReleaseOutside:function(){this.handleMouseUp()},handleMouseUp:function(){var u=this.chart,f=this.data,t,r,i,e,o,s;u&&(r=u.mouseX-this.x,i=u.mouseY-this.y,this.drawingNow&&(this.drawingNow=!1,n.remove(this.drawingLine),t=this.drawStartX,e=this.drawStartY,(2<Math.abs(t-r)||2<Math.abs(e-i))&&(t={type:"draw",target:this,chart:u,initialX:t,initialY:e,finalX:r,finalY:i},this.fire(t.type,t))),this.enabled&&0<f.length&&(this.pan?this.rolledOver=!1:this.zoomable&&this.zooming&&(t=this.selectWithoutZooming?{type:"selected"}:{type:"zoomed"},t.target=this,t.chart=u,"cursor"==this.type?(this.rotate?this.selectionPosY=i:this.selectionPosX=i=r,4>Math.abs(i-this.initialMouse)&&this.fromIndex==this.index||(this.index<this.fromIndex?(t.end=this.fromIndex,t.start=this.index):(t.end=this.index,t.start=this.fromIndex),i=u.categoryAxis,i.parseDates&&!i.equalSpacing&&(f[t.start]&&(t.start=f[t.start].time),f[t.end]&&(t.end=u.getEndTime(f[t.end].time))),this.skipZoomDispatch||this.fire(t.type,t))):(o=this.initialMouseX,s=this.initialMouseY,3>Math.abs(r-o)&&3>Math.abs(i-s)||(f=Math.min(o,r),e=Math.min(s,i),r=Math.abs(o-r),i=Math.abs(s-i),u.hideXScrollbar&&(f=0,r=this.width),u.hideYScrollbar&&(e=0,i=this.height),t.selectionHeight=i,t.selectionWidth=r,t.selectionY=e,t.selectionX=f,this.skipZoomDispatch||this.fire(t.type,t))),this.selectWithoutZooming||n.remove(this.selection)),this.skipZoomDispatch=!1));this.panning=this.zooming=!1},showCursorAt:function(n){var t=this.chart.categoryAxis;n=t.parseDates?t.dateToCoordinate(n):t.categoryToCoordinate(n);this.previousMousePosition=NaN;this.forceShow=!0;this.setPosition(n,!1)},clearSelection:function(){n.remove(this.selection)},handleMouseDown:function(t){if(this.zoomable||this.pan||this.drawing){var f=this.rotate,u=this.chart,i=u.mouseX-this.x,r=u.mouseY-this.y;(0<i&&i<this.width&&0<r&&r<this.height||"fake"==t)&&(this.setPosition(),this.selectWithoutZooming&&n.remove(this.selection),this.drawing?(this.drawStartY=r,this.drawStartX=i,this.drawingNow=!0):this.pan?(this.zoomable=!1,u.setMouseCursor("move"),this.panning=!0,this.panClickPos=f?r:i,this.panClickStart=this.start,this.panClickEnd=this.end,this.panClickStartTime=this.startTime,this.panClickEndTime=this.endTime):this.zoomable&&("cursor"==this.type?(this.fromIndex=this.index,f?(this.initialMouse=r,this.selectionPosY=this.linePos):(this.initialMouse=i,this.selectionPosX=this.linePos)):(this.initialMouseX=i,this.initialMouseY=r,this.selectionPosX=i,this.selectionPosY=r),this.zooming=!0))}}})}(),function(){var n=window.AmCharts;n.SimpleChartScrollbar=n.Class({construct:function(t){this.createEvents("zoomed");this.backgroundColor="#D4D4D4";this.backgroundAlpha=1;this.selectedBackgroundColor="#EFEFEF";this.scrollDuration=this.selectedBackgroundAlpha=1;this.resizeEnabled=!0;this.hideResizeGrips=!1;this.scrollbarHeight=20;this.updateOnReleaseOnly=!1;9>document.documentMode&&(this.updateOnReleaseOnly=!0);this.dragIconHeight=this.dragIconWidth=35;this.dragIcon="dragIconRoundBig";n.applyTheme(this,t,"SimpleChartScrollbar")},draw:function(){var t=this,e,i,o,r,h,c,l,a;if(t.destroy(),t.enabled){var u=t.chart.container,s=t.rotate,f=t.chart;f.panRequired=!0;e=u.set();t.set=e;f.scrollbarsSet.push(e);s?(i=t.scrollbarHeight,o=f.plotAreaHeight):(o=t.scrollbarHeight,i=f.plotAreaWidth);t.width=i;(t.height=o)&&i&&(r=n.rect(u,i,o,t.backgroundColor,t.backgroundAlpha,1,t.backgroundColor,t.backgroundAlpha),n.setCN(f,r,"scrollbar-bg"),t.bg=r,e.push(r),r=n.rect(u,i,o,"#000",.005),e.push(r),t.invisibleBg=r,r.click(function(){t.handleBgClick()}).mouseover(function(){t.handleMouseOver()}).mouseout(function(){t.handleMouseOut()}).touchend(function(){t.handleBgClick()}),r=n.rect(u,i,o,t.selectedBackgroundColor,t.selectedBackgroundAlpha),n.setCN(f,r,"scrollbar-bg-selected"),t.selectedBG=r,e.push(r),i=n.rect(u,i,o,"#000",.005),t.dragger=i,e.push(i),i.mousedown(function(n){t.handleDragStart(n)}).mouseup(function(){t.handleDragStop()}).mouseover(function(){t.handleDraggerOver()}).mouseout(function(){t.handleMouseOut()}).touchstart(function(n){t.handleDragStart(n)}).touchend(function(){t.handleDragStop()}),i=f.pathToImages,o=t.dragIcon.replace(/\.[a-z]*$/i,""),s?(r=i+o+"H"+f.extension,i=t.dragIconWidth,s=t.dragIconHeight):(r=i+o+f.extension,s=t.dragIconWidth,i=t.dragIconHeight),o=u.image(r,0,0,s,i),n.setCN(f,o,"scrollbar-grip-left"),r=u.image(r,0,0,s,i),n.setCN(f,r,"scrollbar-grip-right"),h=10,c=20,f.panEventsEnabled&&(h=25,c=t.scrollbarHeight),l=n.rect(u,h,c,"#000",.005),a=n.rect(u,h,c,"#000",.005),a.translate(-(h-s)/2,-(c-i)/2),l.translate(-(h-s)/2,-(c-i)/2),s=u.set([o,a]),u=u.set([r,l]),t.iconLeft=s,e.push(t.iconLeft),t.iconRight=u,e.push(u),s.mousedown(function(){t.leftDragStart()}).mouseup(function(){t.leftDragStop()}).mouseover(function(){t.iconRollOver()}).mouseout(function(){t.iconRollOut()}).touchstart(function(){t.leftDragStart()}).touchend(function(){t.leftDragStop()}),u.mousedown(function(){t.rightDragStart()}).mouseup(function(){t.rightDragStop()}).mouseover(function(){t.iconRollOver()}).mouseout(function(){t.iconRollOut()}).touchstart(function(){t.rightDragStart()}).touchend(function(){t.rightDragStop()}),n.ifArray(f.chartData)?e.show():e.hide(),t.hideDragIcons(),t.clipDragger(!1));e.translate(t.x,t.y);e.node.style.msTouchAction="none"}},updateScrollbarSize:function(n,t){n=Math.round(n);t=Math.round(t);var i=this.dragger,r,u,f,e;this.rotate?(r=0,u=n,f=this.width+1,e=t-n,i.setAttr("height",t-n),i.setAttr("y",u)):(r=n,u=0,f=t-n,e=this.height+1,i.setAttr("width",t-n),i.setAttr("x",r));this.clipAndUpdate(r,u,f,e)},update:function(){var n,c=!1,r,t,f=this.x,e=this.y,u=this.dragger,o=this.getDBox();if(o){r=o.x+f;t=o.y+e;var l=o.width,o=o.height,a=this.rotate,i=this.chart,s=this.width,h=this.height,v=i.mouseX,y=i.mouseY;n=this.initialMouse;this.forceClip&&this.clipDragger(!0);i.mouseIsOver&&(this.dragging&&(i=this.initialCoord,a?(n=i+(y-n),0>n&&(n=0),i=h-o,n>i&&(n=i),u.setAttr("y",n)):(n=i+(v-n),0>n&&(n=0),i=s-l,n>i&&(n=i),u.setAttr("x",n)),this.clipDragger(!0)),this.resizingRight&&(a?(n=y-t,n+t>h+e&&(n=h-t+e),0>n?(this.resizingRight=!1,c=this.resizingLeft=!0):(0===n&&(n=.1),u.setAttr("height",n))):(n=v-r,n+r>s+f&&(n=s-r+f),0>n?(this.resizingRight=!1,c=this.resizingLeft=!0):(0===n&&(n=.1),u.setAttr("width",n))),this.clipDragger(!0)),this.resizingLeft&&(a?(r=t,t=y,t<e&&(t=e),t>h+e&&(t=h+e),n=!0===c?r-t:o+r-t,0>n?(this.resizingRight=!0,this.resizingLeft=!1,u.setAttr("y",r+o-e)):(0===n&&(n=.1),u.setAttr("y",t-e),u.setAttr("height",n))):(t=v,t<f&&(t=f),t>s+f&&(t=s+f),n=!0===c?r-t:l+r-t,0>n?(this.resizingRight=!0,this.resizingLeft=!1,u.setAttr("x",r+l-f)):(0===n&&(n=.1),u.setAttr("x",t-f),u.setAttr("width",n))),this.clipDragger(!0)))}},stopForceClip:function(){this.forceClip=!1},clipDragger:function(n){var t=this.getDBox();if(t){var i=t.x,r=t.y,u=t.width,t=t.height,f=!1;this.rotate?(i=0,u=this.width+1,this.clipY!=r||this.clipH!=t)&&(f=!0):(r=0,t=this.height+1,this.clipX!=i||this.clipW!=u)&&(f=!0);f&&(this.clipAndUpdate(i,r,u,t),n&&(this.updateOnReleaseOnly||this.dispatchScrollbarEvent()))}},maskGraphs:function(){},clipAndUpdate:function(n,t,i,r){this.clipX=n;this.clipY=t;this.clipW=i;this.clipH=r;this.selectedBG.clipRect(n,t,i,r);this.updateDragIconPositions();this.maskGraphs(n,t,i,r)},dispatchScrollbarEvent:function(){var n;if(this.skipEvent)this.skipEvent=!1;else{n=this.chart;n.hideBalloon();var t=this.getDBox(),r=t.x,u=t.y,i=t.width,t=t.height;this.rotate?(r=u,i=this.height/t):i=this.width/i;n={type:"zoomed",position:r,chart:n,target:this,multiplier:i};this.fire(n.type,n)}},updateDragIconPositions:function(){var i=this.getDBox(),u=i.x,f=i.y,e=this.iconLeft,o=this.iconRight,n,t,r=this.scrollbarHeight;this.rotate?(n=this.dragIconWidth,t=this.dragIconHeight,e.translate((r-t)/2,f-n/2),o.translate((r-t)/2,f+i.height-n/2)):(n=this.dragIconHeight,t=this.dragIconWidth,e.translate(u-t/2,(r-n)/2),o.translate(u-t/2+i.width,(r-n)/2))},showDragIcons:function(){this.resizeEnabled&&(this.iconLeft.show(),this.iconRight.show())},hideDragIcons:function(){this.resizingLeft||this.resizingRight||this.dragging||((this.hideResizeGrips||!this.resizeEnabled)&&(this.iconLeft.hide(),this.iconRight.hide()),this.removeCursors())},removeCursors:function(){this.chart.setMouseCursor("auto")},relativeZoom:function(n,t){this.enabled&&(this.dragger.stop(),this.multiplier=n,this.position=t,this.updateScrollbarSize(t,this.rotate?t+this.height/n:t+this.width/n),this.clipDragger())},destroy:function(){this.clear();n.remove(this.set);n.remove(this.iconRight);n.remove(this.iconLeft)},clear:function(){},handleDragStart:function(){var n,t;this.enabled&&(n=this.chart,this.dragger.stop(),this.removeCursors(),this.dragging=!0,t=this.getDBox(),this.rotate?(this.initialCoord=t.y,this.initialMouse=n.mouseY):(this.initialCoord=t.x,this.initialMouse=n.mouseX))},handleDragStop:function(){this.updateOnReleaseOnly&&(this.update(),this.skipEvent=!1,this.dispatchScrollbarEvent());this.dragging=!1;this.mouseIsOver&&this.removeCursors();this.update()},handleDraggerOver:function(){this.handleMouseOver()},leftDragStart:function(){this.dragger.stop();this.resizingLeft=!0},leftDragStop:function(){this.resizingLeft=!1;this.mouseIsOver||this.removeCursors();this.updateOnRelease()},rightDragStart:function(){this.dragger.stop();this.resizingRight=!0},rightDragStop:function(){this.resizingRight=!1;this.mouseIsOver||this.removeCursors();this.updateOnRelease()},iconRollOut:function(){this.removeCursors()},iconRollOver:function(){this.rotate?this.chart.setMouseCursor("ns-resize"):this.chart.setMouseCursor("ew-resize");this.handleMouseOver()},getDBox:function(){if(this.dragger)return this.dragger.getBBox()},handleBgClick:function(){var t=this,r,i,u,f,e,o;if(!t.resizingRight&&!t.resizingLeft){t.zooming=!0;u=t.scrollDuration;f=t.dragger;r=t.getDBox();e=r.height;o=r.width;i=t.chart;var h=t.y,c=t.x,s=t.rotate;s?(r="y",i=i.mouseY-e/2-h,i=n.fitToBounds(i,0,t.height-e)):(r="x",i=i.mouseX-o/2-c,i=n.fitToBounds(i,0,t.width-o));t.updateOnReleaseOnly?(t.skipEvent=!1,f.setAttr(r,i),t.dispatchScrollbarEvent(),t.clipDragger()):(i=Math.round(i),s?f.animate({y:i},u,">"):f.animate({x:i},u,">"),t.forceClip=!0,clearTimeout(t.forceTO),t.forceTO=setTimeout(function(){t.stopForceClip.call(t)},5e3*u))}},updateOnRelease:function(){this.updateOnReleaseOnly&&(this.update(),this.skipEvent=!1,this.dispatchScrollbarEvent())},handleReleaseOutside:function(){this.set&&((this.resizingLeft||this.resizingRight||this.dragging)&&(this.updateOnRelease(),this.removeCursors()),this.mouseIsOver=this.dragging=this.resizingRight=this.resizingLeft=!1,this.hideDragIcons(),this.update())},handleMouseOver:function(){this.mouseIsOver=!0;this.showDragIcons()},handleMouseOut:function(){this.mouseIsOver=!1;this.hideDragIcons()}})}(),function(){var n=window.AmCharts;n.ChartScrollbar=n.Class({inherits:n.SimpleChartScrollbar,construct:function(t){this.cname="ChartScrollbar";n.ChartScrollbar.base.construct.call(this,t);this.enabled=!0;this.graphLineColor="#BBBBBB";this.graphLineAlpha=0;this.graphFillColor="#BBBBBB";this.graphFillAlpha=1;this.selectedGraphLineColor="#888888";this.selectedGraphLineAlpha=0;this.selectedGraphFillColor="#888888";this.selectedGraphFillAlpha=1;this.gridCount=0;this.gridColor="#FFFFFF";this.gridAlpha=.7;this.skipEvent=this.autoGridCount=!1;this.color="#FFFFFF";this.scrollbarCreated=!1;this.offset=0;this.oppositeAxis=!0;n.applyTheme(this,t,this.cname)},init:function(){var i=this.categoryAxis,t=this.chart,r;i||(this.categoryAxis=i=new n.CategoryAxis);i.chart=t;i.id="scrollbar";i.dateFormats=t.categoryAxis.dateFormats;i.markPeriodChange=t.categoryAxis.markPeriodChange;i.boldPeriodBeginning=t.categoryAxis.boldPeriodBeginning;i.labelFunction=t.categoryAxis.labelFunction;i.axisItemRenderer=n.RecItem;i.axisRenderer=n.RecAxis;i.guideFillRenderer=n.RecFill;i.inside=!0;i.fontSize=this.fontSize;i.tickLength=0;i.axisAlpha=0;n.isString(this.graph)&&(this.graph=n.getObjById(t.graphs,this.graph));(i=this.graph)&&(r=this.valueAxis,r||(this.valueAxis=r=new n.ValueAxis,r.visible=!1,r.scrollbar=!0,r.axisItemRenderer=n.RecItem,r.axisRenderer=n.RecAxis,r.guideFillRenderer=n.RecFill,r.labelsEnabled=!1,r.chart=t),t=this.unselectedGraph,t||(t=new n.AmGraph,t.scrollbar=!0,this.unselectedGraph=t,t.negativeBase=i.negativeBase,t.noStepRisers=i.noStepRisers),t=this.selectedGraph,t||(t=new n.AmGraph,t.scrollbar=!0,this.selectedGraph=t,t.negativeBase=i.negativeBase,t.noStepRisers=i.noStepRisers));this.scrollbarCreated=!0},draw:function(){var t=this,f,r,h,c,w,b,i,p;if(n.ChartScrollbar.base.draw.call(t),t.enabled){t.scrollbarCreated||t.init();var o=t.chart,s=o.chartData,e=t.categoryAxis,l=t.rotate,h=t.x,c=t.y,a=t.width,v=t.height,u=o.categoryAxis,y=t.set;if(e.setOrientation(!l),e.parseDates=u.parseDates,e.rotate=l,e.equalSpacing=u.equalSpacing,e.minPeriod=u.minPeriod,e.startOnAxis=u.startOnAxis,e.viW=a,e.viH=v,e.width=a,e.height=v,e.gridCount=t.gridCount,e.gridColor=t.gridColor,e.gridAlpha=t.gridAlpha,e.color=t.color,e.tickLength=0,e.axisAlpha=0,e.autoGridCount=t.autoGridCount,e.parseDates&&!e.equalSpacing&&e.timeZoom(o.firstTime,o.lastTime),e.zoom(0,s.length-1),u=t.graph){for(f=t.valueAxis,r=u.valueAxis,f.id=r.id,f.rotate=l,f.setOrientation(l),f.width=a,f.height=v,f.viW=a,f.viH=v,f.dataProvider=s,f.reversed=r.reversed,f.logarithmic=r.logarithmic,f.gridAlpha=0,f.axisAlpha=0,y.push(f.set),l?(f.y=c,f.x=0):(f.x=h,f.y=0),h=Infinity,c=-Infinity,w=0;w<s.length;w++){b=s[w].axes[r.id].graphs[u.id].values;for(i in b)b.hasOwnProperty(i)&&"percents"!=i&&"total"!=i&&(p=b[i],p<h&&(h=p),p>c&&(c=p))}Infinity!=h&&(f.minimum=h);-Infinity!=c&&(f.maximum=c+.1*(c-h));h==c&&(--f.minimum,f.maximum+=1);void 0!==t.minimum&&(f.minimum=t.minimum);void 0!==t.maximum&&(f.maximum=t.maximum);f.zoom(0,s.length-1);i=t.unselectedGraph;i.id=u.id;i.bcn="scrollbar-graph-";i.rotate=l;i.chart=o;i.data=s;i.valueAxis=f;i.chart=u.chart;i.categoryAxis=t.categoryAxis;i.periodSpan=u.periodSpan;i.valueField=u.valueField;i.openField=u.openField;i.closeField=u.closeField;i.highField=u.highField;i.lowField=u.lowField;i.lineAlpha=t.graphLineAlpha;i.lineColorR=t.graphLineColor;i.fillAlphas=t.graphFillAlpha;i.fillColorsR=t.graphFillColor;i.connect=u.connect;i.hidden=u.hidden;i.width=a;i.height=v;i.pointPosition=u.pointPosition;i.stepDirection=u.stepDirection;i.periodSpan=u.periodSpan;r=t.selectedGraph;r.id=u.id;r.bcn=i.bcn+"selected-";r.rotate=l;r.chart=o;r.data=s;r.valueAxis=f;r.chart=u.chart;r.categoryAxis=e;r.periodSpan=u.periodSpan;r.valueField=u.valueField;r.openField=u.openField;r.closeField=u.closeField;r.highField=u.highField;r.lowField=u.lowField;r.lineAlpha=t.selectedGraphLineAlpha;r.lineColorR=t.selectedGraphLineColor;r.fillAlphas=t.selectedGraphFillAlpha;r.fillColorsR=t.selectedGraphFillColor;r.connect=u.connect;r.hidden=u.hidden;r.width=a;r.height=v;r.pointPosition=u.pointPosition;r.stepDirection=u.stepDirection;r.periodSpan=u.periodSpan;o=t.graphType;o||(o=u.type);i.type=o;r.type=o;s=s.length-1;i.zoom(0,s);r.zoom(0,s);r.set.click(function(){t.handleBackgroundClick()}).mouseover(function(){t.handleMouseOver()}).mouseout(function(){t.handleMouseOut()});i.set.click(function(){t.handleBackgroundClick()}).mouseover(function(){t.handleMouseOver()}).mouseout(function(){t.handleMouseOut()});y.push(i.set);y.push(r.set)}y.push(e.set);y.push(e.labelsSet);t.bg.toBack();t.invisibleBg.toFront();t.dragger.toFront();t.iconLeft.toFront();t.iconRight.toFront()}},timeZoom:function(t,i,r){this.startTime=t;this.endTime=i;this.timeDifference=i-t;this.skipEvent=!n.toBoolean(r);this.zoomScrollbar();this.skipEvent||this.dispatchScrollbarEvent()},zoom:function(n,t){this.start=n;this.end=t;this.skipEvent=!0;this.zoomScrollbar()},dispatchScrollbarEvent:function(){var e,n,o,u;if(this.skipEvent)this.skipEvent=!1;else{e=this.chart.chartData;u=this.dragger.getBBox();n=u.x;var i=u.y,r=u.width,u=u.height,f=this.chart;this.rotate?(n=i,o=u):o=r;r={type:"zoomed",target:this};r.chart=f;var t=this.categoryAxis,s=this.stepWidth,i=f.minSelectedTime,u=!1;t.parseDates&&!t.equalSpacing?(e=f.lastTime,f=f.firstTime,t=Math.round(n/s)+f,n=this.dragging?t+this.timeDifference:Math.round((n+o)/s)+f,t>n&&(t=n),0<i&&n-t<i&&(n=Math.round(t+(n-t)/2),u=Math.round(i/2),t=n-u,n+=u,u=!0),n>e&&(n=e),n-i<t&&(t=n-i),t<f&&(t=f),t+i>n&&(n=t+i),t!=this.startTime||n!=this.endTime)&&(this.startTime=t,this.endTime=n,r.start=t,r.end=n,r.startDate=new Date(t),r.endDate=new Date(n),this.fire(r.type,r)):(t.startOnAxis||(n+=s/2),o-=this.stepWidth/2,i=t.xToIndex(n),n=t.xToIndex(n+o),i!=this.start||this.end!=n)&&(t.startOnAxis&&(this.resizingRight&&i==n&&n++,this.resizingLeft&&i==n&&(0<i?i--:n=1)),this.start=i,this.end=this.dragging?this.start+this.difference:n,r.start=this.start,r.end=this.end,t.parseDates&&(e[this.start]&&(r.startDate=new Date(e[this.start].time)),e[this.end]&&(r.endDate=new Date(e[this.end].time))),this.fire(r.type,r));u&&this.zoomScrollbar()}},zoomScrollbar:function(){var i,r,t,n;i=this.chart;t=i.chartData;n=this.categoryAxis;n.parseDates&&!n.equalSpacing?(t=n.stepWidth,n=i.firstTime,i=t*(this.startTime-n),r=t*(this.endTime-n)):(i=t[this.start].x[n.id],r=t[this.end].x[n.id],t=n.stepWidth,n.startOnAxis||(n=t/2,i-=n,r+=n));this.stepWidth=t;this.updateScrollbarSize(i,r)},maskGraphs:function(n,t,i,r){var u=this.selectedGraph;u&&u.set.clipRect(n,t,i,r)},handleDragStart:function(){n.ChartScrollbar.base.handleDragStart.call(this);this.difference=this.end-this.start;this.timeDifference=this.endTime-this.startTime;0>this.timeDifference&&(this.timeDifference=0)},handleBackgroundClick:function(){n.ChartScrollbar.base.handleBackgroundClick.call(this);this.dragging||(this.difference=this.end-this.start,this.timeDifference=this.endTime-this.startTime,0>this.timeDifference&&(this.timeDifference=0))}})}(),function(){var n=window.AmCharts;n.AmBalloon=n.Class({construct:function(t){this.cname="AmBalloon";this.enabled=!0;this.fillColor="#FFFFFF";this.fillAlpha=.8;this.borderThickness=2;this.borderColor="#FFFFFF";this.borderAlpha=1;this.cornerRadius=0;this.maxWidth=220;this.horizontalPadding=8;this.verticalPadding=4;this.pointerWidth=6;this.pointerOrientation="V";this.color="#000000";this.adjustBorderColor=!0;this.show=this.follow=this.showBullet=!1;this.bulletSize=3;this.shadowAlpha=.4;this.shadowColor="#000000";this.fadeOutDuration=this.animationDuration=.3;this.fixedPosition=!0;this.offsetY=6;this.offsetX=1;this.textAlign="center";this.disableMouseEvents=!0;this.deltaSignX=this.deltaSignY=1;n.isModern||(this.offsetY*=1.5);n.applyTheme(this,t,this.cname)},draw:function(){var f=this.pointToX,h=this.pointToY,c=this.chart,e,p,u,r,ft,t;if(n.VML&&(this.fadeOutDuration=0),this.xAnim&&c.stopAnim(this.xAnim),this.yAnim&&c.stopAnim(this.yAnim),!isNaN(f)){var it=this.follow,y=c.container,v=this.set;if(n.remove(v),this.removeDiv(),v=y.set(),v.node.style.pointerEvents="none",this.set=v,c.balloonsSet.push(v),this.show){var a=this.l,b=this.t,nt=this.r,g=this.b,e=this.balloonColor,s=this.fillColor,rt=this.borderColor,l=s;void 0!=e&&(this.adjustBorderColor?l=rt=e:s=e);var w=this.horizontalPadding,k=this.verticalPadding,o=this.pointerWidth,ut=this.pointerOrientation,d=this.cornerRadius,i=c.fontFamily,t=this.fontSize;void 0==t&&(t=c.fontSize);e=document.createElement("div");p=c.classNamePrefix;e.className=p+"-balloon-div";this.className&&(e.className=e.className+" "+p+"-balloon-div-"+this.className);p=e.style;this.disableMouseEvents&&(p.pointerEvents="none");p.position="absolute";u=this.minWidth;r="";isNaN(u)||(r="min-width:"+(u-2*w)+"px; ");e.innerHTML='<div style="text-align:'+this.textAlign+"; "+r+"max-width:"+this.maxWidth+"px; font-size:"+t+"px; color:"+this.color+"; font-family:"+i+'">'+this.text+"<\/div>";c.chartDiv.appendChild(e);this.textDiv=e;t=e.offsetWidth;i=e.offsetHeight;e.clientHeight&&(t=e.clientWidth,i=e.clientHeight);i+=2*k;r=t+2*w;!isNaN(u)&&r<u&&(r=u);window.opera&&(i+=2);ft=!1;t=this.offsetY;c.handDrawn&&(t+=c.handDrawScatter+2);"H"!=ut?(u=f-r/2,h<b+i+10&&"down"!=ut?(ft=!0,it&&(h+=t),t=h+o,this.deltaSignY=-1):(it&&(h-=t),t=h-i-o,this.deltaSignY=1)):(2*o>i&&(o=i/2),t=h-i/2,f<a+(nt-a)/2?(u=f+o,this.deltaSignX=-1):(u=f-r-o,this.deltaSignX=1));t+i>=g&&(t=g-i);t<b&&(t=b);u<a&&(u=a);u+r>nt&&(u=nt-r);var b=t+k,g=u+w,k=this.shadowAlpha,et=this.shadowColor,w=this.borderThickness,ot=this.bulletSize,tt;0<d||0===o?(0<k&&(f=n.rect(y,r,i,s,0,w+1,et,k,this.cornerRadius),n.isModern?f.translate(1,1):f.translate(4,4),v.push(f)),s=n.rect(y,r,i,s,this.fillAlpha,w,rt,this.borderAlpha,this.cornerRadius),this.showBullet&&(tt=n.circle(y,ot,l,this.fillAlpha),v.push(tt))):(l=[],d=[],"H"!=ut?(a=f-u,a>r-o&&(a=r-o),a<o&&(a=o),l=[0,a-o,f-u,a+o,r,r,0,0],d=ft?[0,0,h-t,0,0,i,i,0]:[i,i,h-t,i,i,0,0,i]):(l=h-t,l>i-o&&(l=i-o),l<o&&(l=o),d=[0,l-o,h-t,l+o,i,i,0,0],l=f<a+(nt-a)/2?[0,0,u<f?0:f-u,0,0,r,r,0]:[r,r,u+r>f?r:f-u,r,r,0,0,r]),0<k&&(f=n.polygon(y,l,d,s,0,w,et,k),f.translate(1,1),v.push(f)),s=n.polygon(y,l,d,s,this.fillAlpha,w,rt,this.borderAlpha));this.bg=s;v.push(s);s.toFront();n.setCN(c,s,"balloon-bg");this.className&&n.setCN(c,s,"balloon-bg-"+this.className);y=1*this.deltaSignX;p.left=g+"px";p.top=b+"px";v.translate(u-y,t);s=s.getBBox();this.bottom=t+i+1;this.yPos=s.y+t;tt&&tt.translate(this.pointToX-u+y,h-t);h=this.animationDuration;0<this.animationDuration&&!it&&!isNaN(this.prevX)&&(v.translate(this.prevX,this.prevY),v.animate({translate:u-y+","+t},h,"easeOutSine"),e&&(p.left=this.prevTX+"px",p.top=this.prevTY+"px",this.xAnim=c.animate({node:e},"left",this.prevTX,g,h,"easeOutSine","px"),this.yAnim=c.animate({node:e},"top",this.prevTY,b,h,"easeOutSine","px")));this.prevX=u-y;this.prevY=t;this.prevTX=g;this.prevTY=b}}},followMouse:function(){var n,t,i;if(this.follow&&this.show&&(n=this.chart.mouseX-this.offsetX*this.deltaSignX,t=this.chart.mouseY,this.pointToX=n,this.pointToY=t,n!=this.previousX||t!=this.previousY))if(this.previousX=n,this.previousY=t,0===this.cornerRadius)this.draw();else if(i=this.set,i){var r=i.getBBox(),n=n-r.width/2,u=t-r.height-10;n<this.l&&(n=this.l);n>this.r-r.width&&(n=this.r-r.width);u<this.t&&(u=t+10);i.translate(n,u);t=this.textDiv.style;t.left=n+this.horizontalPadding+"px";t.top=u+this.verticalPadding+"px"}},changeColor:function(n){this.balloonColor=n},setBounds:function(n,t,i,r){this.l=n;this.t=t;this.r=i;this.b=r;this.destroyTO&&clearTimeout(this.destroyTO)},showBalloon:function(n){this.text=n;this.show=!0;this.destroyTO&&clearTimeout(this.destroyTO);n=this.chart;this.fadeAnim1&&n.stopAnim(this.fadeAnim1);this.fadeAnim2&&n.stopAnim(this.fadeAnim2);this.draw()},hide:function(n){var t=this,r,i;isNaN(n)&&(n=t.fadeOutDuration);r=t.chart;0<n?(t.destroyTO&&clearTimeout(t.destroyTO),t.destroyTO=setTimeout(function(){t.destroy.call(t)},1e3*n),t.follow=!1,t.show=!1,i=t.set,i&&(i.setAttr("opacity",t.fillAlpha),t.fadeAnim1=i.animate({opacity:0},n,"easeInSine")),t.textDiv&&(t.fadeAnim2=r.animate({node:t.textDiv},"opacity",1,0,n,"easeInSine",""))):(t.show=!1,t.follow=!1,t.destroy())},setPosition:function(n,t,i){this.pointToX=n;this.pointToY=t;i&&(n==this.previousX&&t==this.previousY||this.draw());this.previousX=n;this.previousY=t},followCursor:function(n){var t=this,i,r;(t.follow=n)?(t.pShowBullet=t.showBullet,t.showBullet=!1):void 0!==t.pShowBullet&&(t.showBullet=t.pShowBullet);clearInterval(t.interval);i=t.chart.mouseX;r=t.chart.mouseY;!isNaN(i)&&n&&(t.pointToX=i-t.offsetX*t.deltaSignX,t.pointToY=r,t.followMouse(),t.interval=setInterval(function(){t.followMouse.call(t)},40))},removeDiv:function(){if(this.textDiv){var n=this.textDiv.parentNode;n&&n.removeChild(this.textDiv)}},destroy:function(){clearInterval(this.interval);n.remove(this.set);this.removeDiv();this.set=null}})}(),function(){var n=window.AmCharts;n.AmCoordinateChart=n.Class({inherits:n.AmChart,construct:function(t){n.AmCoordinateChart.base.construct.call(this,t);this.theme=t;this.createEvents("rollOverGraphItem","rollOutGraphItem","clickGraphItem","doubleClickGraphItem","rightClickGraphItem","clickGraph","rollOverGraph","rollOutGraph");this.startAlpha=1;this.startDuration=0;this.startEffect="elastic";this.sequencedAnimation=!0;this.colors="#FF6600 #FCD202 #B0DE09 #0D8ECF #2A0CD0 #CD0D74 #CC0000 #00CC00 #0000CC #DDDDDD #999999 #333333 #990000".split(" ");this.balloonDateFormat="MMM DD, YYYY";this.valueAxes=[];this.graphs=[];this.guides=[];this.gridAboveGraphs=!1;n.applyTheme(this,t,"AmCoordinateChart")},initChart:function(){n.AmCoordinateChart.base.initChart.call(this);var t=this.categoryAxis;t&&(this.categoryAxis=n.processObject(t,n.CategoryAxis,this.theme));this.processValueAxes();this.createValueAxes();this.processGraphs();this.processGuides();n.VML&&(this.startAlpha=1);this.setLegendData(this.graphs);this.gridAboveGraphs&&this.gridSet.toFront()},createValueAxes:function(){if(0===this.valueAxes.length){var t=new n.ValueAxis;this.addValueAxis(t)}},parseData:function(){this.processValueAxes();this.processGraphs()},parseSerialData:function(t){var l=this.graphs,i,ht={},b=this.seriesIdField,a,k,u,d,g,nt,tt,it,rt,ot,ut,s,ft,c,r,f,et,v,h,y,o,p,st,e,w;if(b||(b=this.categoryField),this.chartData=[],t)for(a=!1,u=this.categoryAxis,u&&(a=u.parseDates,d=u.forceShowField,nt=u.classNameField,g=u.labelColorField,k=u.categoryFunction),rt={},a&&(i=n.extractPeriod(u.minPeriod),tt=i.period,it=i.count,ot=n.getPeriodDuration(tt,it)),ut={},this.lookupTable=ut,ft=this.dataDateFormat,c={},s=0;s<t.length;s++)if(r={},f=t[s],i=f[this.categoryField],r.dataContext=f,r.category=k?k(i,f,u):String(i),d&&(r.forceShow=f[d]),nt&&(r.className=f[nt]),g&&(r.labelColor=f[g]),ut[f[b]]=r,!a||(u.categoryFunction?i=u.categoryFunction(i,f,u):(!ft||i instanceof Date||(i=i.toString()+" |"),i=n.getDate(i,ft,u.minPeriod)),i=n.resetDateToMin(i,tt,it,u.firstDayOfWeek),r.category=i,r.time=i.getTime(),!isNaN(r.time))){for(et=this.valueAxes,r.axes={},r.x={},v=0;v<et.length;v++)for(h=et[v].id,r.axes[h]={},r.axes[h].graphs={},y=0;y<l.length;y++)i=l[y],o=i.id,p=1.1,isNaN(i.gapPeriod)||(p=i.gapPeriod),st=i.periodValue,i.valueAxis.id==h&&(r.axes[h].graphs[o]={},e={},e.index=s,w=f,i.dataProvider&&(w=ht),e.values=this.processValues(w,i,st),!i.connect&&c&&c[o]&&0<p&&r.time-rt[o]>=ot*p&&(c[o].gap=!0),this.processFields(i,e,w),e.category=r.category,e.serialDataItem=r,e.graph=i,r.axes[h].graphs[o]=e,rt[o]=r.time,c[o]=e);this.chartData[s]=r}for(t=0;t<l.length;t++)i=l[t],i.dataProvider&&this.parseGraphData(i)},processValues:function(t,i,r){var s={},f,c=!1,h,o,u,e;for("candlestick"!=i.type&&"ohlc"!=i.type||""===r||(c=!0),h="value error open close low high".split(" "),o=0;o<h.length;o++)u=h[o],"value"!=u&&"error"!=u&&c&&(r=u.charAt(0).toUpperCase()+u.slice(1)),e=t[i[u+"Field"]+r],null!==e&&(f=Number(e),isNaN(f)||(s[u]=f),"date"==i.valueAxis.type&&void 0!==e&&(f=n.getDate(e,i.chart.dataDateFormat),s[u]=f.getTime()));return s},parseGraphData:function(n){var e=n.dataProvider,t=n.seriesIdField,r;for(t||(t=this.seriesIdField),t||(t=this.categoryField),r=0;r<e.length;r++){var u=e[r],f=this.lookupTable[String(u[t])],i=n.valueAxis.id;f&&(i=f.axes[i].graphs[n.id],i.serialDataItem=f,i.values=this.processValues(u,n,n.periodValue),this.processFields(n,i,u))}},addValueAxis:function(n){n.chart=this;this.valueAxes.push(n);this.validateData()},removeValueAxesAndGraphs:function(){for(var t=this.valueAxes,n=t.length-1;-1<n;n--)this.removeValueAxis(t[n])},removeValueAxis:function(n){for(var i=this.graphs,r,t=i.length-1;0<=t;t--)r=i[t],r&&r.valueAxis==n&&this.removeGraph(r);for(i=this.valueAxes,t=i.length-1;0<=t;t--)i[t]==n&&i.splice(t,1);this.validateData()},addGraph:function(n){this.graphs.push(n);this.chooseGraphColor(n,this.graphs.length-1);this.validateData()},removeGraph:function(n){for(var i=this.graphs,t=i.length-1;0<=t;t--)i[t]==n&&(i.splice(t,1),n.destroy());this.validateData()},processValueAxes:function(){for(var r=this.valueAxes,t,i=0;i<r.length;i++)t=r[i],t=n.processObject(t,n.ValueAxis,this.theme),r[i]=t,t.chart=this,t.id||(t.id="valueAxisAuto"+i+"_"+(new Date).getTime()),void 0===t.usePrefixes&&(t.usePrefixes=this.usePrefixes)},processGuides:function(){var u=this.guides,f=this.categoryAxis,r,t,i;if(u)for(r=0;r<u.length;r++)t=u[r],(void 0!==t.category||void 0!==t.date)&&f&&f.addGuide(t),t.id||(t.id="guideAuto"+r+"_"+(new Date).getTime()),i=t.valueAxis,i?(n.isString(i)&&(i=this.getValueAxisById(i)),i?i.addGuide(t):this.valueAxes[0].addGuide(t)):isNaN(t.value)||this.valueAxes[0].addGuide(t)},processGraphs:function(){for(var r=this.graphs,t,i=0;i<r.length;i++)t=r[i],t=n.processObject(t,n.AmGraph,this.theme),r[i]=t,this.chooseGraphColor(t,i),t.chart=this,n.isString(t.valueAxis)&&(t.valueAxis=this.getValueAxisById(t.valueAxis)),t.valueAxis||(t.valueAxis=this.valueAxes[0]),t.id||(t.id="graphAuto"+i+"_"+(new Date).getTime())},formatString:function(t,i,r){var f=i.graph,u=f.valueAxis;return u.duration&&i.values.value&&(u=n.formatDuration(i.values.value,u.duration,"",u.durationUnits,u.maxInterval,u.numberFormatter),t=t.split("[[value]]").join(u)),t=n.massReplace(t,{"[[title]]":f.title,"[[description]]":i.description}),t=r?n.fixNewLines(t):n.fixBrakes(t),n.cleanFromEmpty(t)},getBalloonColor:function(t,i,r){var u=t.lineColor,f=t.balloonColor;return r&&(f=u),r=t.fillColorsR,"object"==typeof r?u=r[0]:void 0!==r&&(u=r),i.isNegative&&(r=t.negativeLineColor,t=t.negativeFillColors,"object"==typeof t?r=t[0]:void 0!==t&&(r=t),void 0!==r&&(u=r)),void 0!==i.color&&(u=i.color),void 0!==i.lineColor&&(u=i.lineColor),i=i.fillColors,void 0!==i&&(u=i,n.ifArray(i)&&(u=i[0])),void 0===f&&(f=u),f},getGraphById:function(t){return n.getObjById(this.graphs,t)},getValueAxisById:function(t){return n.getObjById(this.valueAxes,t)},processFields:function(t,i,r){var f,u,o,e;for(t.itemColors&&(f=t.itemColors,u=i.index,i.color=u<f.length?f[u]:n.randomColor()),f="lineColor color alpha fillColors description bullet customBullet bulletSize bulletConfig url labelColor dashLength pattern gap className".split(" "),u=0;u<f.length;u++)o=f[u],e=t[o+"Field"],e&&(e=r[e],n.isDefined(e)&&(i[o]=e));i.dataContext=r},chooseGraphColor:function(t,i){if(t.lineColor)t.lineColorR=t.lineColor;else{var r;r=this.colors.length>i?this.colors[i]:t.lineColorR?t.lineColorR:n.randomColor();t.lineColorR=r}t.fillColorsR=t.fillColors?t.fillColors:t.lineColorR;t.bulletBorderColorR=t.bulletBorderColor?t.bulletBorderColor:t.useLineColorForBulletBorder?t.lineColorR:t.bulletColor;t.bulletColorR=t.bulletColor?t.bulletColor:t.lineColorR;(r=this.patterns)&&(t.pattern=r[i])},handleLegendEvent:function(n){var r=n.type,t,i;if(n=n.dataItem,!this.legend.data&&n){t=n.hidden;i=n.showBalloon;switch(r){case"clickMarker":this.textClickEnabled&&(i?this.hideGraphsBalloon(n):this.showGraphsBalloon(n));break;case"clickLabel":i?this.hideGraphsBalloon(n):this.showGraphsBalloon(n);break;case"rollOverItem":t||this.highlightGraph(n);break;case"rollOutItem":t||this.unhighlightGraph();break;case"hideItem":this.hideGraph(n);break;case"showItem":this.showGraph(n)}}},highlightGraph:function(n){var u=this.graphs,t,i=.2,r;if(this.legend&&(i=this.legend.rollOverGraphAlpha),1!=i)for(t=0;t<u.length;t++)r=u[t],r!=n&&r.changeOpacity(i)},unhighlightGraph:function(){var n,t;if(this.legend&&(n=this.legend.rollOverGraphAlpha),1!=n)for(n=this.graphs,t=0;t<n.length;t++)n[t].changeOpacity(1)},showGraph:function(n){n.switchable&&(n.hidden=!1,this.dataChanged=!0,"xy"!=this.type&&(this.marginsUpdated=!1),this.chartCreated&&this.initChart())},hideGraph:function(n){n.switchable&&(this.dataChanged=!0,"xy"!=this.type&&(this.marginsUpdated=!1),n.hidden=!0,this.chartCreated&&this.initChart())},hideGraphsBalloon:function(n){n.showBalloon=!1;this.updateLegend()},showGraphsBalloon:function(n){n.showBalloon=!0;this.updateLegend()},updateLegend:function(){this.legend&&this.legend.invalidateSize()},resetAnimation:function(){var t=this.graphs,n;if(t)for(n=0;n<t.length;n++)t[n].animationPlayed=!1},animateAgain:function(){this.resetAnimation();this.validateNow()}})}(),function(){var n=window.AmCharts;n.AmSlicedChart=n.Class({inherits:n.AmChart,construct:function(t){this.createEvents("rollOverSlice","rollOutSlice","clickSlice","pullOutSlice","pullInSlice","rightClickSlice");n.AmSlicedChart.base.construct.call(this,t);this.colors="#FF0F00 #FF6600 #FF9E01 #FCD202 #F8FF01 #B0DE09 #04D215 #0D8ECF #0D52D1 #2A0CD0 #8A0CCF #CD0D74 #754DEB #DDDDDD #999999 #333333 #000000 #57032A #CA9726 #990000 #4B0C25".split(" ");this.alpha=1;this.groupPercent=0;this.groupedTitle="Other";this.groupedPulled=!1;this.groupedAlpha=1;this.marginLeft=0;this.marginBottom=this.marginTop=10;this.marginRight=0;this.hoverAlpha=1;this.outlineColor="#FFFFFF";this.outlineAlpha=0;this.outlineThickness=1;this.startAlpha=0;this.startDuration=1;this.startEffect="bounce";this.sequencedAnimation=!0;this.pullOutDuration=1;this.pullOutEffect="bounce";this.pullOnHover=this.pullOutOnlyOne=!1;this.labelsEnabled=!0;this.labelTickColor="#000000";this.labelTickAlpha=.2;this.hideLabelsPercent=0;this.urlTarget="_self";this.autoMarginOffset=10;this.gradientRatio=[];this.maxLabelWidth=200;n.applyTheme(this,t,"AmSlicedChart")},initChart:function(){n.AmSlicedChart.base.initChart.call(this);this.dataChanged&&(this.parseData(),this.dispatchDataUpdated=!0,this.dataChanged=!1,this.setLegendData(this.chartData));this.drawChart()},handleLegendEvent:function(n){var u=n.type,t=n.dataItem,r=this.legend,i;if(!r.data&&t){i=t.hidden;n=n.event;switch(u){case"clickMarker":i||r.switchable||this.clickSlice(t,n);break;case"clickLabel":i||this.clickSlice(t,n,!1);break;case"rollOverItem":i||this.rollOverSlice(t,!1,n);break;case"rollOutItem":i||this.rollOutSlice(t,n);break;case"hideItem":this.hideSlice(t,n);break;case"showItem":this.showSlice(t,n)}}},invalidateVisibility:function(){this.recalculatePercents();this.initChart();var n=this.legend;n&&n.invalidateSize()},addEventListeners:function(n,t){var i=this;n.mouseover(function(n){i.rollOverSlice(t,!0,n)}).mouseout(function(n){i.rollOutSlice(t,n)}).touchend(function(n){i.rollOverSlice(t,n)}).touchstart(function(){}).mouseup(function(n){i.clickSlice(t,n)}).contextmenu(function(n){i.handleRightClick(t,n)})},formatString:function(t,i,r){t=n.formatValue(t,i,["value"],this.nf,"",this.usePrefixes,this.prefixesOfSmallNumbers,this.prefixesOfBigNumbers);var u=this.pf.precision;return isNaN(this.tempPrec)||(this.pf.precision=this.tempPrec),t=n.formatValue(t,i,["percents"],this.pf),t=n.massReplace(t,{"[[title]]":i.title,"[[description]]":i.description}),this.pf.precision=u,-1!=t.indexOf("[[")&&(t=n.formatDataContextValue(t,i.dataContext)),t=r?n.fixNewLines(t):n.fixBrakes(t),n.cleanFromEmpty(t)},startSlices:function(){for(var n=0;n<this.chartData.length;n++)0<this.startDuration&&this.sequencedAnimation?this.setStartTO(n):this.startSlice(this.chartData[n])},setStartTO:function(n){var t=this;n=setTimeout(function(){t.startSequenced.call(t)},t.startDuration/t.chartData.length*500*n);t.timeOuts.push(n)},pullSlices:function(n){for(var r=this.chartData,i,t=0;t<r.length;t++)i=r[t],i.pulled&&this.pullSlice(i,1,n)},startSequenced:function(){for(var t=this.chartData,n=0;n<t.length;n++)if(!t[n].started){this.startSlice(this.chartData[n]);break}},startSlice:function(n){n.started=!0;var t=n.wedge,i=this.startDuration,r=n.labelSet;t&&0<i&&(0<n.alpha&&t.show(),t.translate(n.startX,n.startY),t.animate({opacity:1,translate:"0,0"},i,this.startEffect));r&&0<i&&(0<n.alpha&&r.show(),r.translate(n.startX,n.startY),r.animate({opacity:1,translate:"0,0"},i,this.startEffect))},showLabels:function(){for(var r=this.chartData,n,i,t=0;t<r.length;t++)n=r[t],0<n.alpha&&(i=n.label,i&&i.show(),(n=n.tick)&&n.show())},showSlice:function(n){isNaN(n)?n.hidden=!1:this.chartData[n].hidden=!1;this.invalidateVisibility()},hideSlice:function(n){isNaN(n)?n.hidden=!0:this.chartData[n].hidden=!0;this.hideBalloon();this.invalidateVisibility()},rollOverSlice:function(t,i,r){var e,o,u,f;isNaN(t)||(t=this.chartData[t]);clearTimeout(this.hoverInt);t.hidden||(this.pullOnHover&&this.pullSlice(t,1),1>this.hoverAlpha&&t.wedge&&t.wedge.attr({opacity:this.hoverAlpha}),e=t.balloonX,o=t.balloonY,t.pulled&&(e+=t.pullX,o+=t.pullY),u=this.formatString(this.balloonText,t,!0),f=this.balloonFunction,f&&(u=f(t,u)),f=n.adjustLuminosity(t.color,-.15),u?this.showBalloon(u,f,i,e,o):this.hideBalloon(),0===t.value&&this.hideBalloon(),t={type:"rollOverSlice",dataItem:t,chart:this,event:r},this.fire(t.type,t))},rollOutSlice:function(n,t){isNaN(n)||(n=this.chartData[n]);n.wedge&&n.wedge.attr({opacity:1});this.hideBalloon();var i={type:"rollOutSlice",dataItem:n,chart:this,event:t};this.fire(i.type,i)},clickSlice:function(t,i,r){isNaN(t)||(t=this.chartData[t]);t.pulled?this.pullSlice(t,0):this.pullSlice(t,1);n.getURL(t.url,this.urlTarget);r||(t={type:"clickSlice",dataItem:t,chart:this,event:i},this.fire(t.type,t))},handleRightClick:function(n,t){isNaN(n)||(n=this.chartData[n]);var i={type:"rightClickSlice",dataItem:n,chart:this,event:t};this.fire(i.type,i)},drawTicks:function(){for(var u=this.chartData,t,i,r=0;r<u.length;r++)t=u[r],t.label&&!t.skipTick&&(i=t.ty,i=n.line(this.container,[t.tx0,t.tx,t.tx2],[t.ty0,i,i],this.labelTickColor,this.labelTickAlpha),n.setCN(this,i,this.type+"-tick"),n.setCN(this,i,t.className,!0),t.tick=i,t.wedge.push(i))},initialStart:function(){var n=this,t=n.startDuration,i=setTimeout(function(){n.showLabels.call(n)},1e3*t);n.timeOuts.push(i);n.chartCreated?n.pullSlices(!0):(n.startSlices(),0<t?(t=setTimeout(function(){n.pullSlices.call(n)},1200*t),n.timeOuts.push(t)):n.pullSlices(!0))},pullSlice:function(n,t,i){var r=this.pullOutDuration;!0===i&&(r=0);(i=n.wedge)&&(0<r?(i.animate({translate:t*n.pullX+","+t*n.pullY},r,this.pullOutEffect),n.labelSet&&n.labelSet.animate({translate:t*n.pullX+","+t*n.pullY},r,this.pullOutEffect)):(n.labelSet&&n.labelSet.translate(t*n.pullX,t*n.pullY),i.translate(t*n.pullX,t*n.pullY)));1==t?(n.pulled=!0,this.pullOutOnlyOne&&this.pullInAll(n.index),n={type:"pullOutSlice",dataItem:n,chart:this}):(n.pulled=!1,n={type:"pullInSlice",dataItem:n,chart:this});this.fire(n.type,n)},pullInAll:function(n){for(var i=this.chartData,t=0;t<this.chartData.length;t++)t!=n&&i[t].pulled&&this.pullSlice(i[t],0)},pullOutAll:function(){for(var t=this.chartData,n=0;n<t.length;n++)t[n].pulled||this.pullSlice(t[n],1)},parseData:function(){var o=[],s,f,e,r,t,i,u;if(this.chartData=o,s=this.dataProvider,isNaN(this.pieAlpha)||(this.alpha=this.pieAlpha),void 0!==s){for(f=s.length,e=0,r=0;r<f;r++)t={},u=s[r],t.dataContext=u,null!==u[this.valueField]&&(t.value=Number(u[this.valueField])),(i=u[this.titleField])||(i=""),t.title=i,t.pulled=n.toBoolean(u[this.pulledField],!1),(i=u[this.descriptionField])||(i=""),t.description=i,t.labelRadius=Number(u[this.labelRadiusField]),t.switchable=!0,t.className=u[this.classNameField],t.url=u[this.urlField],i=u[this.patternField],!i&&this.patterns&&(i=this.patterns[r]),t.pattern=i,t.visibleInLegend=n.toBoolean(u[this.visibleInLegendField],!0),i=u[this.alphaField],t.alpha=void 0!==i?Number(i):this.alpha,i=u[this.colorField],void 0!==i&&(t.color=i),t.labelColor=n.toColor(u[this.labelColorField]),e+=t.value,t.hidden=!1,o[r]=t;for(r=s=0;r<f;r++)t=o[r],t.percents=t.value/e*100,t.percents<this.groupPercent&&s++;for(1<s&&(this.groupValue=0,this.removeSmallSlices(),o.push({title:this.groupedTitle,value:this.groupValue,percents:this.groupValue/e*100,pulled:this.groupedPulled,color:this.groupedColor,url:this.groupedUrl,description:this.groupedDescription,alpha:this.groupedAlpha,pattern:this.groupedPattern,className:this.groupedClassName,dataContext:{}})),f=this.baseColor,f||(f=this.pieBaseColor),e=this.brightnessStep,e||(e=this.pieBrightnessStep),r=0;r<o.length;r++)f?i=n.adjustLuminosity(f,r*e/100):(i=this.colors[r],void 0===i&&(i=n.randomColor())),void 0===o[r].color&&(o[r].color=i);this.recalculatePercents()}},recalculatePercents:function(){for(var i=this.chartData,r=0,n,t=0;t<i.length;t++)n=i[t],!n.hidden&&0<n.value&&(r+=n.value);for(t=0;t<i.length;t++)n=this.chartData[t],n.percents=!n.hidden&&0<n.value?100*n.value/r:0},removeSmallSlices:function(){for(var t=this.chartData,n=t.length-1;0<=n;n--)t[n].percents<this.groupPercent&&(this.groupValue+=t[n].value,t.splice(n,1))},animateAgain:function(){var t=this,n,i,r;for(t.startSlices(),n=0;n<t.chartData.length;n++)i=t.chartData[n],i.started=!1,r=i.wedge,r&&r.translate(i.startX,i.startY),(r=i.labelSet)&&r.translate(i.startX,i.startY);n=t.startDuration;0<n?(n=setTimeout(function(){t.pullSlices.call(t)},1200*n),t.timeOuts.push(n)):t.pullSlices()},measureMaxLabel:function(){for(var f=this.chartData,u=0,r=0;r<f.length;r++){var i=f[r],t=this.formatString(this.labelText,i),e=this.labelFunction;e&&(t=e(i,t));i=n.text(this.container,t,this.color,this.fontFamily,this.fontSize);t=i.getBBox().width;t>u&&(u=t);i.remove()}return u}})}(),function(){var n=window.AmCharts;n.AmRectangularChart=n.Class({inherits:n.AmCoordinateChart,construct:function(t){n.AmRectangularChart.base.construct.call(this,t);this.theme=t;this.createEvents("zoomed");this.marginRight=this.marginBottom=this.marginTop=this.marginLeft=20;this.verticalPosition=this.horizontalPosition=this.depth3D=this.angle=0;this.heightMultiplier=this.widthMultiplier=1;this.plotAreaFillColors="#FFFFFF";this.plotAreaFillAlphas=0;this.plotAreaBorderColor="#000000";this.plotAreaBorderAlpha=0;this.zoomOutButtonImageSize=19;this.zoomOutButtonImage="lens";this.zoomOutText="Show all";this.zoomOutButtonColor="#e5e5e5";this.zoomOutButtonAlpha=0;this.zoomOutButtonRollOverAlpha=1;this.zoomOutButtonPadding=8;this.trendLines=[];this.autoMargins=!0;this.marginsUpdated=!1;this.autoMarginOffset=10;n.applyTheme(this,t,"AmRectangularChart")},initChart:function(){n.AmRectangularChart.base.initChart.call(this);this.updateDxy();var t=!0;!this.marginsUpdated&&this.autoMargins&&(this.resetMargins(),t=!1);this.processScrollbars();this.updateMargins();this.updatePlotArea();this.updateScrollbars();this.updateTrendLines();this.updateChartCursor();this.updateValueAxes();t&&(this.scrollbarOnly||this.updateGraphs())},drawChart:function(){if(n.AmRectangularChart.base.drawChart.call(this),this.drawPlotArea(),n.ifArray(this.chartData)){var t=this.chartCursor;t&&t.draw()}},resetMargins:function(){var i={},n,t,r,u;if("xy"==this.type){for(t=this.xAxes,r=this.yAxes,n=0;n<t.length;n++)u=t[n],u.ignoreAxisWidth||(u.setOrientation(!0),u.fixAxisPosition(),i[u.position]=!0);for(n=0;n<r.length;n++)t=r[n],t.ignoreAxisWidth||(t.setOrientation(!1),t.fixAxisPosition(),i[t.position]=!0)}else{for(r=this.valueAxes,n=0;n<r.length;n++)t=r[n],t.ignoreAxisWidth||(t.setOrientation(this.rotate),t.fixAxisPosition(),i[t.position]=!0);(n=this.categoryAxis)&&!n.ignoreAxisWidth&&(n.setOrientation(!this.rotate),n.fixAxisPosition(),n.fixAxisPosition(),i[n.position]=!0)}i.left&&(this.marginLeft=0);i.right&&(this.marginRight=0);i.top&&(this.marginTop=0);i.bottom&&(this.marginBottom=0);this.fixMargins=i},measureMargins:function(){for(var f=this.valueAxes,t=this.autoMarginOffset,o=this.fixMargins,s=this.realWidth,h=this.realHeight,i=t,r=t,u=s,n=h,e=0;e<f.length;e++)f[e].handleSynchronization(),n=this.getAxisBounds(f[e],i,u,r,n),i=Math.round(n.l),u=Math.round(n.r),r=Math.round(n.t),n=Math.round(n.b);(f=this.categoryAxis)&&(n=this.getAxisBounds(f,i,u,r,n),i=Math.round(n.l),u=Math.round(n.r),r=Math.round(n.t),n=Math.round(n.b));o.left&&i<t&&(this.marginLeft=Math.round(-i+t));o.right&&u>=s-t&&(this.marginRight=Math.round(u-s+t));o.top&&r<t+this.titleHeight&&(this.marginTop=Math.round(this.marginTop-r+t+this.titleHeight));o.bottom&&n>h-t&&(this.marginBottom=Math.round(this.marginBottom+n-h+t));this.initChart()},getAxisBounds:function(n,t,i,r,u){if(!n.ignoreAxisWidth){var f=n.labelsSet,e=n.tickLength;if(n.inside&&(e=0),f)switch(f=n.getBBox(),n.position){case"top":n=f.y;r>n&&(r=n);break;case"bottom":n=f.y+f.height;u<n&&(u=n);break;case"right":n=f.x+f.width+e+3;i<n&&(i=n);break;case"left":n=f.x-e;t>n&&(t=n)}}return{l:t,t:r,r:i,b:u}},drawZoomOutButton:function(){var t=this,u,i,r,c;if(!t.zbSet){u=t.container.set();t.zoomButtonSet.push(u);var f=t.color,s=t.fontSize,l=t.zoomOutButtonImageSize,a=t.zoomOutButtonImage.replace(/\.[a-z]*$/i,""),v=n.lang.zoomOutText||t.zoomOutText,e=t.zoomOutButtonColor,h=t.zoomOutButtonAlpha,i=t.zoomOutButtonFontSize,o=t.zoomOutButtonPadding;for(isNaN(i)||(s=i),(i=t.zoomOutButtonFontColor)&&(f=i),i=t.zoomOutButton,i&&(i.fontSize&&(s=i.fontSize),i.color&&(f=i.color),i.backgroundColor&&(e=i.backgroundColor),isNaN(i.backgroundAlpha)||(t.zoomOutButtonRollOverAlpha=i.backgroundAlpha)),c=i=0,void 0!==t.pathToImages&&a&&(r=t.container.image(t.pathToImages+a+t.extension,0,0,l,l),n.setCN(t,r,"zoom-out-image"),u.push(r),r=r.getBBox(),i=r.width+5),void 0!==v&&(f=n.text(t.container,v,f,t.fontFamily,s,"start"),n.setCN(t,f,"zoom-out-label"),s=f.getBBox(),c=r?r.height/2-3:s.height/2,f.translate(i,c),u.push(f)),r=u.getBBox(),f=1,n.isModern||(f=0),e=n.rect(t.container,r.width+2*o+5,r.height+2*o-2,e,1,1,e,f),e.setAttr("opacity",h),e.translate(-o,-o),n.setCN(t,e,"zoom-out-bg"),u.push(e),e.toBack(),t.zbBG=e,r=e.getBBox(),u.translate(t.marginLeftReal+t.plotAreaWidth-r.width+o,t.marginTopReal+o),u.hide(),u.mouseover(function(){t.rollOverZB()}).mouseout(function(){t.rollOutZB()}).click(function(){t.clickZB()}).touchstart(function(){t.rollOverZB()}).touchend(function(){t.rollOutZB();t.clickZB()}),h=0;h<u.length;h++)u[h].attr({cursor:"pointer"});t.zbSet=u}},rollOverZB:function(){this.rolledOverZB=!0;this.zbBG.setAttr("opacity",this.zoomOutButtonRollOverAlpha)},rollOutZB:function(){this.rolledOverZB=!1;this.zbBG.setAttr("opacity",this.zoomOutButtonAlpha)},clickZB:function(){this.rolledOverZB=!1;this.zoomOut()},zoomOut:function(){this.updateScrollbar=!0;this.zoom()},drawPlotArea:function(){var i=this.dx,u=this.dy,e=this.marginLeftReal,s=this.marginTopReal,r=this.plotAreaWidth-1,o=this.plotAreaHeight-1,t=this.plotAreaFillColors,f=this.plotAreaFillAlphas,h=this.plotAreaBorderColor,c=this.plotAreaBorderAlpha;"object"==typeof f&&(f=f[0]);t=n.polygon(this.container,[0,r,r,0,0],[0,0,o,o,0],t,f,1,h,c,this.plotAreaGradientAngle);n.setCN(this,t,"plot-area");t.translate(e+i,s+u);this.set.push(t);0!==i&&0!==u&&(t=this.plotAreaFillColors,"object"==typeof t&&(t=t[0]),t=n.adjustLuminosity(t,-.15),r=n.polygon(this.container,[0,i,r+i,r,0],[0,u,u,0,0],t,f,1,h,c),n.setCN(this,r,"plot-area-bottom"),r.translate(e,s+o),this.set.push(r),i=n.polygon(this.container,[0,0,i,i,0],[0,o,o+u,u,0],t,f,1,h,c),n.setCN(this,i,"plot-area-left"),i.translate(e,s),this.set.push(i));(e=this.bbset)&&this.scrollbarOnly&&e.remove()},updatePlotArea:function(){var n=this.updateWidth(),t=this.updateHeight(),i=this.container;this.realWidth=n;this.realWidth=t;i&&this.container.setSize(n,t);n=n-this.marginLeftReal-this.marginRightReal-this.dx;t=t-this.marginTopReal-this.marginBottomReal;1>n&&(n=1);1>t&&(t=1);this.plotAreaWidth=Math.round(n);this.plotAreaHeight=Math.round(t)},updateDxy:function(){this.dx=Math.round(this.depth3D*Math.cos(this.angle*Math.PI/180));this.dy=Math.round(-this.depth3D*Math.sin(this.angle*Math.PI/180));this.d3x=Math.round(this.columnSpacing3D*Math.cos(this.angle*Math.PI/180));this.d3y=Math.round(-this.columnSpacing3D*Math.sin(this.angle*Math.PI/180))},updateMargins:function(){var n=this.getTitleHeight();this.titleHeight=n;this.marginTopReal=this.marginTop-this.dy;this.fixMargins&&!this.fixMargins.top&&(this.marginTopReal+=n);this.marginBottomReal=this.marginBottom;this.marginLeftReal=this.marginLeft;this.marginRightReal=this.marginRight},updateValueAxes:function(){for(var r=this.valueAxes,u=this.marginLeftReal,f=this.marginTopReal,e=this.plotAreaHeight,o=this.plotAreaWidth,t,i=0;i<r.length;i++)t=r[i],t.axisRenderer=n.RecAxis,t.guideFillRenderer=n.RecFill,t.axisItemRenderer=n.RecItem,t.dx=this.dx,t.dy=this.dy,t.viW=o-1,t.viH=e-1,t.marginsChanged=!0,t.viX=u,t.viY=f,this.updateObjectSize(t)},updateObjectSize:function(n){n.width=(this.plotAreaWidth-1)*this.widthMultiplier;n.height=(this.plotAreaHeight-1)*this.heightMultiplier;n.x=this.marginLeftReal+this.horizontalPosition;n.y=this.marginTopReal+this.verticalPosition},updateGraphs:function(){for(var i=this.graphs,n,t=0;t<i.length;t++)n=i[t],n.x=this.marginLeftReal+this.horizontalPosition,n.y=this.marginTopReal+this.verticalPosition,n.width=this.plotAreaWidth*this.widthMultiplier,n.height=this.plotAreaHeight*this.heightMultiplier,n.index=t,n.dx=this.dx,n.dy=this.dy,n.rotate=this.rotate},updateChartCursor:function(){var t=this.chartCursor;t&&(t=n.processObject(t,n.ChartCursor,this.theme),this.addChartCursor(t),t.x=this.marginLeftReal,t.y=this.marginTopReal,t.width=this.plotAreaWidth-1,t.height=this.plotAreaHeight-1,t.chart=this)},processScrollbars:function(){var t=this.chartScrollbar;t&&(t=n.processObject(t,n.ChartScrollbar,this.theme),this.addChartScrollbar(t))},updateScrollbars:function(){},addChartCursor:function(t){n.callMethod("destroy",[this.chartCursor]);t&&(this.listenTo(t,"changed",this.handleCursorChange),this.listenTo(t,"zoomed",this.handleCursorZoom));this.chartCursor=t},removeChartCursor:function(){n.callMethod("destroy",[this.chartCursor]);this.chartCursor=null},zoomTrendLines:function(){for(var i=this.trendLines,n,t=0;t<i.length;t++)n=i[t],n.valueAxis.recalculateToPercents?n.set&&n.set.hide():(n.x=this.marginLeftReal+this.horizontalPosition,n.y=this.marginTopReal+this.verticalPosition,n.draw())},addTrendLine:function(n){this.trendLines.push(n)},removeTrendLine:function(n){for(var i=this.trendLines,t=i.length-1;0<=t;t--)i[t]==n&&i.splice(t,1)},adjustMargins:function(n,t){var r=n.position,i=n.scrollbarHeight+n.offset;n.enabled&&("top"==r?t?this.marginLeftReal+=i:this.marginTopReal+=i:t?this.marginRightReal+=i:this.marginBottomReal+=i)},getScrollbarPosition:function(n,t,i){var r="bottom",u="top";n.oppositeAxis||(u=r,r="top");n.position=t?"bottom"==i||"left"==i?r:u:"top"==i||"right"==i?r:u},updateChartScrollbar:function(n,t){if(n){n.rotate=t;var i=this.marginTopReal,u=this.marginLeftReal,f=n.scrollbarHeight,e=this.dx,o=this.dy,r=n.offset;"top"==n.position?t?(n.y=i,n.x=u-f-r):(n.y=i-f+o-r,n.x=u+e):t?(n.y=i+o,n.x=u+this.plotAreaWidth+e+r):(n.y=i+this.plotAreaHeight+r,n.x=this.marginLeftReal)}},showZB:function(n){var t=this.zbSet;n&&(t=this.zoomOutText,""!==t&&t&&this.drawZoomOutButton());(t=this.zbSet)&&(this.zoomButtonSet.push(t),n?t.show():t.hide(),this.rollOutZB())},handleReleaseOutside:function(t){n.AmRectangularChart.base.handleReleaseOutside.call(this,t);(t=this.chartCursor)&&t.handleReleaseOutside&&t.handleReleaseOutside()},handleMouseDown:function(t){n.AmRectangularChart.base.handleMouseDown.call(this,t);var i=this.chartCursor;i&&i.handleMouseDown&&!this.rolledOverZB&&i.handleMouseDown(t)},handleCursorChange:function(){},update:function(){n.AmRectangularChart.base.update.call(this);this.chartCursor&&this.chartCursor.update&&this.chartCursor.update()}})}(),function(){var n=window.AmCharts;n.TrendLine=n.Class({construct:function(t){this.cname="TrendLine";this.createEvents("click");this.isProtected=!1;this.dashLength=0;this.lineColor="#00CC00";this.lineThickness=this.lineAlpha=1;n.applyTheme(this,t,this.cname)},draw:function(){var t=this;t.destroy();var o=t.chart,c=o.container,s,h,i,u,e=t.categoryAxis,l=t.initialDate,v=t.initialCategory,a=t.finalDate,f=t.finalCategory,r=t.valueAxis,y=t.valueAxisX,p=t.initialXValue,w=t.finalXValue,b=t.initialValue,k=t.finalValue,d=r.recalculateToPercents,g=o.dataDateFormat;e&&(l&&(l=n.getDate(l,g,"fff"),t.initialDate=l,s=e.dateToCoordinate(l)),v&&(s=e.categoryToCoordinate(v)),a&&(a=n.getDate(a,g,"fff"),t.finalDate=a,h=e.dateToCoordinate(a)),f&&(h=e.categoryToCoordinate(f)));y&&!d&&(isNaN(p)||(s=y.getCoordinate(p)),isNaN(w)||(h=y.getCoordinate(w)));r&&!d&&(isNaN(b)||(i=r.getCoordinate(b)),isNaN(k)||(u=r.getCoordinate(k)));isNaN(s)||isNaN(h)||isNaN(i)||isNaN(i)||(o.rotate?(e=[i,u],u=[s,h]):(e=[s,h],u=[i,u]),l=t.lineColor,i=n.line(c,e,u,l,t.lineAlpha,t.lineThickness,t.dashLength),s=e,h=u,f=e[1]-e[0],r=u[1]-u[0],0===f&&(f=.01),0===r&&(r=.01),v=f/Math.abs(f),a=r/Math.abs(r),r=Math.PI/2-Math.asin(f/(f*r/Math.abs(f*r)*Math.sqrt(Math.pow(f,2)+Math.pow(r,2)))),f=Math.abs(5*Math.cos(r)),r=Math.abs(5*Math.sin(r)),s.push(e[1]-v*r,e[0]-v*r),h.push(u[1]+a*f,u[0]+a*f),u=n.polygon(c,s,h,l,.005,0),c=c.set([u,i]),c.translate(o.marginLeftReal,o.marginTopReal),o.trendLinesSet.push(c),n.setCN(o,i,"trend-line"),n.setCN(o,i,"trend-line-"+t.id),t.line=i,t.set=c,(i=t.initialImage)&&(i=n.processObject(i,n.Image,t.theme),i.chart=o,i.draw(),i.translate(s[0]+i.offsetX,h[0]+i.offsetY),c.push(i.set)),(i=t.finalImage)&&(i=n.processObject(i,n.Image,t.theme),i.chart=o,i.draw(),i.translate(s[1]+i.offsetX,h[1]+i.offsetY),c.push(i.set)),u.mouseup(function(){t.handleLineClick()}).mouseover(function(){t.handleLineOver()}).mouseout(function(){t.handleLineOut()}),u.touchend&&u.touchend(function(){t.handleLineClick()}),c.clipRect(0,0,o.plotAreaWidth,o.plotAreaHeight))},handleLineClick:function(){var n={type:"click",trendLine:this,chart:this.chart};this.fire(n.type,n)},handleLineOver:function(){var n=this.rollOverColor;void 0!==n&&this.line.attr({stroke:n})},handleLineOut:function(){this.line.attr({stroke:this.lineColor})},destroy:function(){n.remove(this.set)}})}(),function(){var n=window.AmCharts;n.Image=n.Class({construct:function(t){this.cname="Image";this.height=this.width=20;this.rotation=this.offsetY=this.offsetX=0;this.balloonColor=this.color="#000000";this.opacity=1;n.applyTheme(this,t,this.cname)},draw:function(){var n=this,i,t,r;n.set&&n.set.remove();i=n.chart.container;n.set=i.set();n.url?(t=i.image(n.url,0,0,n.width,n.height),r=1):n.svgPath&&(t=i.path(n.svgPath),t.setAttr("fill",n.color),t.setAttr("stroke",n.outlineColor),i=t.getBBox(),r=Math.min(n.width/i.width,n.height/i.height));t&&(t.setAttr("opacity",n.opacity),n.set.rotate(n.rotation),t.translate(-n.width/2,-n.height/2,r),n.balloonText&&t.mouseover(function(){n.chart.showBalloon(n.balloonText,n.balloonColor,!0)}).mouseout(function(){n.chart.hideBalloon()}).touchend(function(){n.chart.hideBalloon()}).touchstart(function(){n.chart.showBalloon(n.balloonText,n.balloonColor,!0)}),n.set.push(t))},translate:function(n,t){this.set&&this.set.translate(n,t)}})}(),function(){var n=window.AmCharts;n.circle=function(t,i,r,u,f,e,o,s,h){return 0>=i&&(i=.001),(void 0==f||0===f)&&(f=.01),void 0===e&&(e="#000000"),void 0===o&&(o=0),u={fill:r,stroke:e,"fill-opacity":u,"stroke-width":f,"stroke-opacity":o},t=isNaN(h)?t.circle(0,0,i).attr(u):t.ellipse(0,0,i,h).attr(u),s&&t.gradient("radialGradient",[r,n.adjustLuminosity(r,-.6)]),t};n.text=function(t,i,r,u,f,e,o,s){return e||(e="middle"),"right"==e&&(e="end"),"left"==e&&(e="start"),isNaN(s)&&(s=1),void 0!==i&&(i=String(i),n.isIE&&!n.isModern&&(i=i.replace("&amp;","&"),i=i.replace("&","&amp;"))),r={fill:r,"font-family":u,"font-size":f+"px",opacity:s},!0===o&&(r["font-weight"]="bold"),r["text-anchor"]=e,t.text(i,r)};n.polygon=function(t,i,r,u,f,e,o,s,h,c,l){isNaN(e)&&(e=.01);isNaN(s)&&(s=f);var a=u,v=!1;for("object"==typeof a&&1<a.length&&(v=!0,a=a[0]),void 0===o&&(o=a),f={fill:a,stroke:o,"fill-opacity":f,"stroke-width":e,"stroke-opacity":s},void 0!==l&&0<l&&(f["stroke-dasharray"]=l),l=n.dx,e=n.dy,t.handDrawn&&(r=n.makeHD(i,r,t.handDrawScatter),i=r[0],r=r[1]),o=Math.round,c&&(o=Number),c="M"+(o(i[0])+l)+","+(o(r[0])+e),s=1;s<i.length;s++)c+=" L"+(o(i[s])+l)+","+(o(r[s])+e);return t=t.path(c+" Z").attr(f),v&&t.gradient("linearGradient",u,h),t};n.rect=function(t,i,r,u,f,e,o,s,h,c,l){var a,p,v,y;return isNaN(i)||isNaN(r)?t.set():(isNaN(e)&&(e=0),void 0===h&&(h=0),void 0===c&&(c=270),isNaN(f)&&(f=0),a=u,p=!1,"object"==typeof a&&(a=a[0],p=!0),void 0===o&&(o=a),void 0===s&&(s=f),i=Math.round(i),r=Math.round(r),v=0,y=0,0>i&&(i=Math.abs(i),v=-i),0>r&&(r=Math.abs(r),y=-r),v+=n.dx,y+=n.dy,f={fill:a,stroke:o,"fill-opacity":f,"stroke-opacity":s},void 0!==l&&0<l&&(f["stroke-dasharray"]=l),t=t.rect(v,y,i,r,h,e).attr(f),p&&t.gradient("linearGradient",u,c),t)};n.bullet=function(t,i,r,u,f,e,o,s,h,c,l,a,v){var y;"circle"==i&&(i="round");switch(i){case"round":y=n.circle(t,r/2,u,f,e,o,s);break;case"square":y=n.polygon(t,[-r/2,r/2,r/2,-r/2],[r/2,r/2,-r/2,-r/2],u,f,e,o,s,c-180,void 0,v);break;case"rectangle":y=n.polygon(t,[-r,r,r,-r],[r/2,r/2,-r/2,-r/2],u,f,e,o,s,c-180,void 0,v);break;case"diamond":y=n.polygon(t,[-r/2,0,r/2,0],[0,-r/2,0,r/2],u,f,e,o,s);break;case"triangleUp":y=n.triangle(t,r,0,u,f,e,o,s);break;case"triangleDown":y=n.triangle(t,r,180,u,f,e,o,s);break;case"triangleLeft":y=n.triangle(t,r,270,u,f,e,o,s);break;case"triangleRight":y=n.triangle(t,r,90,u,f,e,o,s);break;case"bubble":y=n.circle(t,r/2,u,f,e,o,s,!0);break;case"line":y=n.line(t,[-r/2,r/2],[0,0],u,f,e,o,s);break;case"yError":y=t.set();y.push(n.line(t,[0,0],[-r/2,r/2],u,f,e));y.push(n.line(t,[-h,h],[-r/2,-r/2],u,f,e));y.push(n.line(t,[-h,h],[r/2,r/2],u,f,e));break;case"xError":y=t.set();y.push(n.line(t,[-r/2,r/2],[0,0],u,f,e));y.push(n.line(t,[-r/2,-r/2],[-h,h],u,f,e));y.push(n.line(t,[r/2,r/2],[-h,h],u,f,e))}return y&&y.pattern(l,NaN,a),y};n.triangle=function(n,t,i,r,u,f,e,o){(void 0===f||0===f)&&(f=1);void 0===e&&(e="#000");void 0===o&&(o=0);r={fill:r,stroke:e,"fill-opacity":u,"stroke-width":f,"stroke-opacity":o};t/=2;var s;return 0===i&&(s=" M"+-t+","+t+" L0,"+-t+" L"+t+","+t+" Z"),180==i&&(s=" M"+-t+","+-t+" L0,"+t+" L"+t+","+-t+" Z"),90==i&&(s=" M"+-t+","+-t+" L"+t+",0 L"+-t+","+t+" Z"),270==i&&(s=" M"+-t+",0 L"+t+","+t+" L"+t+","+-t+" Z"),n.path(s).attr(r)};n.line=function(t,i,r,u,f,e,o,s,h,c,l){if(t.handDrawn&&!l)return n.handDrawnLine(t,i,r,u,f,e,o,s,h,c,l);for(e={fill:"none","stroke-width":e},void 0!==o&&0<o&&(e["stroke-dasharray"]=o),isNaN(f)||(e["stroke-opacity"]=f),u&&(e.stroke=u),u=Math.round,c&&(u=Number),c=n.dx,f=n.dy,o="M"+(u(i[0])+c)+","+(u(r[0])+f),s=1;s<i.length;s++)o+=" L"+(u(i[s])+c)+","+(u(r[s])+f);return n.VML?t.path(o,void 0,!0).attr(e):(h&&(o+=" M0,0 L0,0"),t.path(o).attr(e))};n.makeHD=function(n,t,i){for(var a,v,c=[],l=[],r=1;r<n.length;r++)for(var f=Number(n[r-1]),e=Number(t[r-1]),o=Number(n[r]),s=Number(t[r]),h=Math.round(Math.sqrt(Math.pow(o-f,2)+Math.pow(s-e,2))/50)+1,o=(o-f)/h,s=(s-e)/h,u=0;u<=h;u++)a=f+u*o+Math.random()*i,v=e+u*s+Math.random()*i,c.push(a),l.push(v);return[c,l]};n.handDrawnLine=function(t,i,r,u,f,e,o,s,h,c){for(var p=t.set(),l=1;l<i.length;l++)for(var y=[i[l-1],i[l]],v=[r[l-1],r[l]],v=n.makeHD(y,v,t.handDrawScatter),y=v[0],v=v[1],a=1;a<y.length;a++)p.push(n.line(t,[y[a-1],y[a]],[v[a-1],v[a]],u,f,e+Math.random()*t.handDrawThickness-t.handDrawThickness/2,o,s,h,c,!0));return p};n.doNothing=function(n){return n};n.wedge=function(t,i,r,u,f,e,o,s,h,c,l,a,v){var y=Math.round,ot,it,ht,st,ct;e=y(e);o=y(o);s=y(s);var rt=y(o/e*s),ft=n.VML,w=359.5+e/100;359.94<w&&(w=359.94);f>=w&&(f=w);var p=1/180*Math.PI,w=i+Math.sin(u*p)*s,b=r-Math.cos(u*p)*rt,k=i+Math.sin(u*p)*e,d=r-Math.cos(u*p)*o,g=i+Math.sin((u+f)*p)*e,nt=r-Math.cos((u+f)*p)*o,tt=i+Math.sin((u+f)*p)*s,p=r-Math.cos((u+f)*p)*rt,ut={fill:n.adjustLuminosity(c.fill,-.2),"stroke-opacity":0,"fill-opacity":c["fill-opacity"]},et=0;if(180<Math.abs(f)&&(et=1),u=t.set(),ft&&(w=y(10*w),k=y(10*k),g=y(10*g),tt=y(10*tt),b=y(10*b),d=y(10*d),nt=y(10*nt),p=y(10*p),i=y(10*i),h=y(10*h),r=y(10*r),e*=10,o*=10,s*=10,rt*=10,1>Math.abs(f)&&1>=Math.abs(g-k)&&1>=Math.abs(nt-d)&&(ot=!0)),f="",a&&(ut["fill-opacity"]=0,ut["stroke-opacity"]=c["stroke-opacity"]/2,ut.stroke=c.stroke),0<h){for(it=" M"+w+","+(b+h)+" L"+k+","+(d+h),ft?(ot||(it+=" A"+(i-e)+","+(h+r-o)+","+(i+e)+","+(h+r+o)+","+k+","+(d+h)+","+g+","+(nt+h)),it+=" L"+tt+","+(p+h),0<s&&(ot||(it+=" B"+(i-s)+","+(h+r-rt)+","+(i+s)+","+(h+r+rt)+","+tt+","+(h+p)+","+w+","+(h+b)))):(it+=" A"+e+","+o+",0,"+et+",1,"+g+","+(nt+h)+" L"+tt+","+(p+h),0<s&&(it+=" A"+s+","+rt+",0,"+et+",0,"+w+","+(b+h))),it+=" Z",ht=h,ft&&(ht/=10),st=0;st<ht;st+=10)ct=t.path(it,void 0,void 0,"1000,1000").attr(ut),u.push(ct),ct.translate(0,-st);it=t.path(" M"+w+","+b+" L"+w+","+(b+h)+" L"+k+","+(d+h)+" L"+k+","+d+" L"+w+","+b+" Z",void 0,void 0,"1000,1000").attr(ut);h=t.path(" M"+g+","+nt+" L"+g+","+(nt+h)+" L"+tt+","+(p+h)+" L"+tt+","+p+" L"+g+","+nt+" Z",void 0,void 0,"1000,1000").attr(ut);u.push(it);u.push(h)}if(ft?(ot||(f=" A"+y(i-e)+","+y(r-o)+","+y(i+e)+","+y(r+o)+","+y(k)+","+y(d)+","+y(g)+","+y(nt)),e=" M"+y(w)+","+y(b)+" L"+y(k)+","+y(d)+f+" L"+y(tt)+","+y(p)):e=" M"+w+","+b+" L"+k+","+d+(" A"+e+","+o+",0,"+et+",1,"+g+","+nt)+" L"+tt+","+p,0<s&&(ft?ot||(e+=" B"+(i-s)+","+(r-rt)+","+(i+s)+","+(r+rt)+","+tt+","+p+","+w+","+b):e+=" A"+s+","+rt+",0,"+et+",0,"+w+","+b),t.handDrawn&&(i=n.line(t,[w,k],[b,d],c.stroke,c.thickness*Math.random()*t.handDrawThickness,c["stroke-opacity"]),u.push(i)),t=t.path(e+" Z",void 0,void 0,"1000,1000").attr(c),l){for(i=[],r=0;r<l.length;r++)i.push(n.adjustLuminosity(c.fill,l[r]));0<i.length&&t.gradient("linearGradient",i)}return t.pattern(a,NaN,v),u.wedge=t,u.push(t),u};n.rgb2hex=function(n){return(n=n.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===n.length?"#"+("0"+parseInt(n[1],10).toString(16)).slice(-2)+("0"+parseInt(n[2],10).toString(16)).slice(-2)+("0"+parseInt(n[3],10).toString(16)).slice(-2):""};n.adjustLuminosity=function(t,i){t&&-1!=t.indexOf("rgb")&&(t=n.rgb2hex(t));t=String(t).replace(/[^0-9a-f]/gi,"");6>t.length&&(t=String(t[0])+String(t[0])+String(t[1])+String(t[1])+String(t[2])+String(t[2]));i=i||0;for(var f="#",r,u=0;3>u;u++)r=parseInt(t.substr(2*u,2),16),r=Math.round(Math.min(Math.max(0,r+r*i),255)).toString(16),f+=("00"+r).substr(r.length);return f}}(),function(){var n=window.AmCharts;n.Bezier=n.Class({construct:function(t,i,r,u,f,e,o,s,h,c){for("object"==typeof o&&(o=o[0]),"object"==typeof s&&(s=s[0]),0===s&&(o="none"),e={fill:o,"fill-opacity":s,"stroke-width":e},void 0!==h&&0<h&&(e["stroke-dasharray"]=h),isNaN(f)||(e["stroke-opacity"]=f),u&&(e.stroke=u),u="M"+Math.round(i[0])+","+Math.round(r[0]),f=[],h=0;h<i.length;h++)f.push({x:Number(i[h]),y:Number(r[h])});1<f.length&&(i=this.interpolate(f),u+=this.drawBeziers(i));c?u+=c:n.VML||(u+="M0,0 L0,0");this.path=t.path(u).attr(e);this.node=this.path.node},interpolate:function(t){var f=[],o;f.push({x:t[0].x,y:t[0].y});var e=t[1].x-t[0].x,r=t[1].y-t[0].y,s=n.bezierX,h=n.bezierY;for(f.push({x:t[0].x+e/s,y:t[0].y+r/h}),o=1;o<t.length-1;o++){var u=t[o-1],i=t[o],r=t[o+1];isNaN(r.x)&&(r=i);isNaN(i.x)&&(i=u);isNaN(u.x)&&(u=i);e=r.x-i.x;r=r.y-u.y;u=i.x-u.x;u>e&&(u=e);f.push({x:i.x-u/s,y:i.y-r/h});f.push({x:i.x,y:i.y});f.push({x:i.x+u/s,y:i.y+r/h})}return r=t[t.length-1].y-t[t.length-2].y,e=t[t.length-1].x-t[t.length-2].x,f.push({x:t[t.length-1].x-e/s,y:t[t.length-1].y-r/h}),f.push({x:t[t.length-1].x,y:t[t.length-1].y}),f},drawBeziers:function(n){for(var i="",t=0;t<(n.length-1)/3;t++)i+=this.drawBezierMidpoint(n[3*t],n[3*t+1],n[3*t+2],n[3*t+3]);return i},drawBezierMidpoint:function(n,t,i,r){var u=Math.round,e=this.getPointOnSegment(n,t,.75),o=this.getPointOnSegment(r,i,.75),s=(r.x-n.x)/16,h=(r.y-n.y)/16,f=this.getPointOnSegment(n,t,.375);return n=this.getPointOnSegment(e,o,.375),n.x-=s,n.y-=h,t=this.getPointOnSegment(o,e,.375),t.x+=s,t.y+=h,i=this.getPointOnSegment(r,i,.375),s=this.getMiddle(f,n),e=this.getMiddle(e,o),o=this.getMiddle(t,i),f=" Q"+u(f.x)+","+u(f.y)+","+u(s.x)+","+u(s.y),f+=" Q"+u(n.x)+","+u(n.y)+","+u(e.x)+","+u(e.y),f+=" Q"+u(t.x)+","+u(t.y)+","+u(o.x)+","+u(o.y),f+(" Q"+u(i.x)+","+u(i.y)+","+u(r.x)+","+u(r.y))},getMiddle:function(n,t){return{x:(n.x+t.x)/2,y:(n.y+t.y)/2}},getPointOnSegment:function(n,t,i){return{x:n.x+(t.x-n.x)*i,y:n.y+(t.y-n.y)*i}}})}(),function(){var n=window.AmCharts;n.AmDraw=n.Class({construct:function(t,i,r,u){n.SVG_NS="http://www.w3.org/2000/svg";n.SVG_XLINK="http://www.w3.org/1999/xlink";n.hasSVG=!!document.createElementNS&&!!document.createElementNS(n.SVG_NS,"svg").createSVGRect;1>i&&(i=10);1>r&&(r=10);this.div=t;this.width=i;this.height=r;this.rBin=document.createElement("div");n.hasSVG?(n.SVG=!0,i=this.createSvgElement("svg"),t.appendChild(i),this.container=i,this.addDefs(u),this.R=new n.SVGRenderer(this)):n.isIE&&n.VMLRenderer&&(n.VML=!0,n.vmlStyleSheet||(document.namespaces.add("amvml","urn:schemas-microsoft-com:vml"),31>document.styleSheets.length?(i=document.createStyleSheet(),i.addRule(".amvml","behavior:url(#default#VML); display:inline-block; antialias:true"),n.vmlStyleSheet=i):document.styleSheets[0].addRule(".amvml","behavior:url(#default#VML); display:inline-block; antialias:true")),this.container=t,this.R=new n.VMLRenderer(this,u),this.R.disableSelection(t))},createSvgElement:function(t){return document.createElementNS(n.SVG_NS,t)},circle:function(t,i,r,u){var f=new n.AmDObject("circle",this);return f.attr({r:r,cx:t,cy:i}),this.addToContainer(f.node,u),f},ellipse:function(t,i,r,u,f){var e=new n.AmDObject("ellipse",this);return e.attr({rx:r,ry:u,cx:t,cy:i}),this.addToContainer(e.node,f),e},setSize:function(n,t){0<n&&0<t&&(this.container.style.width=n+"px",this.container.style.height=t+"px")},rect:function(t,i,r,u,f,e,o){var s=new n.AmDObject("rect",this);return n.VML&&(f=Math.round(100*f/Math.min(r,u)),r+=2*e,u+=2*e,s.bw=e,s.node.style.marginLeft=-e,s.node.style.marginTop=-e),1>r&&(r=1),1>u&&(u=1),s.attr({x:t,y:i,width:r,height:u,rx:f,ry:f,"stroke-width":e}),this.addToContainer(s.node,o),s},image:function(t,i,r,u,f,e){var o=new n.AmDObject("image",this);return o.attr({x:i,y:r,width:u,height:f}),this.R.path(o,t),this.addToContainer(o.node,e),o},addToContainer:function(n,t){t||(t=this.container);t.appendChild(n)},text:function(n,t,i){return this.R.text(n,t,i)},path:function(t,i,r,u){var f=new n.AmDObject("path",this);return u||(u="100,100"),f.attr({cs:u}),r?f.attr({dd:t}):f.attr({d:t}),this.addToContainer(f.node,i),f},set:function(n){return this.R.set(n)},remove:function(n){if(n){var t=this.rBin;t.appendChild(n);t.innerHTML=""}},renderFix:function(){var i=this.container,n=i.style;n.top="0px";n.left="0px";try{var t=i.getBoundingClientRect(),r=t.left-Math.round(t.left),u=t.top-Math.round(t.top);r&&(n.left=r+"px");u&&(n.top=u+"px")}catch(f){}},update:function(){this.R.update()},addDefs:function(t){if(n.hasSVG){var r=this.createSvgElement("desc"),i=this.container;i.setAttribute("version","1.1");i.style.position="absolute";this.setSize(this.width,this.height);n.rtl&&(i.setAttribute("direction","rtl"),i.style.left="auto",i.style.right="0px");t.addCodeCredits&&r.appendChild(document.createTextNode("JavaScript chart by amCharts "+t.version));i.appendChild(r);t.defs&&(r=this.createSvgElement("defs"),i.appendChild(r),n.parseDefs(t.defs,r),this.defs=r)}}})}(),function(){var n=window.AmCharts;n.AmDObject=n.Class({construct:function(n,t){this.D=t;this.R=t.R;this.node=this.R.create(this,n);this.y=this.x=0;this.scale=1},attr:function(n){return this.R.attr(this,n),this},getAttr:function(n){return this.node.getAttribute(n)},setAttr:function(n,t){return this.R.setAttr(this,n,t),this},clipRect:function(n,t,i,r){this.R.clipRect(this,n,t,i,r)},translate:function(n,t,i,r){r||(n=Math.round(n),t=Math.round(t));this.R.move(this,n,t,i);this.x=n;this.y=t;this.scale=i;this.angle&&this.rotate(this.angle)},rotate:function(n,t){this.R.rotate(this,n,t);this.angle=n},animate:function(t,i,r){var u,f,e;for(u in t)t.hasOwnProperty(u)&&(f=u,e=t[u],r=n.getEffect(r),this.R.animate(this,f,e,i,r))},push:function(n){var t,i;n&&(t=this.node,t.appendChild(n.node),i=n.clipPath,i&&t.appendChild(i),(n=n.grad)&&t.appendChild(n))},text:function(n){this.R.setText(this,n)},remove:function(){this.R.remove(this)},clear:function(){var n=this.node;if(n.hasChildNodes())for(;1<=n.childNodes.length;)n.removeChild(n.firstChild)},hide:function(){this.setAttr("visibility","hidden")},show:function(){this.setAttr("visibility","visible")},getBBox:function(){return this.R.getBBox(this)},toFront:function(){var n=this.node,t;n&&(this.prevNextNode=n.nextSibling,t=n.parentNode,t&&t.appendChild(n))},toPrevious:function(){var n=this.node;n&&this.prevNextNode&&(n=n.parentNode)&&n.insertBefore(this.prevNextNode,null)},toBack:function(){var n=this.node,t,i;n&&(this.prevNextNode=n.nextSibling,t=n.parentNode,t&&(i=t.firstChild,i&&t.insertBefore(n,i)))},mouseover:function(n){return this.R.addListener(this,"mouseover",n),this},mouseout:function(n){return this.R.addListener(this,"mouseout",n),this},click:function(n){return this.R.addListener(this,"click",n),this},dblclick:function(n){return this.R.addListener(this,"dblclick",n),this},mousedown:function(n){return this.R.addListener(this,"mousedown",n),this},mouseup:function(n){return this.R.addListener(this,"mouseup",n),this},touchstart:function(n){return this.R.addListener(this,"touchstart",n),this},touchend:function(n){return this.R.addListener(this,"touchend",n),this},contextmenu:function(n){return this.node.addEventListener?this.node.addEventListener("contextmenu",n,!0):this.R.addListener(this,"contextmenu",n),this},stop:function(){n.removeFromArray(this.R.animations,this.an_x);n.removeFromArray(this.R.animations,this.an_y)},length:function(){return this.node.childNodes.length},gradient:function(n,t,i){this.R.gradient(this,n,t,i)},pattern:function(n,t,i){n&&this.R.pattern(this,n,t,i)}})}(),function(){var n=window.AmCharts;n.VMLRenderer=n.Class({construct:function(n,t){this.chart=t;this.D=n;this.cNames={circle:"oval",ellipse:"oval",rect:"roundrect",path:"shape"};this.styleMap={x:"left",y:"top",width:"width",height:"height","font-family":"fontFamily","font-size":"fontSize",visibility:"visibility"}},create:function(n,t){var i,r,u;return"group"==t?(i=document.createElement("div"),n.type="div"):"text"==t?(i=document.createElement("div"),n.type="text"):"image"==t?(i=document.createElement("img"),n.type="image"):(n.type="shape",n.shapeType=this.cNames[t],i=document.createElement("amvml:"+this.cNames[t]),r=document.createElement("amvml:stroke"),i.appendChild(r),n.stroke=r,u=document.createElement("amvml:fill"),i.appendChild(u),n.fill=u,u.className="amvml",r.className="amvml",i.className="amvml"),i.style.position="absolute",i.style.top=0,i.style.left=0,i},path:function(n,t){n.node.setAttribute("src",t)},setAttr:function(t,i,r){var o,e;if(void 0!==r){8===document.documentMode&&(o=!0);var s=t.node,f=t.type,u=s.style;if("r"==i&&(u.width=2*r,u.height=2*r),"oval"==t.shapeType&&("rx"==i&&(u.width=2*r),"ry"==i&&(u.height=2*r)),"roundrect"==t.shapeType&&("width"!=i&&"height"!=i||--r),"cursor"==i&&(u.cursor=r),"cx"==i&&(u.left=r-n.removePx(u.width)/2),"cy"==i&&(u.top=r-n.removePx(u.height)/2),e=this.styleMap[i],"width"==e&&0>r&&(r=0),void 0!==e&&(u[e]=r),"text"==f&&("text-anchor"==i&&(t.anchor=r,e=s.clientWidth,"end"==r&&(u.marginLeft=-e+"px"),"middle"==r&&(u.marginLeft=-(e/2)+"px",u.textAlign="center"),"start"==r&&(u.marginLeft="0px")),"fill"==i&&(u.color=r),"font-weight"==i&&(u.fontWeight=r)),u=t.children)for(e=0;e<u.length;e++)u[e].setAttr(i,r);"shape"==f&&("cs"==i&&(s.style.width="100px",s.style.height="100px",s.setAttribute("coordsize",r)),"d"==i&&s.setAttribute("path",this.svgPathToVml(r)),"dd"==i&&s.setAttribute("path",r),f=t.stroke,t=t.fill,"stroke"==i&&(o?f.color=r:f.setAttribute("color",r)),"stroke-width"==i&&(o?f.weight=r:f.setAttribute("weight",r)),"stroke-opacity"==i&&(o?f.opacity=r:f.setAttribute("opacity",r)),"stroke-dasharray"==i&&(u="solid",0<r&&3>r&&(u="dot"),3<=r&&6>=r&&(u="dash"),6<r&&(u="longdash"),o?f.dashstyle=u:f.setAttribute("dashstyle",u)),("fill-opacity"==i||"opacity"==i)&&(0===r?o?t.on=!1:t.setAttribute("on",!1):o?t.opacity=r:t.setAttribute("opacity",r)),"fill"==i&&(o?t.color=r:t.setAttribute("color",r)),"rx"==i&&(o?s.arcSize=r+"%":s.setAttribute("arcsize",r+"%")))}},attr:function(n,t){for(var i in t)t.hasOwnProperty(i)&&this.setAttr(n,i,t[i])},text:function(t,i,r){var u=new n.AmDObject("text",this.D),f=u.node;return f.style.whiteSpace="pre",f.innerHTML=t,this.D.addToContainer(f,r),this.attr(u,i),u},getBBox:function(n){return this.getBox(n.node)},getBox:function(n){var h=n.offsetLeft,c=n.offsetTop,o=n.offsetWidth,s=n.offsetHeight,i,r,u,e,t,f;if(n.hasChildNodes()){for(e=0;e<n.childNodes.length;e++)i=this.getBox(n.childNodes[e]),t=i.x,isNaN(t)||(isNaN(r)?r=t:t<r&&(r=t)),f=i.y,isNaN(f)||(isNaN(u)?u=f:f<u&&(u=f)),t=i.width+t,isNaN(t)||(o=Math.max(o,t)),i=i.height+f,isNaN(i)||(s=Math.max(s,i));0>r&&(h+=r);0>u&&(c+=u)}return{x:h,y:c,width:o,height:s}},setText:function(n,t){var i=n.node;i&&(i.innerHTML=t);this.setAttr(n,"text-anchor",n.anchor)},addListener:function(n,t,i){n.node["on"+t]=i},move:function(t,i,r){var u=t.node,f=u.style;"text"==t.type&&(r-=n.removePx(f.fontSize)/2-1);"oval"==t.shapeType&&(i-=n.removePx(f.width)/2,r-=n.removePx(f.height)/2);t=t.bw;isNaN(t)||(i-=t,r-=t);isNaN(i)||isNaN(r)||(u.style.left=i+"px",u.style.top=r+"px")},svgPathToVml:function(n){var l=n.split(" "),r,t,e;for(n="",t=Math.round,e=0;e<l.length;e++){var f=l[e],u=f.substring(0,1),f=f.substring(1),i=f.split(","),o=t(i[0])+","+t(i[1]);if("M"==u&&(n+=" m "+o),"L"==u&&(n+=" l "+o),"Z"==u&&(n+=" x e"),"Q"==u){var a=r.length,c=r[a-1],s=i[0],h=i[1],o=i[2],v=i[3];r=t(r[a-2]/3+2/3*s);c=t(c/3+2/3*h);s=t(2/3*s+o/3);h=t(2/3*h+v/3);n+=" c "+r+","+c+","+s+","+h+","+o+","+v}"A"==u&&(n+=" wa "+f);"B"==u&&(n+=" at "+f);r=i}return n},animate:function(n,t,i,r,u){var f=n.node,e=this.chart,o;"translate"==t&&(t=i.split(","),i=t[1],o=f.offsetTop,e.animate(n,"left",f.offsetLeft,t[0],r,u,"px"),e.animate(n,"top",o,i,r,u,"px"))},clipRect:function(n,t,i,r,u){n=n.node;0===t&&0===i?(n.style.width=r+"px",n.style.height=u+"px",n.style.overflow="hidden"):n.style.clip="rect("+i+"px "+(t+r)+"px "+(i+u)+"px "+t+"px)"},rotate:function(t,i,r){var u;if(0!==Number(i)){u=t.node;t=u.style;r||(r=this.getBGColor(u.parentNode));t.backgroundColor=r;t.paddingLeft=1;r=i*Math.PI/180;var e=Math.cos(r),o=Math.sin(r),s=n.removePx(t.left),h=n.removePx(t.top),f=u.offsetWidth,u=u.offsetHeight;i/=Math.abs(i);t.left=s+f/2-f/2*Math.cos(r)-i*u/2*Math.sin(r)+3;t.top=h-i*f/2*Math.sin(r)+i*u/2*Math.sin(r);t.cssText=t.cssText+"; filter:progid:DXImageTransform.Microsoft.Matrix(M11='"+e+"', M12='"+-o+"', M21='"+o+"', M22='"+e+"', sizingmethod='auto expand');"}},getBGColor:function(n){var t="#FFFFFF",i;return n.style&&(i=n.style.backgroundColor,""!==i?t=i:n.parentNode&&(t=this.getBGColor(n.parentNode))),t},set:function(t){var r=new n.AmDObject("group",this.D),i;if(this.D.container.appendChild(r.node),t)for(i=0;i<t.length;i++)r.push(t[i]);return r},gradient:function(n,t,i,r){var f="",u;for("radialGradient"==t&&(t="gradientradial",i.reverse()),"linearGradient"==t&&(t="gradient"),u=0;u<i.length;u++)f+=Math.round(100*u/(i.length-1))+"% "+i[u],u<i.length-1&&(f+=",");n=n.fill;90==r?r=0:270==r?r=180:180==r?r=90:0===r&&(r=270);8===document.documentMode?(n.type=t,n.angle=r):(n.setAttribute("type",t),n.setAttribute("angle",r));f&&(n.colors.value=f)},remove:function(n){n.clipPath&&this.D.remove(n.clipPath);this.D.remove(n.node)},disableSelection:function(n){void 0!==typeof n.onselectstart&&(n.onselectstart=function(){return!1});n.style.cursor="default"},pattern:function(t,i,r,u){r=t.node;t=t.fill;var f="none";i.color&&(f=i.color);r.fillColor=f;i=i.url;n.isAbsolute(i)||(i=u+i);8===document.documentMode?(t.type="tile",t.src=i):(t.setAttribute("type","tile"),t.setAttribute("src",i))},update:function(){}})}(),function(){var n=window.AmCharts;n.SVGRenderer=n.Class({construct:function(n){this.D=n;this.animations=[]},create:function(t,i){return document.createElementNS(n.SVG_NS,i)},attr:function(n,t){for(var i in t)t.hasOwnProperty(i)&&this.setAttr(n,i,t[i])},setAttr:function(n,t,i){void 0!==i&&n.node.setAttribute(t,i)},animate:function(t,i,r,u,f){var e=t.node;t["an_"+i]&&n.removeFromArray(this.animations,t["an_"+i]);"translate"==i?(e=(e=e.getAttribute("transform"))?String(e).substring(10,e.length-1):"0,0",e=e.split(", ").join(" "),e=e.split(" ").join(","),0===e&&(e="0,0")):e=Number(e.getAttribute(i));r={obj:t,frame:0,attribute:i,from:e,to:r,time:u,effect:f};this.animations.push(r);t["an_"+i]=r},update:function(){for(var c=this.animations,e=c.length-1;0<=e;e--){var t=c[e],o=1e3*t.time/n.updateRate,s=t.frame+1,h=t.obj,f=t.attribute,r,i,u;s<=o?(t.frame++,"translate"==f?(r=t.from.split(","),f=Number(r[0]),r=Number(r[1]),isNaN(r)&&(r=0),i=t.to.split(","),u=Number(i[0]),i=Number(i[1]),u=0==u-f?u:Math.round(n[t.effect](0,s,f,u-f,o)),t=0==i-r?i:Math.round(n[t.effect](0,s,r,i-r,o)),f="transform",t="translate("+u+","+t+")"):(i=Number(t.from),r=Number(t.to),u=r-i,t=n[t.effect](0,s,i,u,o),isNaN(t)&&(t=r),0===u&&this.animations.splice(e,1)),this.setAttr(h,f,t)):("translate"==f?(i=t.to.split(","),u=Number(i[0]),i=Number(i[1]),h.translate(u,i)):(r=Number(t.to),this.setAttr(h,f,r)),this.animations.splice(e,1))}},getBBox:function(n){if(n=n.node)try{return n.getBBox()}catch(t){}return{width:0,height:0,x:0,y:0}},path:function(t,i){t.node.setAttributeNS(n.SVG_XLINK,"xlink:href",i)},clipRect:function(t,i,r,u,f){var e=t.node,o=t.clipPath,s;o&&this.D.remove(o);s=e.parentNode;s&&(e=document.createElementNS(n.SVG_NS,"clipPath"),o=n.getUniqueId(),e.setAttribute("id",o),this.D.rect(i,r,u,f,0,0,e),s.appendChild(e),i="#",n.baseHref&&!n.isIE&&(i=this.removeTarget(window.location.href)+i),this.setAttr(t,"clip-path","url("+i+o+")"),this.clipPathC++,t.clipPath=e)},text:function(t,i,r){var u=new n.AmDObject("text",this.D),o,f,e;for(t=String(t).split("\n"),o=n.removePx(i["font-size"]),f=0;f<t.length;f++)e=this.create(null,"tspan"),e.appendChild(document.createTextNode(t[f])),e.setAttribute("y",(o+2)*f+Math.round(o/2)),e.setAttribute("x",0),u.node.appendChild(e);return u.node.setAttribute("y",Math.round(o/2)),this.attr(u,i),this.D.addToContainer(u.node,r),u},setText:function(n,t){var i=n.node;i&&(i.removeChild(i.firstChild),i.appendChild(document.createTextNode(t)))},move:function(n,t,i,r){isNaN(t)&&(t=0);isNaN(i)&&(i=0);t="translate("+t+","+i+")";r&&(t=t+" scale("+r+")");this.setAttr(n,"transform",t)},rotate:function(n,t){var r=n.node.getAttribute("transform"),i="rotate("+t+")";r&&(i=r+" "+i);this.setAttr(n,"transform",i)},set:function(t){var r=new n.AmDObject("g",this.D),i;if(this.D.container.appendChild(r.node),t)for(i=0;i<t.length;i++)r.push(t[i]);return r},addListener:function(n,t,i){n.node["on"+t]=i},gradient:function(t,i,r,u){var s=t.node,e=t.grad;if(e&&this.D.remove(e),i=document.createElementNS(n.SVG_NS,i),e=n.getUniqueId(),i.setAttribute("id",e),!isNaN(u)){var f=0,o=0,h=0,c=0;90==u?h=100:270==u?c=100:180==u?f=100:0===u&&(o=100);i.setAttribute("x1",f+"%");i.setAttribute("x2",o+"%");i.setAttribute("y1",h+"%");i.setAttribute("y2",c+"%")}for(u=0;u<r.length;u++)f=document.createElementNS(n.SVG_NS,"stop"),o=100*u/(r.length-1),0===u&&(o=0),f.setAttribute("offset",o+"%"),f.setAttribute("stop-color",r[u]),i.appendChild(f);s.parentNode.appendChild(i);r="#";n.baseHref&&!n.isIE&&(r=this.removeTarget(window.location.href)+r);s.setAttribute("fill","url("+r+e+")");t.grad=i},removeTarget:function(n){return n.split("#")[0]},pattern:function(t,i,r,u){var c=t.node,f,h,o,s;isNaN(r)&&(r=1);f=t.patternNode;f&&this.D.remove(f);var f=document.createElementNS(n.SVG_NS,"pattern"),l=n.getUniqueId(),e=i;i.url&&(e=i.url);n.isAbsolute(e)||(e=u+e);u=Number(i.width);isNaN(u)&&(u=4);h=Number(i.height);isNaN(h)&&(h=4);u/=r;h/=r;r=i.x;isNaN(r)&&(r=0);o=-Math.random()*Number(i.randomX);isNaN(o)||(r=o);o=i.y;isNaN(o)&&(o=0);s=-Math.random()*Number(i.randomY);isNaN(s)||(o=s);f.setAttribute("id",l);f.setAttribute("width",u);f.setAttribute("height",h);f.setAttribute("patternUnits","userSpaceOnUse");f.setAttribute("xlink:href",e);i.color&&(s=document.createElementNS(n.SVG_NS,"rect"),s.setAttributeNS(null,"height",u),s.setAttributeNS(null,"width",h),s.setAttributeNS(null,"fill",i.color),f.appendChild(s));this.D.image(e,0,0,u,h,f).translate(r,o);e="#";n.baseHref&&!n.isIE&&(e=this.removeTarget(window.location.href)+e);c.setAttribute("fill","url("+e+l+")");t.patternNode=f;c.parentNode.appendChild(f)},remove:function(n){n.clipPath&&this.D.remove(n.clipPath);n.grad&&this.D.remove(n.grad);n.patternNode&&this.D.remove(n.patternNode);this.D.remove(n.node)}})}();AmCharts.AmDSet=AmCharts.Class({construct:function(){this.create("g")},attr:function(n){this.R.attr(this.node,n)},move:function(n,t){this.R.move(this.node,n,t)}}),function(){var n=window.AmCharts;n.AmLegend=n.Class({construct:function(t){this.enabled=!0;this.cname="AmLegend";this.createEvents("rollOverMarker","rollOverItem","rollOutMarker","rollOutItem","showItem","hideItem","clickMarker","rollOverItem","rollOutItem","clickLabel");this.position="bottom";this.borderColor=this.color="#000000";this.borderAlpha=0;this.markerLabelGap=5;this.verticalGap=10;this.align="left";this.horizontalGap=0;this.spacing=10;this.markerDisabledColor="#AAB3B3";this.markerType="square";this.markerSize=16;this.markerBorderThickness=this.markerBorderAlpha=1;this.marginBottom=this.marginTop=0;this.marginLeft=this.marginRight=20;this.autoMargins=!0;this.valueWidth=50;this.switchable=!0;this.switchType="x";this.switchColor="#FFFFFF";this.rollOverColor="#CC0000";this.reversedOrder=!1;this.labelText="[[title]]";this.valueText="[[value]]";this.useMarkerColorForLabels=!1;this.rollOverGraphAlpha=1;this.textClickEnabled=!1;this.equalWidths=!0;this.backgroundColor="#FFFFFF";this.backgroundAlpha=0;this.useGraphSettings=!1;this.showEntries=!0;n.applyTheme(this,t,this.cname)},setData:function(n){this.legendData=n;this.invalidateSize()},invalidateSize:function(){this.destroy();this.entries=[];this.valueLabels=[];var t=this.legendData;this.enabled&&(n.ifArray(t)||n.ifArray(this.data))&&this.drawLegend()},drawLegend:function(){var t=this.chart,r=this.position,u=this.width,s=t.divRealWidth,i=t.divRealHeight,f=this.div,e=this.legendData,o;if(this.data&&(e=this.data),isNaN(this.fontSize)&&(this.fontSize=t.fontSize),"right"==r||"left"==r?(this.maxColumns=1,this.autoMargins&&(this.marginLeft=this.marginRight=10)):this.autoMargins&&(this.marginRight=t.marginRight,this.marginLeft=t.marginLeft,o=t.autoMarginOffset,"bottom"==r?(this.marginBottom=o,this.marginTop=0):(this.marginTop=o,this.marginBottom=0)),u=void 0!==u?n.toCoordinate(u,s):"right"!=r&&"left"!=r?t.realWidth:0<this.ieW?this.ieW:t.realWidth,"outside"==r?(u=f.offsetWidth,i=f.offsetHeight,f.clientHeight&&(u=f.clientWidth,i=f.clientHeight)):(isNaN(u)||(f.style.width=u+"px"),f.className="amChartsLegend "+t.classNamePrefix+"-legend-div"),this.divWidth=u,(r=this.container)?(r.container.innerHTML="",f.appendChild(r.container),r.width=u,r.height=i,r.setSize(u,i),r.addDefs(t)):r=new n.AmDraw(f,u,i,t),this.container=r,this.lx=0,this.ly=8,i=this.markerSize,i>this.fontSize&&(this.ly=i/2-1),0<i&&(this.lx+=i+this.markerLabelGap),this.titleWidth=0,(i=this.title)&&(i=n.text(this.container,i,this.color,t.fontFamily,this.fontSize,"start",!0),n.setCN(t,i,"legend-title"),i.translate(this.marginLeft,this.marginTop+this.verticalGap+this.ly+1),t=i.getBBox(),this.titleWidth=t.width+15,this.titleHeight=t.height+6),this.index=this.maxLabelWidth=0,this.showEntries){for(t=0;t<e.length;t++)this.createEntry(e[t]);for(t=this.index=0;t<e.length;t++)this.createValue(e[t])}this.arrangeEntries();this.updateValues()},arrangeEntries:function(){var i=this.position,e=this.marginLeft+this.titleWidth,h=this.marginRight,rt=this.marginTop,ut=this.marginBottom,o=this.horizontalGap,nt=this.div,v=this.divWidth,s=this.maxColumns,g=this.verticalGap,r=this.spacing,ft=v-h-e,tt=0,y=0,it=this.container,p,w,c,t,u,f,d,a;for(this.set&&this.set.remove(),p=it.set(),this.set=p,w=it.set(),p.push(w),c=this.entries,u=0;u<c.length;u++)t=c[u].getBBox(),f=t.width,f>tt&&(tt=f),t=t.height,t>y&&(y=t);var f=y=0,b=o,k=0,l=0;for(u=0;u<c.length;u++)d=c[u],this.reversedOrder&&(d=c[c.length-u-1]),t=d.getBBox(),this.equalWidths?a=f*(tt+r+this.markerLabelGap):(a=b,b=b+t.width+o+r),t.height>l&&(l=t.height),a+t.width>ft&&0<u&&0!==f&&(y++,a=f=0,b=a+t.width+o+r,k=k+l+g,l=0),d.translate(a,k),f++,!isNaN(s)&&f>=s&&(f=0,y++,k=k+l+g,b=o,l=0),w.push(d);t=w.getBBox();s=t.height+2*g-1;"left"==i||"right"==i?(r=t.width+2*o,v=r+e+h,nt.style.width=v+"px",this.ieW=v):r=v-e-h-1;h=n.polygon(this.container,[0,r,r,0],[0,0,s,s],this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);n.setCN(this.chart,h,"legend-bg");p.push(h);p.translate(e,rt);h.toBack();e=o;("top"==i||"bottom"==i||"absolute"==i||"outside"==i)&&("center"==this.align?e=o+(r-t.width)/2:"right"==this.align&&(e=o+r-t.width));w.translate(e,g+1);this.titleHeight>s&&(s=this.titleHeight);i=s+rt+ut+1;0>i&&(i=0);i>this.chart.divRealHeight&&(nt.style.top="0px");nt.style.height=Math.round(i)+"px";it.setSize(this.divWidth,i)},createEntry:function(t){var e,c,f,y,o,u,a,i,w,l;if(!1!==t.visibleInLegend){e=this.chart;c=t.markerType;t.legendEntryWidth=this.markerSize;c||(c=this.markerType);f=t.color;y=t.alpha;t.legendKeyColor&&(f=t.legendKeyColor());t.legendKeyAlpha&&(y=t.legendKeyAlpha());!0===t.hidden&&(o=f=this.markerDisabledColor);u=t.pattern;a=t.customMarker;a||(a=this.customMarker);var h=this.container,r=this.markerSize,s=0,p=0,v=r/2;this.useGraphSettings?(c=t.type,this.switchType=void 0,"line"==c||"step"==c||"smoothedLine"==c||"ohlc"==c?(u=h.set(),t.hidden||(f=t.lineColorR,o=t.bulletBorderColorR),s=n.line(h,[0,2*r],[r/2,r/2],f,t.lineAlpha,t.lineThickness,t.dashLength),n.setCN(e,s,"graph-stroke"),u.push(s),t.bullet&&(t.hidden||(f=t.bulletColorR),s=n.bullet(h,t.bullet,t.bulletSize,f,t.bulletAlpha,t.bulletBorderThickness,o,t.bulletBorderAlpha))&&(n.setCN(e,s,"graph-bullet"),s.translate(r+1,r/2),u.push(s)),v=0,s=r,p=r/3):(t.getGradRotation&&(i=t.getGradRotation(),0===i&&(i=180)),s=t.fillColorsR,!0===t.hidden&&(s=f),(u=this.createMarker("rectangle",s,t.fillAlphas,t.lineThickness,f,t.lineAlpha,i,u,t.dashLength))&&(v=r,u.translate(v,r/2)),s=r),n.setCN(e,u,"graph-"+c),n.setCN(e,u,"graph-"+t.id)):a?u=h.image(a,0,0,r,r):(isNaN(this.gradientRotation)||(w=180+this.gradientRotation),(u=this.createMarker(c,f,y,void 0,void 0,void 0,w,u))&&u.translate(r/2,r/2));n.setCN(e,u,"legend-marker");this.addListeners(u,t);h=h.set([u]);this.switchable&&t.switchable&&h.setAttr("cursor","pointer");void 0!==t.id&&n.setCN(e,h,"legend-item-"+t.id);n.setCN(e,h,t.className,!0);(o=this.switchType)&&"none"!=o&&0<r&&("x"==o?(i=this.createX(),i.translate(r/2,r/2)):i=this.createV(),i.dItem=t,!0!==t.hidden?"x"==o?i.hide():i.show():"x"!=o&&i.hide(),this.switchable||i.hide(),this.addListeners(i,t),t.legendSwitch=i,h.push(i),n.setCN(e,i,"legend-switch"));o=this.color;t.showBalloon&&this.textClickEnabled&&void 0!==this.selectedColor&&(o=this.selectedColor);this.useMarkerColorForLabels&&(o=f);!0===t.hidden&&(o=this.markerDisabledColor);f=n.massReplace(this.labelText,{"[[title]]":t.title});i=this.fontSize;u&&(r<=i&&u.translate(v,r/2+this.ly-i/2+(i+2-r)/2-p),t.legendEntryWidth=u.getBBox().width);f&&(f=n.fixBrakes(f),t.legendTextReal=f,l=this.labelWidth,l=isNaN(l)?n.text(this.container,f,o,e.fontFamily,i,"start"):n.wrappedText(this.container,f,o,e.fontFamily,i,"start",!1,l,0),n.setCN(e,l,"legend-label"),l.translate(this.lx+s,this.ly),h.push(l),e=l.getBBox().width,this.maxLabelWidth<e&&(this.maxLabelWidth=e));this.entries[this.index]=h;t.legendEntry=this.entries[this.index];t.legendLabel=l;this.index++}},addListeners:function(n,t){var i=this;n&&n.mouseover(function(n){i.rollOverMarker(t,n)}).mouseout(function(n){i.rollOutMarker(t,n)}).click(function(n){i.clickMarker(t,n)})},rollOverMarker:function(n,t){this.switchable&&this.dispatch("rollOverMarker",n,t);this.dispatch("rollOverItem",n,t)},rollOutMarker:function(n,t){this.switchable&&this.dispatch("rollOutMarker",n,t);this.dispatch("rollOutItem",n,t)},clickMarker:function(n,t){this.switchable&&(!0===n.hidden?this.dispatch("showItem",n,t):this.dispatch("hideItem",n,t));this.dispatch("clickMarker",n,t)},rollOverLabel:function(n,t){n.hidden||(this.textClickEnabled&&n.legendLabel&&n.legendLabel.attr({fill:this.rollOverColor}),this.dispatch("rollOverItem",n,t))},rollOutLabel:function(n,t){if(!n.hidden){if(this.textClickEnabled&&n.legendLabel){var i=this.color;void 0!==this.selectedColor&&n.showBalloon&&(i=this.selectedColor);this.useMarkerColorForLabels&&(i=n.lineColor,void 0===i&&(i=n.color));n.legendLabel.attr({fill:i})}this.dispatch("rollOutItem",n,t)}},clickLabel:function(n,t){this.textClickEnabled?n.hidden||this.dispatch("clickLabel",n,t):this.switchable&&(!0===n.hidden?this.dispatch("showItem",n,t):this.dispatch("hideItem",n,t))},dispatch:function(n,t,i){t={type:n,dataItem:t,target:this,event:i,chart:this.chart};this.chart&&this.chart.handleLegendEvent(t);this.fire(n,t)},createValue:function(t){var i=this,u=i.fontSize,e=i.chart,f,o,r;if(!1!==t.visibleInLegend){if(f=i.maxLabelWidth,i.forceWidth&&(f=i.labelWidth),i.equalWidths||(i.valueAlign="left"),"left"==i.valueAlign&&(f=t.legendEntry.getBBox().width),o=f,i.valueText&&0<i.valueWidth){r=i.color;i.useMarkerColorForValues&&(r=t.color,t.legendKeyColor&&(r=t.legendKeyColor()));!0===t.hidden&&(r=i.markerDisabledColor);var h=i.valueText,f=f+i.lx+i.markerLabelGap+i.valueWidth,s="end";"left"==i.valueAlign&&(f-=i.valueWidth,s="start");r=n.text(i.container,h,r,i.chart.fontFamily,u,s);n.setCN(e,r,"legend-value");r.translate(f,i.ly);i.entries[i.index].push(r);o+=i.valueWidth+2*i.markerLabelGap;r.dItem=t;i.valueLabels.push(r)}i.index++;e=i.markerSize;e<u+7&&(e=u+7,n.VML&&(e+=3));u=i.container.rect(t.legendEntryWidth,0,o,e,0,0).attr({stroke:"none",fill:"#fff","fill-opacity":.005});u.dItem=t;i.entries[i.index-1].push(u);u.mouseover(function(n){i.rollOverLabel(t,n)}).mouseout(function(n){i.rollOutLabel(t,n)}).click(function(n){i.clickLabel(t,n)})}},createV:function(){var t=this.markerSize;return n.polygon(this.container,[t/5,t/2,t-t/5,t/2],[t/3,t-t/5,t/5,t/1.7],this.switchColor)},createX:function(){var t=(this.markerSize-4)/2,i={stroke:this.switchColor,"stroke-width":3},r=this.container,u=n.line(r,[-t,t],[-t,t]).attr(i),t=n.line(r,[-t,t],[t,-t]).attr(i);return this.container.set([u,t])},createMarker:function(t,i,r,u,f,e,o,s,h){var c=this.markerSize,l=this.container;return f||(f=this.markerBorderColor),f||(f=i),isNaN(u)&&(u=this.markerBorderThickness),isNaN(e)&&(e=this.markerBorderAlpha),n.bullet(l,t,c,i,r,u,f,e,c,o,s,this.chart.path,h)},validateNow:function(){this.invalidateSize()},updateValues:function(){for(var s=this.valueLabels,f=this.chart,h=this.data,u,r,e=0;e<s.length;e++){var o=s[e],t=o.dItem,i=" ";h?t.value?o.text(t.value):o.text(""):(void 0!==t.type?(u=t.currentDataItem,r=this.periodValueText,t.legendPeriodValueText&&(r=t.legendPeriodValueText),u?(i=this.valueText,t.legendValueText&&(i=t.legendValueText),i=f.formatString(i,u)):r&&f.formatPeriodString&&(r=n.massReplace(r,{"[[title]]":t.title}),i=f.formatPeriodString(r,t))):i=f.formatString(this.valueText,t),(r=this.valueFunction)&&(u&&(t=u),i=r(t,i)),o.text(i))}},renderFix:function(){if(!n.VML&&this.enabled){var t=this.container;t&&t.renderFix()}},destroy:function(){this.div.innerHTML="";n.remove(this.set)}})}(),function(){var n=window.AmCharts;n.formatMilliseconds=function(n,t){if(-1!=n.indexOf("fff")){var i=t.getMilliseconds(),r=String(i);10>i&&(r="00"+i);10<=i&&100>i&&(r="0"+i);n=n.replace(/fff/g,r)}return n};n.extractPeriod=function(t){var i=n.stripNumbers(t),r=1;return i!=t&&(r=Number(t.slice(0,t.indexOf(i)))),{period:i,count:r}};n.getDate=function(t,i,r){return t instanceof Date?n.newDate(t,r):i&&isNaN(t)?n.stringToDate(t,i):new Date(t)};n.daysInMonth=function(n){return new Date(n.getYear(),n.getMonth()+1,0).getDate()};n.newDate=function(n,t){return t&&-1==t.indexOf("fff")?new Date(n):new Date(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds())};n.resetDateToMin=function(t,i,r,u){void 0===u&&(u=1);var l,c,h,s,o,e,f;n.useUTC?(l=t.getUTCFullYear(),c=t.getUTCMonth(),h=t.getUTCDate(),s=t.getUTCHours(),o=t.getUTCMinutes(),e=t.getUTCSeconds(),f=t.getUTCMilliseconds(),t=t.getUTCDay()):(l=t.getFullYear(),c=t.getMonth(),h=t.getDate(),s=t.getHours(),o=t.getMinutes(),e=t.getSeconds(),f=t.getMilliseconds(),t=t.getDay());switch(i){case"YYYY":l=Math.floor(l/r)*r;c=0;h=1;f=e=o=s=0;break;case"MM":c=Math.floor(c/r)*r;h=1;f=e=o=s=0;break;case"WW":h=t>=u?h-t+u:h-(7+t)+u;f=e=o=s=0;break;case"DD":f=e=o=s=0;break;case"hh":s=Math.floor(s/r)*r;f=e=o=0;break;case"mm":o=Math.floor(o/r)*r;f=e=0;break;case"ss":e=Math.floor(e/r)*r;f=0;break;case"fff":f=Math.floor(f/r)*r}return n.useUTC?(t=new Date,t.setUTCFullYear(l,c,h),t.setUTCHours(s,o,e,f)):t=new Date(l,c,h,s,o,e,f),t};n.getPeriodDuration=function(n,t){void 0===t&&(t=1);var i;switch(n){case"YYYY":i=316224e5;break;case"MM":i=26784e5;break;case"WW":i=6048e5;break;case"DD":i=864e5;break;case"hh":i=36e5;break;case"mm":i=6e4;break;case"ss":i=1e3;break;case"fff":i=1}return i*t};n.intervals={s:{nextInterval:"ss",contains:1e3},ss:{nextInterval:"mm",contains:60,count:0},mm:{nextInterval:"hh",contains:60,count:1},hh:{nextInterval:"DD",contains:24,count:2},DD:{nextInterval:"",contains:Infinity,count:3}};n.getMaxInterval=function(t,i){var r=n.intervals;return t>=r[i].contains?(t=Math.round(t/r[i].contains),i=r[i].nextInterval,n.getMaxInterval(t,i)):"ss"==i?r[i].nextInterval:i};n.dayNames="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" ");n.shortDayNames="Sun Mon Tue Wed Thu Fri Sat".split(" ");n.monthNames="January February March April May June July August September October November December".split(" ");n.shortMonthNames="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ");n.getWeekNumber=function(n){n=new Date(n);n.setHours(0,0,0);n.setDate(n.getDate()+4-(n.getDay()||7));var t=new Date(n.getFullYear(),0,1);return Math.ceil(((n-t)/864e5+1)/7)};n.stringToDate=function(t,i){var r={},u=[{pattern:"YYYY",period:"year"},{pattern:"YY",period:"year"},{pattern:"MM",period:"month"},{pattern:"M",period:"month"},{pattern:"DD",period:"date"},{pattern:"D",period:"date"},{pattern:"JJ",period:"hours"},{pattern:"J",period:"hours"},{pattern:"HH",period:"hours"},{pattern:"H",period:"hours"},{pattern:"KK",period:"hours"},{pattern:"K",period:"hours"},{pattern:"LL",period:"hours"},{pattern:"L",period:"hours"},{pattern:"NN",period:"minutes"},{pattern:"N",period:"minutes"},{pattern:"SS",period:"seconds"},{pattern:"S",period:"seconds"},{pattern:"QQQ",period:"milliseconds"},{pattern:"QQ",period:"milliseconds"},{pattern:"Q",period:"milliseconds"}],c=!0,s=i.indexOf("AA"),e,o,f,h;for(-1!=s&&(t.substr(s,2),"pm"==t.toLowerCase&&(c=!1)),s=i,f=0;f<u.length;f++)o=u[f].period,r[o]=0,"date"==o&&(r[o]=1);for(f=0;f<u.length;f++)(e=u[f].pattern,o=u[f].period,-1!=i.indexOf(e))&&(h=n.getFromDateString(e,t,s),i=i.replace(e,""),("KK"==e||"K"==e||"LL"==e||"L"==e)&&(c||(h+=12)),r[o]=h);return n.useUTC?(u=new Date,u.setUTCFullYear(r.year,r.month,r.date),u.setUTCHours(r.hours,r.minutes,r.seconds,r.milliseconds)):u=new Date(r.year,r.month,r.date,r.hours,r.minutes,r.seconds,r.milliseconds),u};n.getFromDateString=function(n,t,i){if(void 0!==t)return i=i.indexOf(n),t=String(t),t=t.substr(i,n.length),"0"==t.charAt(0)&&(t=t.substr(1,t.length-1)),t=Number(t),isNaN(t)&&(t=0),-1!=n.indexOf("M")&&t--,t};n.formatDate=function(t,i,r){var s,l,c,v,a,e,o,y,h,p,w,u,f;return r||(r=n),h=n.getWeekNumber(t),n.useUTC?(s=t.getUTCFullYear(),l=t.getUTCMonth(),c=t.getUTCDate(),v=t.getUTCDay(),a=t.getUTCHours(),e=t.getUTCMinutes(),o=t.getUTCSeconds(),y=t.getUTCMilliseconds()):(s=t.getFullYear(),l=t.getMonth(),c=t.getDate(),v=t.getDay(),a=t.getHours(),e=t.getMinutes(),o=t.getSeconds(),y=t.getMilliseconds()),p=String(s).substr(2,2),w="0"+v,i=i.replace(/W/g,h),h=a,24==h&&(h=0),u=h,10>u&&(u="0"+u),i=i.replace(/JJ/g,u),i=i.replace(/J/g,h),u=a,0===u&&(u=24,-1!=i.indexOf("H")&&(c--,0===c&&(s=new Date(t),s.setDate(s.getDate()-1),l=s.getMonth(),c=s.getDate(),s=s.getFullYear()))),t=l+1,9>l&&(t="0"+t),h=c,10>c&&(h="0"+c),f=u,10>f&&(f="0"+f),i=i.replace(/HH/g,f),i=i.replace(/H/g,u),u=a,11<u&&(u-=12),f=u,10>f&&(f="0"+f),i=i.replace(/KK/g,f),i=i.replace(/K/g,u),u=a,0===u&&(u=12),12<u&&(u-=12),f=u,10>f&&(f="0"+f),i=i.replace(/LL/g,f),i=i.replace(/L/g,u),u=e,10>u&&(u="0"+u),i=i.replace(/NN/g,u),i=i.replace(/N/g,e),e=o,10>e&&(e="0"+e),i=i.replace(/SS/g,e),i=i.replace(/S/g,o),o=y,10>o&&(o="00"+o),100>o&&(o="0"+o),e=y,10>e&&(e="00"+e),i=i.replace(/QQQ/g,o),i=i.replace(/QQ/g,e),i=i.replace(/Q/g,y),i=12>a?i.replace(/A/g,r.amString):i.replace(/A/g,r.pmString),i=i.replace(/YYYY/g,"@IIII@"),i=i.replace(/YY/g,"@II@"),i=i.replace(/MMMM/g,"@XXXX@"),i=i.replace(/MMM/g,"@XXX@"),i=i.replace(/MM/g,"@XX@"),i=i.replace(/M/g,"@X@"),i=i.replace(/DD/g,"@RR@"),i=i.replace(/D/g,"@R@"),i=i.replace(/EEEE/g,"@PPPP@"),i=i.replace(/EEE/g,"@PPP@"),i=i.replace(/EE/g,"@PP@"),i=i.replace(/E/g,"@P@"),i=i.replace(/@IIII@/g,s),i=i.replace(/@II@/g,p),i=i.replace(/@XXXX@/g,r.monthNames[l]),i=i.replace(/@XXX@/g,r.shortMonthNames[l]),i=i.replace(/@XX@/g,t),i=i.replace(/@X@/g,l+1),i=i.replace(/@RR@/g,h),i=i.replace(/@R@/g,c),i=i.replace(/@PPPP@/g,r.dayNames[v]),i=i.replace(/@PPP@/g,r.shortDayNames[v]),i=i.replace(/@PP@/g,w),i.replace(/@P@/g,v)};n.changeDate=function(t,i,r,u,f){if(n.useUTC)return n.changeUTCDate(t,i,r,u,f);var e=-1;void 0===u&&(u=!0);void 0===f&&(f=!1);!0===u&&(e=1);switch(i){case"YYYY":t.setFullYear(t.getFullYear()+r*e);u||f||t.setDate(t.getDate()+1);break;case"MM":i=t.getMonth();t.setMonth(t.getMonth()+r*e);t.getMonth()>i+r*e&&t.setDate(t.getDate()-1);u||f||t.setDate(t.getDate()+1);break;case"DD":t.setDate(t.getDate()+r*e);break;case"WW":t.setDate(t.getDate()+r*e*7);break;case"hh":t.setHours(t.getHours()+r*e);break;case"mm":t.setMinutes(t.getMinutes()+r*e);break;case"ss":t.setSeconds(t.getSeconds()+r*e);break;case"fff":t.setMilliseconds(t.getMilliseconds()+r*e)}return t};n.changeUTCDate=function(n,t,i,r,u){var f=-1;void 0===r&&(r=!0);void 0===u&&(u=!1);!0===r&&(f=1);switch(t){case"YYYY":n.setUTCFullYear(n.getUTCFullYear()+i*f);r||u||n.setUTCDate(n.getUTCDate()+1);break;case"MM":t=n.getUTCMonth();n.setUTCMonth(n.getUTCMonth()+i*f);n.getUTCMonth()>t+i*f&&n.setUTCDate(n.getUTCDate()-1);r||u||n.setUTCDate(n.getUTCDate()+1);break;case"DD":n.setUTCDate(n.getUTCDate()+i*f);break;case"WW":n.setUTCDate(n.getUTCDate()+i*f*7);break;case"hh":n.setUTCHours(n.getUTCHours()+i*f);break;case"mm":n.setUTCMinutes(n.getUTCMinutes()+i*f);break;case"ss":n.setUTCSeconds(n.getUTCSeconds()+i*f);break;case"fff":n.setUTCMilliseconds(n.getUTCMilliseconds()+i*f)}return n}}();AmCharts.translations.fr={monthNames:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],shortMonthNames:["Janv.","Févr.","Mars","Avril","Mai","Juin","Juil.","Août","Sept.","Oct.","Nov.","Déc."],dayNames:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],shortDayNames:["Dim.","Lun.","Mar.","Mer.","Jeu.","Ven.","Sam."],zoomOutText:"Voir tous"},function(){var n=window.AmCharts;n.AmSerialChart=n.Class({inherits:n.AmRectangularChart,construct:function(t){this.type="serial";n.AmSerialChart.base.construct.call(this,t);this.cname="AmSerialChart";this.theme=t;this.createEvents("changed");this.columnSpacing=5;this.columnSpacing3D=0;this.columnWidth=.8;this.updateScrollbar=!0;var i=new n.CategoryAxis(t);i.chart=this;this.categoryAxis=i;this.zoomOutOnDataUpdate=!0;this.mouseWheelZoomEnabled=this.mouseWheelScrollEnabled=this.rotate=this.skipZoom=!1;this.minSelectedTime=0;n.applyTheme(this,t,this.cname)},initChart:function(){var t,r,i;for(n.AmSerialChart.base.initChart.call(this),this.updateCategoryAxis(this.categoryAxis,this.rotate,"categoryAxis"),this.dataChanged&&(this.updateData(),this.dataChanged=!1,this.dispatchDataUpdated=!0),t=this.chartCursor,t&&t.updateData&&(t.updateData(),t.fullWidth&&(t.fullRectSet=this.cursorLineSet)),t=this.countColumns(),r=this.graphs,i=0;i<r.length;i++)r[i].columnCount=t;this.updateScrollbar=!0;this.drawChart();this.autoMargins&&!this.marginsUpdated&&(this.marginsUpdated=!0,this.measureMargins())},handleWheelReal:function(n,t){if(!this.wheelBusy){var i=this.categoryAxis,u=i.parseDates,r=i.minDuration(),f=i=1;this.mouseWheelZoomEnabled?t||(i=-1):t&&(i=-1);var e=this.chartData.length,o=this.lastTime,s=this.firstTime;0>n?u?(e=this.endTime-this.startTime,u=this.startTime+i*r,r=this.endTime+f*r,0<f&&0<i&&r>=o&&(r=o,u=o-e),this.zoomToDates(new Date(u),new Date(r))):(0<f&&0<i&&this.end>=e-1&&(i=f=0),u=this.start+i,r=this.end+f,this.zoomToIndexes(u,r)):u?(e=this.endTime-this.startTime,u=this.startTime-i*r,r=this.endTime-f*r,0<f&&0<i&&u<=s&&(u=s,r=s+e),this.zoomToDates(new Date(u),new Date(r))):(0<f&&0<i&&1>this.start&&(i=f=0),u=this.start-i,r=this.end-f,this.zoomToIndexes(u,r))}},validateData:function(t){this.marginsUpdated=!1;this.zoomOutOnDataUpdate&&!t&&(this.endTime=this.end=this.startTime=this.start=NaN);n.AmSerialChart.base.validateData.call(this)},drawChart:function(){var r,i,t;0<this.realWidth&&0<this.realHeight?(n.AmSerialChart.base.drawChart.call(this),r=this.chartData,n.ifArray(r)&&(t=this.chartScrollbar,t&&t.draw(),r=r.length-1,t=this.categoryAxis,t.parseDates&&!t.equalSpacing?(t=this.startTime,i=this.endTime,isNaN(t)||isNaN(i))&&(t=this.firstTime,i=this.lastTime):(t=this.start,i=this.end,isNaN(t)||isNaN(i))&&(t=0,i=r),this.endTime=this.startTime=this.end=this.start=void 0,this.zoom(t,i))):this.cleanChart();this.dispDUpd()},cleanChart:function(){n.callMethod("destroy",[this.valueAxes,this.graphs,this.categoryAxis,this.chartScrollbar,this.chartCursor])},updateCategoryAxis:function(t,i,r){t.chart=this;t.id=r;t.rotate=i;t.axisRenderer=n.RecAxis;t.guideFillRenderer=n.RecFill;t.axisItemRenderer=n.RecItem;t.setOrientation(!this.rotate);t.x=this.marginLeftReal;t.y=this.marginTopReal;t.dx=this.dx;t.dy=this.dy;t.width=this.plotAreaWidth-1;t.height=this.plotAreaHeight-1;t.viW=this.plotAreaWidth-1;t.viH=this.plotAreaHeight-1;t.viX=this.marginLeftReal;t.viY=this.marginTopReal;t.marginsChanged=!0},updateValueAxes:function(){var u,i,r,t;for(n.AmSerialChart.base.updateValueAxes.call(this),u=this.valueAxes,i=0;i<u.length;i++)r=u[i],t=this.rotate,r.rotate=t,r.setOrientation(t),t=this.categoryAxis,(!t.startOnAxis||t.parseDates)&&(r.expandMinMax=!0)},updateData:function(){this.parseData();for(var i=this.graphs,n=this.chartData,t=0;t<i.length;t++)i[t].data=n;0<n.length&&(this.firstTime=this.getStartTime(n[0].time),this.lastTime=this.getEndTime(n[n.length-1].time))},getStartTime:function(t){var i=this.categoryAxis;return n.resetDateToMin(new Date(t),i.minPeriod,1,i.firstDayOfWeek).getTime()},getEndTime:function(t){var i=n.extractPeriod(this.categoryAxis.minPeriod);return n.changeDate(new Date(t),i.period,i.count,!0).getTime()-1},updateMargins:function(){n.AmSerialChart.base.updateMargins.call(this);var t=this.chartScrollbar;t&&(this.getScrollbarPosition(t,this.rotate,this.categoryAxis.position),this.adjustMargins(t,this.rotate))},updateScrollbars:function(){n.AmSerialChart.base.updateScrollbars.call(this);this.updateChartScrollbar(this.chartScrollbar,this.rotate)},zoom:function(n,t){var i=this.categoryAxis;i.parseDates&&!i.equalSpacing?this.timeZoom(n,t):this.indexZoom(n,t);this.updateLegendValues()},timeZoom:function(t,i){var u=this.maxSelectedTime,r,f,s;if(isNaN(u)||(i!=this.endTime&&i-t>u&&(t=i-u,this.updateScrollbar=!0),t!=this.startTime&&i-t>u&&(i=t+u,this.updateScrollbar=!0)),r=this.minSelectedTime,0<r&&i-t<r&&(s=Math.round(t+(i-t)/2),r=Math.round(r/2),t=s-r,i=s+r),f=this.chartData,s=this.categoryAxis,n.ifArray(f)&&(t!=this.startTime||i!=this.endTime)){var e=s.minDuration(),r=this.firstTime,o=this.lastTime;t||(t=r,isNaN(u)||(t=o-u));i||(i=o);t>o&&(t=o);i<r&&(i=r);t<r&&(t=r);i>o&&(i=o);i<t&&(i=t+e);i-t<e/5&&(i<o?i=t+e/5:t=i-e/5);this.startTime=t;this.endTime=i;u=f.length-1;e=this.getClosestIndex(f,"time",t,!0,0,u);f=this.getClosestIndex(f,"time",i,!1,e,u);s.timeZoom(t,i);s.zoom(e,f);this.start=n.fitToBounds(e,0,u);this.end=n.fitToBounds(f,0,u);this.zoomAxesAndGraphs();this.zoomScrollbar();t!=r||i!=o?this.showZB(!0):this.showZB(!1);this.updateColumnsDepth();this.dispatchTimeZoomEvent()}},updateAfterValueZoom:function(){this.zoomAxesAndGraphs();this.zoomScrollbar();this.updateColumnsDepth()},indexZoom:function(n,t){var i=this.maxSelectedSeries,r;isNaN(i)||(t!=this.end&&t-n>i&&(n=t-i,this.updateScrollbar=!0),n!=this.start&&t-n>i&&(t=n+i,this.updateScrollbar=!0));(n!=this.start||t!=this.end)&&(r=this.chartData.length-1,isNaN(n)&&(n=0,isNaN(i)||(n=r-i)),isNaN(t)&&(t=r),t<n&&(t=n),t>r&&(t=r),n>r&&(n=r-1),0>n&&(n=0),this.start=n,this.end=t,this.categoryAxis.zoom(n,t),this.zoomAxesAndGraphs(),this.zoomScrollbar(),0!==n||t!=this.chartData.length-1?this.showZB(!0):this.showZB(!1),this.updateColumnsDepth(),this.dispatchIndexZoomEvent())},updateGraphs:function(){var r,i,t;for(n.AmSerialChart.base.updateGraphs.call(this),r=this.graphs,i=0;i<r.length;i++)t=r[i],t.columnWidthReal=this.columnWidth,t.categoryAxis=this.categoryAxis,n.isString(t.fillToGraph)&&(t.fillToGraph=this.getGraphById(t.fillToGraph))},updateColumnsDepth:function(){var t,i=this.graphs,r,u,f;for(n.remove(this.columnsSet),this.columnsArray=[],t=0;t<i.length;t++)if(r=i[t],u=r.columnsArray,u)for(f=0;f<u.length;f++)this.columnsArray.push(u[f]);if(this.columnsArray.sort(this.compareDepth),0<this.columnsArray.length){for(i=this.container.set(),this.columnSet.push(i),t=0;t<this.columnsArray.length;t++)i.push(this.columnsArray[t].column.set);r&&i.translate(r.x,r.y);this.columnsSet=i}},compareDepth:function(n,t){return n.depth>t.depth?1:-1},zoomScrollbar:function(){var n=this.chartScrollbar,t=this.categoryAxis;n&&this.updateScrollbar&&n.enabled&&n.dragger&&(n.dragger.stop(),t.parseDates&&!t.equalSpacing?n.timeZoom(this.startTime,this.endTime):n.zoom(this.start,this.end),this.updateScrollbar=!0)},updateTrendLines:function(){for(var r=this.trendLines,t,i=0;i<r.length;i++)t=r[i],t=n.processObject(t,n.TrendLine,this.theme),r[i]=t,t.chart=this,t.id||(t.id="trendLineAuto"+i+"_"+(new Date).getTime()),n.isString(t.valueAxis)&&(t.valueAxis=this.getValueAxisById(t.valueAxis)),t.valueAxis||(t.valueAxis=this.valueAxes[0]),t.categoryAxis=this.categoryAxis},zoomAxesAndGraphs:function(){if(!this.scrollbarOnly){for(var t=this.valueAxes,n=0;n<t.length;n++)t[n].zoom(this.start,this.end);for(t=this.graphs,n=0;n<t.length;n++)t[n].zoom(this.start,this.end);this.zoomTrendLines();(n=this.chartCursor)&&n.zoom&&n.zoom(this.start,this.end,this.startTime,this.endTime)}},countColumns:function(){for(var t=0,s=this.valueAxes.length,o=this.graphs.length,n,i,f=!1,r,e,u=0;u<s;u++){if(i=this.valueAxes[u],e=i.stackType,"100%"==e||"regular"==e)for(f=!1,r=0;r<o;r++)n=this.graphs[r],n.tcc=1,n.valueAxis==i&&"column"==n.type&&(!f&&n.stackable&&(t++,f=!0),(!n.stackable&&n.clustered||n.newStack)&&t++,n.columnIndex=t-1,n.clustered||(n.columnIndex=0));if("none"==e||"3d"==e){for(f=!1,r=0;r<o;r++)n=this.graphs[r],n.valueAxis==i&&"column"==n.type&&(n.clustered?(n.tcc=1,n.newStack&&(t=0),n.hidden||(n.columnIndex=t,t++)):n.hidden||(f=!0,n.tcc=1,n.columnIndex=0));f&&0===t&&(t=1)}if("3d"==e){for(i=1,u=0;u<o;u++)n=this.graphs[u],n.newStack&&i++,n.depthCount=i,n.tcc=t;t=i}}return t},parseData:function(){n.AmSerialChart.base.parseData.call(this);this.parseSerialData(this.dataProvider)},getCategoryIndexByValue:function(n){for(var i=this.chartData,r,t=0;t<i.length;t++)i[t].category==n&&(r=t);return r},handleCursorChange:function(n){this.updateLegendValues(n.index)},handleCursorZoom:function(n){this.updateScrollbar=!0;this.zoom(n.start,n.end)},handleScrollbarZoom:function(n){this.updateScrollbar=!1;this.zoom(n.start,n.end)},dispatchTimeZoomEvent:function(){var t;if(this.prevStartTime!=this.startTime||this.prevEndTime!=this.endTime){t={type:"zoomed"};t.startDate=new Date(this.startTime);t.endDate=new Date(this.endTime);t.startIndex=this.start;t.endIndex=this.end;this.startIndex=this.start;this.endIndex=this.end;this.startDate=t.startDate;this.endDate=t.endDate;this.prevStartTime=this.startTime;this.prevEndTime=this.endTime;var i=this.categoryAxis,r=n.extractPeriod(i.minPeriod).period,i=i.dateFormatsObject[r];t.startValue=n.formatDate(t.startDate,i,this);t.endValue=n.formatDate(t.endDate,i,this);t.chart=this;t.target=this;this.fire(t.type,t)}},dispatchIndexZoomEvent:function(){var i,t;(this.prevStartIndex!=this.start||this.prevEndIndex!=this.end)&&(this.startIndex=this.start,this.endIndex=this.end,i=this.chartData,!n.ifArray(i)||isNaN(this.start)||isNaN(this.end)||(t={chart:this,target:this,type:"zoomed"},t.startIndex=this.start,t.endIndex=this.end,t.startValue=i[this.start].category,t.endValue=i[this.end].category,this.categoryAxis.parseDates&&(this.startTime=i[this.start].time,this.endTime=i[this.end].time,t.startDate=new Date(this.startTime),t.endDate=new Date(this.endTime)),this.prevStartIndex=this.start,this.prevEndIndex=this.end,this.fire(t.type,t)))},updateLegendValues:function(n){for(var r=this.graphs,i,t=0;t<r.length;t++)i=r[t],i.currentDataItem=isNaN(n)?void 0:this.chartData[n].axes[i.valueAxis.id].graphs[i.id];this.legend&&this.legend.updateValues()},getClosestIndex:function(n,t,i,r,u,f){0>u&&(u=0);f>n.length-1&&(f=n.length-1);var e=u+Math.round((f-u)/2),o=n[e][t];return i==o?e:1>=f-u?r?u:Math.abs(n[u][t]-i)<Math.abs(n[f][t]-i)?u:f:i==o?e:i<o?this.getClosestIndex(n,t,i,r,u,e):this.getClosestIndex(n,t,i,r,e,f)},zoomToIndexes:function(n,t){var r,i;this.updateScrollbar=!0;r=this.chartData;r&&(i=r.length,0<i&&(0>n&&(n=0),t>i-1&&(t=i-1),i=this.categoryAxis,i.parseDates&&!i.equalSpacing?this.zoom(r[n].time,this.getEndTime(r[t].time)):this.zoom(n,t)))},zoomToDates:function(t,i){var r,u;this.updateScrollbar=!0;r=this.chartData;this.categoryAxis.equalSpacing?(u=this.getClosestIndex(r,"time",t.getTime(),!0,0,r.length),i=n.resetDateToMin(i,this.categoryAxis.minPeriod,1),r=this.getClosestIndex(r,"time",i.getTime(),!1,0,r.length),this.zoom(u,r)):this.zoom(t.getTime(),i.getTime())},zoomToCategoryValues:function(n,t){this.updateScrollbar=!0;this.zoom(this.getCategoryIndexByValue(n),this.getCategoryIndexByValue(t))},formatPeriodString:function(t,i){var o,r,u;if(i){var nt=["value","open","low","high","close"],tt="value open low high close average sum count".split(" "),ut=i.valueAxis,ft=this.chartData,p=i.numberFormatter;for(p||(p=this.nf),o=0;o<nt.length;o++){for(var s=nt[o],e=0,w=0,b,it,h,c,l,f=0,k=0,d,rt,a,v,y,g=this.start;g<=this.end;g++)if(r=ft[g],r&&(r=r.axes[ut.id].graphs[i.id])){if(r.values&&(u=r.values[s],this.rotate?(0>r.x||r.x>r.graph.height)&&(u=NaN):(0>r.x||r.x>r.graph.width)&&(u=NaN),!isNaN(u))){isNaN(b)&&(b=u);it=u;(isNaN(h)||h>u)&&(h=u);(isNaN(c)||c<u)&&(c=u);l=n.getDecimals(e);var et=n.getDecimals(u),e=e+u,e=n.roundTo(e,Math.max(l,et));w++;l=e/w}r.percents&&(r=r.percents[s],!isNaN(r))&&(isNaN(d)&&(d=r),rt=r,(isNaN(a)||a>r)&&(a=r),(isNaN(v)||v<r)&&(v=r),y=n.getDecimals(f),u=n.getDecimals(r),f+=r,f=n.roundTo(f,Math.max(y,u)),k++,y=f/k)}f={open:d,close:rt,high:v,low:a,average:y,sum:f,count:k};t=n.formatValue(t,{open:b,close:it,high:c,low:h,average:l,sum:e,count:w},tt,p,s+"\\.",this.usePrefixes,this.prefixesOfSmallNumbers,this.prefixesOfBigNumbers);t=n.formatValue(t,f,tt,this.pf,"percents\\."+s+"\\.")}}return n.cleanFromEmpty(t)},formatString:function(t,i,r){var o=i.graph,e,u,f;return-1!=t.indexOf("[[category]]")&&(e=i.serialDataItem.category,this.categoryAxis.parseDates&&(u=this.balloonDateFormat,f=this.chartCursor,f&&(u=f.categoryBalloonDateFormat),-1!=t.indexOf("[[category]]")&&(u=n.formatDate(e,u,this),-1!=u.indexOf("fff")&&(u=n.formatMilliseconds(u,e)),e=u)),t=t.replace(/\[\[category\]\]/g,String(e))),e=o.numberFormatter,e||(e=this.nf),u=i.graph.valueAxis,(f=u.duration)&&!isNaN(i.values.value)&&(f=n.formatDuration(i.values.value,f,"",u.durationUnits,u.maxInterval,e),t=t.replace(RegExp("\\[\\[value\\]\\]","g"),f)),"date"==u.type&&(u=n.formatDate(new Date(i.values.value),o.dateFormat,this),f=RegExp("\\[\\[value\\]\\]","g"),t=t.replace(f,u),u=n.formatDate(new Date(i.values.open),o.dateFormat,this),f=RegExp("\\[\\[open\\]\\]","g"),t=t.replace(f,u)),o="value open low high close total".split(" "),u=this.pf,t=n.formatValue(t,i.percents,o,u,"percents\\."),t=n.formatValue(t,i.values,o,e,"",this.usePrefixes,this.prefixesOfSmallNumbers,this.prefixesOfBigNumbers),t=n.formatValue(t,i.values,["percents"],u),-1!=t.indexOf("[[")&&(t=n.formatDataContextValue(t,i.dataContext)),-1!=t.indexOf("[[")&&i.graph.customData&&(t=n.formatDataContextValue(t,i.graph.customData)),n.AmSerialChart.base.formatString.call(this,t,i,r)},addChartScrollbar:function(t){n.callMethod("destroy",[this.chartScrollbar]);t&&(t.chart=this,this.listenTo(t,"zoomed",this.handleScrollbarZoom));this.rotate?void 0===t.width&&(t.width=t.scrollbarHeight):void 0===t.height&&(t.height=t.scrollbarHeight);this.chartScrollbar=t},removeChartScrollbar:function(){n.callMethod("destroy",[this.chartScrollbar]);this.chartScrollbar=null},handleReleaseOutside:function(t){n.AmSerialChart.base.handleReleaseOutside.call(this,t);n.callMethod("handleReleaseOutside",[this.chartScrollbar])},update:function(){n.AmSerialChart.base.update.call(this);this.chartScrollbar&&this.chartScrollbar.update&&this.chartScrollbar.update()}})}(),function(){var n=window.AmCharts;n.Cuboid=n.Class({construct:function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w){this.set=n.set();this.container=n;this.h=Math.round(i);this.w=Math.round(t);this.dx=r;this.dy=u;this.colors=f;this.alpha=e;this.bwidth=o;this.bcolor=s;this.balpha=h;this.dashLength=v;this.topRadius=p;this.pattern=y;this.rotate=a;this.bcn=w;a?0>t&&0===c&&(c=180):0>i&&270==c&&(c=90);this.gradientRotation=c;0===r&&0===u&&(this.cornerRadius=l);this.draw()},draw:function(){var pt=this.set,l,nt,st,ft,et,ht,y,ct,lt,bt,c,w,b,tt,ut,at,vt,yt;pt.clear();var r=this.container,d=r.chart,t=this.w,i=this.h,f=this.dx,e=this.dy,v=this.colors,u=this.alpha,o=this.bwidth,s=this.bcolor,h=this.balpha,it=this.gradientRotation,wt=this.cornerRadius,g=this.dashLength,ot=this.pattern,k=this.topRadius,rt=this.bcn,p=v,a=v;for("object"==typeof v&&(p=v[0],a=v[v.length-1]),bt=u,ot&&(u=0),ut=this.rotate,(0<Math.abs(f)||0<Math.abs(e))&&(isNaN(k)?(y=a,a=n.adjustLuminosity(p,-.2),a=n.adjustLuminosity(p,-.2),l=n.polygon(r,[0,f,t+f,t,0],[0,e,e,0,0],a,u,1,s,0,it),0<h&&(lt=n.line(r,[0,f,t+f],[0,e,e],s,h,o,g)),nt=n.polygon(r,[0,0,t,t,0],[0,i,i,0,0],a,u,1,s,0,it),nt.translate(f,e),0<h&&(st=n.line(r,[f,f],[e,e+i],s,h,o,g)),ft=n.polygon(r,[0,0,f,f,0],[0,i,i+e,e,0],a,u,1,s,0,it),et=n.polygon(r,[t,t,t+f,t+f,t],[0,i,i+e,e,0],a,u,1,s,0,it),0<h&&(ht=n.line(r,[t,t+f,t+f,t],[0,e,i+e,i],s,h,o,g)),a=n.adjustLuminosity(y,.2),y=n.polygon(r,[0,f,t+f,t,0],[i,i+e,i+e,i,i],a,u,1,s,0,it),0<h&&(ct=n.line(r,[0,f,t+f],[i,i+e,i+e],s,h,o,g))):(ut?(at=i/2,a=f/2,yt=i/2,vt=t+f/2,w=Math.abs(i/2),c=Math.abs(f/2)):(a=t/2,at=e/2,vt=t/2,yt=i+e/2+1,c=Math.abs(t/2),w=Math.abs(e/2)),b=c*k,tt=w*k,.1<c&&.1<c&&(l=n.circle(r,c,p,u,o,s,h,!1,w),l.translate(a,at)),.1<b&&.1<b&&(y=n.circle(r,b,n.adjustLuminosity(p,.5),u,o,s,h,!1,tt),y.translate(vt,yt)))),u=bt,1>Math.abs(i)&&(i=0),1>Math.abs(t)&&(t=0),!isNaN(k)&&(0<Math.abs(f)||0<Math.abs(e))?(v=[p],v={fill:v,stroke:s,"stroke-width":o,"stroke-opacity":h,"fill-opacity":u},ut?(u="M0,0 L"+t+","+(i/2-i/2*k),o=" B",0<t&&(o=" A"),n.VML?(u+=o+Math.round(t-b)+","+Math.round(i/2-tt)+","+Math.round(t+b)+","+Math.round(i/2+tt)+","+t+",0,"+t+","+i,u=u+(" L0,"+i)+(o+Math.round(-c)+","+Math.round(i/2-w)+","+Math.round(c)+","+Math.round(i/2+w)+",0,"+i+",0,0")):(u+="A"+b+","+tt+",0,0,0,"+t+","+(i-i/2*(1-k))+"L0,"+i,u+="A"+c+","+w+",0,0,1,0,0"),c=90):(o=t/2-t/2*k,u="M0,0 L"+o+","+i,n.VML?(u="M0,0 L"+o+","+i,o=" B",0>i&&(o=" A"),u+=o+Math.round(t/2-b)+","+Math.round(i-tt)+","+Math.round(t/2+b)+","+Math.round(i+tt)+",0,"+i+","+t+","+i,u+=" L"+t+",0",u+=o+Math.round(t/2+c)+","+Math.round(w)+","+Math.round(t/2-c)+","+Math.round(-w)+","+t+",0,0,0"):(u+="A"+b+","+tt+",0,0,0,"+(t-t/2*(1-k))+","+i+"L"+t+",0",u+="A"+c+","+w+",0,0,1,0,0"),c=180),r=r.path(u).attr(v),r.gradient("linearGradient",[p,n.adjustLuminosity(p,-.3),n.adjustLuminosity(p,-.3),p],c),ut?r.translate(f/2,0):r.translate(0,e/2)):r=0===i?n.line(r,[0,t],[0,0],s,h,o,g):0===t?n.line(r,[0,0],[0,i],s,h,o,g):0<wt?n.rect(r,t,i,v,u,o,s,h,wt,it,g):n.polygon(r,[0,0,t,t,0],[0,i,i,0,0],v,u,o,s,h,it,!1,g),t=isNaN(k)?0>i?[l,lt,nt,st,ft,et,ht,y,ct,r]:[y,ct,nt,st,ft,et,l,lt,ht,r]:ut?0<t?[l,r,y]:[y,r,l]:0>i?[l,r,y]:[y,r,l],n.setCN(d,r,rt+"front"),n.setCN(d,nt,rt+"back"),n.setCN(d,y,rt+"top"),n.setCN(d,l,rt+"bottom"),n.setCN(d,ft,rt+"left"),n.setCN(d,et,rt+"right"),l=0;l<t.length;l++)(nt=t[l])&&(pt.push(nt),n.setCN(d,nt,rt+"element"));ot&&r.pattern(ot,NaN,d.path)},width:function(n){isNaN(n)&&(n=0);this.w=Math.round(n);this.draw()},height:function(n){isNaN(n)&&(n=0);this.h=Math.round(n);this.draw()},animateHeight:function(t,i){var r=this;r.easing=i;r.totalFrames=Math.round(1e3*t/n.updateRate);r.rh=r.h;r.frame=0;r.height(1);setTimeout(function(){r.updateHeight.call(r)},n.updateRate)},updateHeight:function(){var t=this,i;t.frame++;i=t.totalFrames;t.frame<=i&&(i=t.easing(0,t.frame,1,t.rh-1,i),t.height(i),setTimeout(function(){t.updateHeight.call(t)},n.updateRate))},animateWidth:function(t,i){var r=this;r.easing=i;r.totalFrames=Math.round(1e3*t/n.updateRate);r.rw=r.w;r.frame=0;r.width(1);setTimeout(function(){r.updateWidth.call(r)},n.updateRate)},updateWidth:function(){var t=this,i;t.frame++;i=t.totalFrames;t.frame<=i&&(i=t.easing(0,t.frame,1,t.rw-1,i),t.width(i),setTimeout(function(){t.updateWidth.call(t)},n.updateRate))}})}(),function(){var n=window.AmCharts;n.CategoryAxis=n.Class({inherits:n.AxisBase,construct:function(t){this.cname="CategoryAxis";n.CategoryAxis.base.construct.call(this,t);this.minPeriod="DD";this.equalSpacing=this.parseDates=!1;this.position="bottom";this.startOnAxis=!1;this.firstDayOfWeek=1;this.gridPosition="middle";this.markPeriodChange=this.boldPeriodBeginning=!0;this.safeDistance=30;this.centerLabelOnFullPeriod=!0;n.applyTheme(this,t,this.cname)},draw:function(){var p,t,s,g;if(n.CategoryAxis.base.draw.call(this),this.generateDFObject(),p=this.chart.chartData,this.data=p,this.labelRotationR=this.labelRotation,n.ifArray(p)){s=this.chart;"scrollbar"!=this.id?(n.setCN(s,this.set,"category-axis"),n.setCN(s,this.labelsSet,"category-axis"),n.setCN(s,this.axisLine.axisSet,"category-axis")):this.bcn=this.id+"-";var l=this.start,w=this.labelFrequency,b=0,h=this.end-l+1,f=this.gridCountR,r=this.showFirstLabel,k=this.showLastLabel,y,e,i="",i=n.extractPeriod(this.minPeriod),a=n.getPeriodDuration(i.period,i.count),d,c,o,u;d=this.rotate;y=this.firstDayOfWeek;e=this.boldPeriodBeginning;t=n.resetDateToMin(new Date(p[p.length-1].time+1.05*a),this.minPeriod,1,y).getTime();this.firstTime=s.firstTime;this.endTime>t&&(this.endTime=t);u=this.minorGridEnabled;var tt=this.gridAlpha,v,nt=0,it=0;if(this.widthField)for(t=0;t<this.data.length;t++)(v=this.data[t])&&(g=Number(this.data[t].dataContext[this.widthField]),isNaN(g)||(nt+=g,v.widthValue=g));if(this.parseDates&&!this.equalSpacing)this.lastTime=p[p.length-1].time,this.maxTime=n.resetDateToMin(new Date(this.lastTime+1.05*a),this.minPeriod,1,y).getTime(),this.timeDifference=this.endTime-this.startTime,this.parseDatesDraw();else if(this.parseDates){if(this.parseDates&&this.equalSpacing){if(b=this.start,this.startTime=this.data[this.start].time,this.endTime=this.data[this.end].time,this.timeDifference=this.endTime-this.startTime,t=this.choosePeriod(0),w=t.period,d=t.count,t=n.getPeriodDuration(w,d),t<a&&(w=i.period,d=i.count,t=a),c=w,"WW"==c&&(c="DD"),this.stepWidth=this.getStepWidth(h),f=Math.ceil(this.timeDifference/t)+1,a=n.resetDateToMin(new Date(this.startTime-t),w,d,y).getTime(),this.cellWidth=this.getStepWidth(h),i=Math.round(a/t),l=-1,i/2==Math.round(i/2)&&(l=-2,a-=t),i=this.start,i/2==Math.round(i/2)&&i--,0>i&&(i=0),tt=this.end+2,tt>=this.data.length&&(tt=this.data.length),it=!1,it=!r,this.previousPos=-1e3,20<this.labelRotationR&&(this.safeDistance=5),v=i,this.data[i].time!=n.resetDateToMin(new Date(this.data[i].time),w,d,y).getTime())for(y=0,p=a,t=i;t<tt;t++)h=this.data[t].time,this.checkPeriodChange(w,d,h,p)&&(y++,2<=y&&(v=t,t=tt),p=h);if(u&&1<d&&(h=this.chooseMinorFrequency(d),n.getPeriodDuration(w,h)),0<this.gridCountR)for(t=i;t<tt;t++)(h=this.data[t].time,this.checkPeriodChange(w,d,h,a)&&t>=v)&&(y=this.getCoordinate(t-this.start),u=!1,this.nextPeriod[c]&&(u=this.checkPeriodChange(this.nextPeriod[c],1,h,a,c)),a=!1,u&&this.markPeriodChange?(u=this.dateFormatsObject[this.nextPeriod[c]],a=!0):u=this.dateFormatsObject[c],i=n.formatDate(new Date(h),u,s),(t!=l||r)&&(t!=f||k)||(i=" "),it?it=!1:(e||(a=!1),y-this.previousPos>this.safeDistance*Math.cos(this.labelRotationR*Math.PI/180)&&(this.labelFunction&&(i=this.labelFunction(i,new Date(h),this,w,d,o)),this.boldLabels&&(a=!0),o=new this.axisItemRenderer(this,y,i,void 0,void 0,void 0,void 0,a),u=o.graphics(),this.pushAxisItem(o),u=u.getBBox().width,n.isModern||(u-=y),this.previousPos=y+u)),o=a=h)}}else if(this.cellWidth=this.getStepWidth(h),h<f&&(f=h),b+=this.start,this.stepWidth=this.getStepWidth(h),0<f)for(f=Math.floor(h/f),h=this.chooseMinorFrequency(f),i=b,i/2==Math.round(i/2)&&i--,0>i&&(i=0),v=0,this.end-i+1>=this.autoRotateCount&&(this.labelRotationR=this.autoRotateAngle),t=i;t<=this.end+2;t++){if(e=!1,0<=t&&t<this.data.length?(c=this.data[t],i=c.category,e=c.forceShow):i="",u&&!isNaN(h))if(t/h==Math.round(t/h)||e)t/f==Math.round(t/f)||e||(this.gridAlpha=this.minorGridAlpha,i=void 0);else continue;else if(t/f!=Math.round(t/f)&&!e)continue;y=this.getCoordinate(t-b);o=0;"start"==this.gridPosition&&(y-=this.cellWidth/2,o=this.cellWidth/2);e=!0;p=o;"start"==this.tickPosition&&(p=0,e=!1,o=0);(t!=l||r)&&(t!=this.end||k)||(i=void 0);Math.round(v/w)!=v/w&&(i=void 0);v++;g=this.cellWidth;d&&(g=NaN,this.ignoreAxisWidth||!s.autoMargins)&&(g="right"==this.position?s.marginRight:s.marginLeft,g-=this.tickLength+10);this.labelFunction&&c&&(i=this.labelFunction(i,c,this));i=n.fixBrakes(i);a=!1;this.boldLabels&&(a=!0);t>this.end&&"start"==this.tickPosition&&(i=" ");this.rotate&&this.inside&&(o=-2);isNaN(c.widthValue)||(c.percentWidthValue=c.widthValue/nt*100,g=this.rotate?this.height*c.widthValue/nt:this.width*c.widthValue/nt,y=it,it+=g,o=g/2);o=new this.axisItemRenderer(this,y,i,e,g,o,void 0,a,p,!1,c.labelColor,c.className);o.serialDataItem=c;this.pushAxisItem(o);this.gridAlpha=tt}for(t=0;t<this.data.length;t++)(v=this.data[t])&&(this.parseDates&&!this.equalSpacing?(r=v.time,k=this.cellWidth,"MM"==this.minPeriod&&(k=864e5*n.daysInMonth(new Date(r))*this.stepWidth,v.cellWidth=k),r=Math.round((r-this.startTime)*this.stepWidth+k/2)):r=this.getCoordinate(t-b),isNaN(v.widthValue)||(v.percentWidthValue=v.widthValue/nt*100,r=this.rotate?this.height*v.widthValue/nt:this.width*v.widthValue/nt),v.x[this.id]=r);for(nt=this.guides.length,t=0;t<nt;t++)r=this.guides[t],e=f=f=u=l=NaN,k=r.above,r.toCategory&&(f=s.getCategoryIndexByValue(r.toCategory),isNaN(f)||(l=this.getCoordinate(f-b),r.expand&&(l+=this.cellWidth/2),o=new this.axisItemRenderer(this,l,"",!0,NaN,NaN,r),this.pushAxisItem(o,k))),r.category&&(e=s.getCategoryIndexByValue(r.category),isNaN(e)||(u=this.getCoordinate(e-b),r.expand&&(u-=this.cellWidth/2),f=(l-u)/2,o=new this.axisItemRenderer(this,u,r.label,!0,NaN,f,r),this.pushAxisItem(o,k))),e=s.dataDateFormat,r.toDate&&(r.toDate=n.getDate(r.toDate,e),this.equalSpacing?(f=s.getClosestIndex(this.data,"time",r.toDate.getTime(),!1,0,this.data.length-1),isNaN(f)||(l=this.getCoordinate(f-b))):l=(r.toDate.getTime()-this.startTime)*this.stepWidth,o=new this.axisItemRenderer(this,l,"",!0,NaN,NaN,r),this.pushAxisItem(o,k)),r.date&&(r.date=n.getDate(r.date,e),this.equalSpacing?(e=s.getClosestIndex(this.data,"time",r.date.getTime(),!1,0,this.data.length-1),isNaN(e)||(u=this.getCoordinate(e-b))):u=(r.date.getTime()-this.startTime)*this.stepWidth,f=(l-u)/2,e=!0,r.toDate&&(e=!1),o="H"==this.orientation?new this.axisItemRenderer(this,u,r.label,e,2*f,NaN,r):new this.axisItemRenderer(this,u,r.label,!1,NaN,f,r),this.pushAxisItem(o,k)),(0<l||0<u)&&(l<this.width||u<this.width)&&(l=new this.guideFillRenderer(this,u,l,r),u=l.graphics(),this.pushAxisItem(l,k),r.graphics=u,u.index=t,r.balloonText&&this.addEventListeners(u,r))}this.axisCreated=!0;s=this.x;b=this.y;this.set.translate(s,b);this.labelsSet.translate(s,b);this.labelsSet.show();this.positionTitle();(s=this.axisLine.set)&&s.toFront();s=this.getBBox().height;2<s-this.previousHeight&&this.autoWrap&&!this.parseDates&&(this.axisCreated=this.chart.marginsUpdated=!1);this.previousHeight=s},xToIndex:function(t){var r=this.data,i=this.chart,e=i.rotate,f=this.stepWidth,u;return this.parseDates&&!this.equalSpacing?(t=this.startTime+Math.round(t/f)-this.minDuration()/2,i=i.getClosestIndex(r,"time",t,!1,this.start,this.end+1)):(this.startOnAxis||(t-=f/2),i=this.start+Math.round(t/f)),i=n.fitToBounds(i,0,r.length-1),r[i]&&(u=r[i].x[this.id]),e?u>this.height+1&&i--:u>this.width+1&&i--,0>u&&i++,n.fitToBounds(i,0,r.length-1)},dateToCoordinate:function(n){return this.parseDates&&!this.equalSpacing?(n.getTime()-this.startTime)*this.stepWidth:this.parseDates&&this.equalSpacing?(n=this.chart.getClosestIndex(this.data,"time",n.getTime(),!1,0,this.data.length-1),this.getCoordinate(n-this.start)):NaN},categoryToCoordinate:function(n){return this.chart?(n=this.chart.getCategoryIndexByValue(n),this.getCoordinate(n-this.start)):NaN},coordinateToDate:function(n){return this.equalSpacing?(n=this.xToIndex(n),new Date(this.data[n].time)):new Date(this.startTime+n/this.stepWidth)},getCoordinate:function(n){return n*=this.stepWidth,this.startOnAxis||(n+=this.stepWidth/2),Math.round(n)}})}(),function(){var n=window.AmCharts;n.AmPieChart=n.Class({inherits:n.AmSlicedChart,construct:function(t){this.type="pie";n.AmPieChart.base.construct.call(this,t);this.cname="AmPieChart";this.pieBrightnessStep=30;this.minRadius=10;this.depth3D=0;this.startAngle=90;this.angle=this.innerRadius=0;this.startRadius="500%";this.pullOutRadius="20%";this.labelRadius=20;this.labelText="[[title]]: [[percents]]%";this.balloonText="[[title]]: [[percents]]% ([[value]])\n[[description]]";this.previousScale=1;this.adjustPrecision=!1;n.applyTheme(this,t,this.cname)},drawChart:function(){var v,f,rt,u,y,r,a,k;if(n.AmPieChart.base.drawChart.call(this),v=this.chartData,n.ifArray(v)){if(0<this.realWidth&&0<this.realHeight){n.VML&&(this.startAlpha=1);var ut=this.startDuration,it=this.container,h=this.updateWidth();this.realWidth=h;f=this.updateHeight();this.realHeight=f;var e=n.toCoordinate,u=e(this.marginLeft,h),t=e(this.marginRight,h),d=e(this.marginTop,f)+this.getTitleHeight(),o=e(this.marginBottom,f),g,nt,i,b=n.toNumber(this.labelRadius),c=this.measureMaxLabel();for(c>this.maxLabelWidth&&(c=this.maxLabelWidth),this.labelText&&this.labelsEnabled||(b=c=0),g=void 0===this.pieX?(h-u-t)/2+u:e(this.pieX,this.realWidth),nt=void 0===this.pieY?(f-d-o)/2+d:e(this.pieY,f),i=e(this.radius,h,f),i||(h=0<=b?h-u-t-2*c:h-u-t,f=f-d-o,i=Math.min(h,f),f<h&&(i/=1-this.angle/90,i>h&&(i=h)),f=n.toCoordinate(this.pullOutRadius,i),i=(0<=b?i-1.8*(b+f):i-1.8*f)/2),i<this.minRadius&&(i=this.minRadius),f=e(this.pullOutRadius,i),d=n.toCoordinate(this.startRadius,i),e=e(this.innerRadius,i),e>=i&&(e=i-1),o=n.fitToBounds(this.startAngle,0,360),0<this.depth3D&&(o=270<=o?270:90),o-=90,360<o&&(o-=360),h=i-i*this.angle/90,u=c=0;u<v.length;u++)t=v[u],!0!==t.hidden&&(c+=n.roundTo(t.percents,this.pf.precision));for(c=n.roundTo(c,this.pf.precision),this.tempPrec=NaN,this.adjustPrecision&&100!=c&&(this.tempPrec=this.pf.precision+1),u=0;u<v.length;u++)if(t=v[u],!0!==t.hidden&&(this.showZeroSlices||0!==t.percents)){var l=360*t.percents/100,c=Math.sin((o+l/2)/180*Math.PI),tt=h/i*-Math.cos((o+l/2)/180*Math.PI),s=this.outlineColor;if(s||(s=t.color),y=this.alpha,isNaN(t.alpha)||(y=t.alpha),s={fill:t.color,stroke:s,"stroke-width":this.outlineThickness,"stroke-opacity":this.outlineAlpha,"fill-opacity":y},t.url&&(s.cursor="pointer"),s=n.wedge(it,g,nt,o,l,i,h,e,this.depth3D,s,this.gradientRatio,t.pattern,this.path),n.setCN(this,s,"pie-item"),n.setCN(this,s.wedge,"pie-slice"),n.setCN(this,s,t.className,!0),this.addEventListeners(s,t),t.startAngle=o,v[u].wedge=s,0<ut&&(this.chartCreated||s.setAttr("opacity",this.startAlpha)),t.ix=c,t.iy=tt,t.wedge=s,t.index=u,t.label=null,y=it.set(),this.labelsEnabled&&this.labelText&&t.percents>=this.hideLabelsPercent){r=o+l/2;0>r&&(r+=360);360<r&&(r-=360);a=b;isNaN(t.labelRadius)||(a=t.labelRadius,0>a&&(t.skipTick=!0));var l=g+c*(i+a),ft=nt+tt*(i+a),w,p=0;isNaN(rt)&&350<r&&1<v.length-u&&(rt=u-1+Math.floor((v.length-u)/2));0<=a?(90>=r&&0<=r?(k=0,w="start",p=8):90<=r&&180>r?(k=1,w="start",p=8):180<=r&&270>r?(k=2,w="end",p=-8):270<=r&&357>=r?(k=3,w="end",p=-8):357<=r&&(u>rt?(k=0,w="start",p=8):(k=3,w="end",p=-8)),t.labelQuarter=k):w="middle";r=this.formatString(this.labelText,t);(a=this.labelFunction)&&(r=a(t,r));a=t.labelColor;a||(a=this.color);""!==r&&(r=n.wrappedText(it,r,a,this.fontFamily,this.fontSize,w,!1,this.maxLabelWidth),n.setCN(this,r,"pie-label"),n.setCN(this,r,t.className,!0),r.translate(l+1.5*p,ft),r.node.style.pointerEvents="none",t.ty=ft,t.textX=l+1.5*p,y.push(r),this.axesSet.push(y),t.labelSet=y,t.label=r);t.tx=l;t.tx2=l+p;t.tx0=g+c*i;t.ty0=nt+tt*i}l=e+(i-e)/2;t.pulled&&(l+=this.pullOutRadiusReal);t.balloonX=c*l+g;t.balloonY=tt*l+nt;t.startX=Math.round(c*d);t.startY=Math.round(tt*d);t.pullX=Math.round(c*f);t.pullY=Math.round(tt*f);this.graphsSet.push(s);(0===t.alpha||0<ut&&!this.chartCreated)&&(s.hide(),y&&y.hide());o+=360*t.percents/100;360<o&&(o-=360)}0<b&&this.arrangeLabels();this.pieXReal=g;this.pieYReal=nt;this.radiusReal=i;this.innerRadiusReal=e;0<b&&this.drawTicks();this.initialStart();this.setDepths()}(v=this.legend)&&v.invalidateSize()}else this.cleanChart();this.dispDUpd()},setDepths:function(){for(var i=this.chartData,t=0;t<i.length;t++){var n=i[t],r=n.wedge,n=n.startAngle;0<=n&&180>n?r.toFront():180<=n&&r.toBack()}},arrangeLabels:function(){for(var i=this.chartData,r=i.length,t,n=r-1;0<=n;n--)t=i[n],0!==t.labelQuarter||t.hidden||this.checkOverlapping(n,t,0,!0,0);for(n=0;n<r;n++)t=i[n],1!=t.labelQuarter||t.hidden||this.checkOverlapping(n,t,1,!1,0);for(n=r-1;0<=n;n--)t=i[n],2!=t.labelQuarter||t.hidden||this.checkOverlapping(n,t,2,!0,0);for(n=0;n<r;n++)t=i[n],3!=t.labelQuarter||t.hidden||this.checkOverlapping(n,t,3,!1,0)},checkOverlapping:function(n,t,i,r,u){var e,f,o=this.chartData,s=o.length,h=t.label;if(h){if(!0===r)for(f=n+1;f<s;f++)o[f].labelQuarter==i&&(e=this.checkOverlappingReal(t,o[f],i))&&(f=s);else for(f=n-1;0<=f;f--)o[f].labelQuarter==i&&(e=this.checkOverlappingReal(t,o[f],i))&&(f=0);!0===e&&100>u&&isNaN(t.labelRadius)&&(e=t.ty+3*t.iy,t.ty=e,h.translate(t.textX,e),this.checkOverlapping(n,t,i,r,u+1))}},checkOverlappingReal:function(t,i,r){var e=!1,f=t.label,u=i.label;return t.labelQuarter!=r||t.hidden||i.hidden||!u||(f=f.getBBox(),r={},r.width=f.width,r.height=f.height,r.y=t.ty,r.x=t.tx,t=u.getBBox(),u={},u.width=t.width,u.height=t.height,u.y=i.ty,u.x=i.tx,n.hitTest(r,u)&&(e=!0)),e}})}();AmCharts.translations["export"]||(AmCharts.translations["export"]={});AmCharts.translations["export"].en||(AmCharts.translations["export"].en={"fallback.save.text":"CTRL + C to copy the data into the clipboard.","fallback.save.image":"Rightclick -> Save picture as... to save the image.","capturing.delayed.menu.label":"{{duration}}","capturing.delayed.menu.title":"Click to cancel","menu.label.print":"Print","menu.label.undo":"Undo","menu.label.redo":"Redo","menu.label.cancel":"Cancel","menu.label.save.image":"Download as ...","menu.label.save.data":"Save as ...","menu.label.draw":"Annotate ...","menu.label.draw.change":"Change ...","menu.label.draw.add":"Add ...","menu.label.draw.shapes":"Shape ...","menu.label.draw.colors":"Color ...","menu.label.draw.widths":"Size ...","menu.label.draw.opacities":"Opacity ...","menu.label.draw.text":"Text","menu.label.draw.modes":"Mode ...","menu.label.draw.modes.pencil":"Pencil","menu.label.draw.modes.line":"Line","menu.label.draw.modes.arrow":"Arrow","label.saved.from":"Saved from: "}),function(){AmCharts["export"]=function(n,t){var i={name:"export",version:"1.4.24",libs:{async:!0,autoLoad:!0,reload:!1,resources:["fabric.js/fabric.min.js","FileSaver.js/FileSaver.min.js","jszip/jszip.min.js","xlsx/xlsx.min.js",{"pdfmake/pdfmake.min.js":["pdfmake/vfs_fonts.js"]}],namespaces:{"pdfmake.js":"pdfMake","jszip.js":"JSZip","xlsx.js":"XLSX","fabric.js":"fabric","FileSaver.js":"saveAs"}},config:{},setup:{chart:n,hasBlob:!1,wrapper:!1},drawing:{enabled:!1,undos:[],redos:[],buffer:{position:{x1:0,y1:0,x2:0,y2:0,xD:0,yD:0}},handler:{undo:function(n,t){var r=i.drawing.undos.pop(),u;r&&(r.selectable=!0,i.drawing.redos.push(r),"added"==r.action&&i.setup.fabric.remove(r.target),u=JSON.parse(r.state),r.target.set(u),r.target instanceof fabric.Group&&i.drawing.handler.change({color:u.cfg.color,width:u.cfg.width,opacity:u.cfg.opacity},!0,r.target),i.setup.fabric.renderAll(),r.state!=r.target.recentState||t||i.drawing.handler.undo(r,!0))},redo:function(){var n=i.drawing.redos.pop(),t;n&&(n.selectable=!0,i.drawing.undos.push(n),"added"==n.action&&i.setup.fabric.add(n.target),t=JSON.parse(n.state),n.target.recentState=n.state,n.target.set(t),n.target instanceof fabric.Group&&i.drawing.handler.change({color:t.cfg.color,width:t.cfg.width,opacity:t.cfg.opacity},!0,n.target),i.setup.fabric.renderAll(),"addified"==n.action&&i.drawing.handler.redo())},done:function(){i.drawing.buffer.enabled=!1;i.drawing.undos=[];i.drawing.redos=[];i.createMenu(i.config.menu);i.setup.fabric.deactivateAll();i.setup.wrapper&&(i.setup.chart.containerDiv.removeChild(i.setup.wrapper),i.setup.wrapper=!1)},add:function(n){var t=i.deepMerge({top:i.setup.fabric.height/2,left:i.setup.fabric.width/2},n||{}),r=-1!=t.url.indexOf(".svg")?fabric.loadSVGFromURL:fabric.Image.fromURL;r(t.url,function(n,r){var u=void 0!==r?fabric.util.groupSVGElements(n,r):n,f=!1;(u.height>i.setup.fabric.height||u.width>i.setup.fabric.width)&&(f=i.setup.fabric.height/2/u.height);t.top>i.setup.fabric.height&&(t.top=i.setup.fabric.height/2);t.left>i.setup.fabric.width&&(t.left=i.setup.fabric.width/2);u.set({originX:"center",originY:"center",top:t.top,left:t.left,width:f?u.width*f:u.width,height:f?u.height*f:u.height,fill:i.drawing.color});i.setup.fabric.add(u)})},change:function(n,t,r){var s,f,h,u=i.deepMerge({},n||{}),o=r||i.drawing.buffer.target,e=o?o._objects?o._objects:[o]:null;if(u.mode&&(i.drawing.mode=u.mode),u.width&&(i.drawing.width=u.width,i.drawing.fontSize=3*u.width),u.fontSize&&(i.drawing.fontSize=u.fontSize),u.color&&(i.drawing.color=u.color),u.opacity&&(i.drawing.opacity=u.opacity),h=new fabric.Color(i.drawing.color).getSource(),h.pop(),h.push(i.drawing.opacity),i.drawing.color="rgba("+h.join()+")",i.setup.fabric.freeDrawingBrush.color=i.drawing.color,i.setup.fabric.freeDrawingBrush.width=i.drawing.width,o){for(s=JSON.parse(o.recentState).cfg,s&&(u.color=u.color||s.color,u.width=u.width||s.width,u.opacity=u.opacity||s.opacity,u.fontSize=u.fontSize||3*u.width,h=new fabric.Color(u.color).getSource(),h.pop(),h.push(u.opacity),u.color="rgba("+h.join()+")"),f=0;f<e.length;f++)e[f]instanceof fabric.Text||e[f]instanceof fabric.PathGroup||e[f]instanceof fabric.Triangle?((u.color||u.opacity)&&e[f].set({fill:u.color}),u.fontSize&&e[f].set({fontSize:u.fontSize})):(e[f]instanceof fabric.Path||e[f]instanceof fabric.Line)&&(o instanceof fabric.Group?(u.color||u.opacity)&&e[f].set({stroke:u.color}):((u.color||u.opacity)&&e[f].set({stroke:u.color}),u.width&&e[f].set({strokeWidth:u.width})));t||(s=JSON.stringify(i.deepMerge(o.saveState().originalState,{cfg:{color:u.color,width:u.width,opacity:u.opacity}})),o.recentState=s,i.drawing.redos=[],i.drawing.undos.push({action:"modified",target:o,state:s}));i.setup.fabric.renderAll()}},text:function(n){var r=i.deepMerge({text:i.i18l("menu.label.draw.text"),top:i.setup.fabric.height/2,left:i.setup.fabric.width/2,fontSize:i.drawing.fontSize,fontFamily:i.setup.chart.fontFamily||"Verdana",fill:i.drawing.color},n||{}),t;return r.click=function(){},t=new fabric.IText(r.text,r),i.setup.fabric.add(t),i.setup.fabric.setActiveObject(t),t.selectAll(),t.enterEditing(),t},line:function(n){var r,s,f,e,t=i.deepMerge({x1:i.setup.fabric.width/2-i.setup.fabric.width/10,x2:i.setup.fabric.width/2+i.setup.fabric.width/10,y1:i.setup.fabric.height/2,y2:i.setup.fabric.height/2,angle:90,strokeLineCap:i.drawing.lineCap,arrow:i.drawing.arrow,color:i.drawing.color,width:i.drawing.width,group:[]},n||{}),o=new fabric.Line([t.x1,t.y1,t.x2,t.y2],{stroke:t.color,strokeWidth:t.width,strokeLineCap:t.strokeLineCap}),u;if(t.group.push(o),t.arrow&&(t.angle=t.angle?t.angle:i.getAngle(t.x1,t.y1,t.x2,t.y2),"start"==t.arrow?(f=t.y1+t.width/2,e=t.x1+t.width/2):"middle"==t.arrow?(f=t.y2+t.width/2-(t.y2-t.y1)/2,e=t.x2+t.width/2-(t.x2-t.x1)/2):(f=t.y2+t.width/2,e=t.x2+t.width/2),s=new fabric.Triangle({top:f,left:e,fill:t.color,height:7*t.width,width:7*t.width,angle:t.angle,originX:"center",originY:"bottom"}),t.group.push(s)),"config"!=t.action)return t.arrow?(u=new fabric.Group(t.group),u.set({cfg:t,fill:t.color,action:t.action,selectable:!0,known:"change"==t.action}),"change"==t.action&&i.setup.fabric.setActiveObject(u),i.setup.fabric.add(u),u):(i.setup.fabric.add(o),o);for(r=0;r<t.group.length;r++)t.group[r].noUndo=!0,i.setup.fabric.add(t.group[r]);return t}}},defaults:{position:"top-right",fileName:"amCharts",action:"download",overflow:!0,path:(n.path||"")+"plugins/export/",formats:{JPG:{mimeType:"image/jpg",extension:"jpg",capture:!0},PNG:{mimeType:"image/png",extension:"png",capture:!0},SVG:{mimeType:"text/xml",extension:"svg",capture:!0},PDF:{mimeType:"application/pdf",extension:"pdf",capture:!0},CSV:{mimeType:"text/plain",extension:"csv"},JSON:{mimeType:"text/plain",extension:"json"},XLSX:{mimeType:"application/octet-stream",extension:"xlsx"}},fabric:{backgroundColor:"#FFFFFF",removeImages:!0,forceRemoveImages:!1,selection:!1,drawing:{enabled:!0,arrow:"end",lineCap:"butt",mode:"pencil",modes:["pencil","line","arrow"],color:"#000000",colors:["#000000","#FFFFFF","#FF0000","#00FF00","#0000FF"],shapes:["11.svg","14.svg","16.svg","17.svg","20.svg","27.svg"],width:1,fontSize:11,widths:[1,5,10,15],opacity:1,opacities:[1,.8,.6,.4,.2],menu:void 0,autoClose:!0},border:{fill:"",fillOpacity:0,stroke:"#000000",strokeWidth:1,strokeOpacity:1}},pdfMake:{images:{},pageOrientation:"portrait",pageMargins:40,pageOrigin:!0,pageSize:"A4",pageSizes:{"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]}},menu:void 0,divId:null,menuReviver:null,menuWalker:null,fallback:!0,keyListener:!0,fileListener:!0},i18l:function(n,t){var r=t?langugage:i.setup.chart.language?i.setup.chart.language:"en",u=AmCharts.translations[i.name][r]||AmCharts.translations[i.name].en;return u[n]||n},download:function(n,t,r){if(window.saveAs&&i.setup.hasBlob)i.toBlob({data:n,type:t},function(n){saveAs(n,r)});else if(i.config.fallback&&"text/plain"==t){var u=document.createElement("div"),f=document.createElement("div"),e=document.createElement("textarea");f.innerHTML=i.i18l("fallback.save.text");u.appendChild(f);u.appendChild(e);f.setAttribute("class","amcharts-export-fallback-message");u.setAttribute("class","amcharts-export-fallback");i.setup.chart.containerDiv.appendChild(u);e.setAttribute("readonly","");e.value=n;e.focus();e.select();i.createMenu([{"class":"export-main export-close",label:"Done",click:function(){i.createMenu(i.config.menu);i.setup.chart.containerDiv.removeChild(u)}}])}else{if(!i.config.fallback||"image"!=t.split("/")[0])throw new Error("Unable to create file. Ensure saveAs (FileSaver.js) is supported.");var u=document.createElement("div"),f=document.createElement("div"),o=i.toImage({data:n});f.innerHTML=i.i18l("fallback.save.image");u.appendChild(f);u.appendChild(o);f.setAttribute("class","amcharts-export-fallback-message");u.setAttribute("class","amcharts-export-fallback");i.setup.chart.containerDiv.appendChild(u);i.createMenu([{"class":"export-main export-close",label:"Done",click:function(){i.createMenu(i.config.menu);i.setup.chart.containerDiv.removeChild(u)}}])}return n},loadResource:function(n,t){var r,o,u,f,e,c,s=-1!=n.indexOf("//")?n:[i.libs.path,n].join(""),h=function(){if(t)for(r=0;r<t.length;r++)i.loadResource(t[r])};for(-1!=n.indexOf(".js")?(u=document.createElement("script"),u.setAttribute("type","text/javascript"),u.setAttribute("src",s),i.libs.async&&u.setAttribute("async","")):-1!=n.indexOf(".css")&&(u=document.createElement("link"),u.setAttribute("type","text/css"),u.setAttribute("rel","stylesheet"),u.setAttribute("href",s)),r=0;r<document.head.childNodes.length;r++)if(f=document.head.childNodes[r],e=f?f.src||f.href:!1,c=f?f.tagName:!1,f&&e&&-1!=e.indexOf(n)){i.libs.reload&&document.head.removeChild(f);o=!0;break}for(r in i.libs.namespaces){var l=i.libs.namespaces[r],e=n.toLowerCase(),f=r.toLowerCase();if(-1!=e.indexOf(f)&&void 0!==window[l]){o=!0;break}}(!o||i.libs.reload)&&(u.addEventListener("load",h),document.head.appendChild(u),i.listenersToRemove||(i.listenersToRemove=[]),i.listenersToRemove.push({node:u,method:h,event:"load"}))},loadDependencies:function(){var n,t;if(i.libs.autoLoad)for(n=0;n<i.libs.resources.length;n++)if(i.libs.resources[n]instanceof Object)for(t in i.libs.resources[n])i.loadResource(t,i.libs.resources[n][t]);else i.loadResource(i.libs.resources[n])},pxToNumber:function(n,t){if(n||!t)return Number(String(n).replace("px",""))||0},numberToPx:function(n){return String(n)+"px"},deepMerge:function(n,t,r){var f,u,e=t instanceof Array?"array":"object";for(f in t)"array"==e&&isNaN(f)||(u=t[f],(void 0==n[f]||r)&&(u instanceof Array?n[f]=[]:u instanceof Function?n[f]=function(){}:u instanceof Date?n[f]=new Date:u instanceof Object?n[f]={}:u instanceof Number?n[f]=new Number:u instanceof String&&(n[f]=new String)),(n instanceof Object||n instanceof Array)&&(u instanceof Object||u instanceof Array)&&!(u instanceof Function||u instanceof Date||i.isElement(u))&&"chart"!=f?i.deepMerge(n[f],u,r):n instanceof Array&&!r?n.push(u):n[f]=u);return n},isElement:function(n){return n instanceof Object&&n&&1===n.nodeType},isHashbanged:function(n){var t=String(n).replace(/\"/g,"");return"url"==t.slice(0,3)?t.slice(t.indexOf("#")+1,t.length-1):!1},isPressed:function(n){return"mousemove"==n.type&&1===n.which||(i.drawing.buffer.isPressed="touchmove"==n.type||1===n.buttons||1===n.button||1===n.which?!0:!1),i.drawing.buffer.isPressed},removeImage:function(n){return n&&(i.config.fabric.forceRemoveImages||i.config.fabric.removeImages&&i.isTainted(n))?!0:!1},isTainted:function(n){var t=String(window.location.origin||window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""));return n&&(-1!=t.indexOf(":\\")||-1!=n.indexOf(":\\")||-1!=t.indexOf("file://")||-1!=n.indexOf("file://")||-1!=n.indexOf("//")&&-1==n.indexOf(t.replace(/.*:/,"")))?!0:!1},isSupported:function(){return i.config.enabled&&(!(AmCharts.isIE&&AmCharts.IEversion<=9)||Array.prototype.indexOf&&document.head&&i.config.fallback!==!1)?!0:!1},getAngle:function(n,t,i,r){var e,f=i-n,u=r-t;return e=0==f?0==u?0:u>0?Math.PI/2:3*Math.PI/2:0==u?f>0?0:Math.PI:0>f?Math.atan(u/f)+Math.PI:0>u?Math.atan(u/f)+2*Math.PI:Math.atan(u/f),180*e/Math.PI},gatherAttribute:function(n,t,r,u){var f,u=u?u:0,r=r?r:3;return n&&(f=n.getAttribute(t),!f&&r>u)?i.gatherAttribute(n.parentNode,t,r,u+1):f},gatherClassName:function(n,t,r,u){var f,u=u?u:0,r=r?r:3;if(i.isElement(n)){if(f=-1!=(n.getAttribute("class")||"").split(" ").indexOf(t),!f&&r>u)return i.gatherClassName(n.parentNode,t,r,u+1);f&&(f=n)}return f},gatherElements:function(n,t,r){for(var f,u,s,h,e,o=0;o<n.children.length;o++)if(u=n.children[o],"clipPath"==u.tagName){for(s={},h=fabric.parseTransformAttribute(i.gatherAttribute(u,"transform")),f=0;f<u.childNodes.length;f++)u.childNodes[f].setAttribute("fill","transparent"),s={x:i.pxToNumber(u.childNodes[f].getAttribute("x")),y:i.pxToNumber(u.childNodes[f].getAttribute("y")),width:i.pxToNumber(u.childNodes[f].getAttribute("width")),height:i.pxToNumber(u.childNodes[f].getAttribute("height"))};n.clippings[u.id]={svg:u,bbox:s,transform:h}}else if("pattern"==u.tagName){for(e={node:u,source:u.getAttribute("xlink:href"),width:Number(u.getAttribute("width")),height:Number(u.getAttribute("height")),repeat:"repeat"},f=0;f<u.childNodes.length;f++)"rect"==u.childNodes[f].tagName&&(e.fill=u.childNodes[f].getAttribute("fill"));i.removeImage(e.source)?n.patterns[u.id]=e.fill?e.fill:"transparent":(r.included++,n.patterns[e.node.id]=e)}else"image"==u.tagName&&(r.included++,fabric.Image.fromURL(u.getAttribute("xlink:href"),function(){r.loaded++}));return n},gatherPosition:function(n,t){var u,r=i.drawing.buffer.position,f=fabric.util.invertTransform(i.setup.fabric.viewportTransform);return"touchmove"==n.type&&("touches"in n?n=n.touches[0]:"changedTouches"in n&&(n=n.changedTouches[0])),u=fabric.util.transformPoint(i.setup.fabric.getPointer(n,!0),f),1==t&&(r.x1=u.x,r.y1=u.y),r.x2=u.x,r.y2=u.y,r.xD=r.x1-r.x2<0?-1*(r.x1-r.x2):r.x1-r.x2,r.yD=r.y1-r.y2<0?-1*(r.y1-r.y2):r.y1-r.y2,r},capture:function(n,t){var f,e=i.deepMerge(i.deepMerge({},i.config.fabric),n||{}),h=[],u={x:0,y:0,pX:0,pY:0,width:i.setup.chart.divRealWidth,height:i.setup.chart.divRealHeight},c={loaded:0,included:0},l,r,o;for(fabric.ElementsParser.prototype.resolveGradient=function(n,t){var i=n.get(t),r;/^url\(/.test(i)&&(r=i.slice(i.indexOf("#")+1,i.length-1),fabric.gradientDefs[this.svgUid][r]&&n.set(t,fabric.Gradient.fromElement(fabric.gradientDefs[this.svgUid][r],n)))},i.handleCallback(e.beforeCapture,e),l=i.setup.chart.containerDiv.getElementsByTagName("svg"),f=0;f<l.length;f++)r={svg:l[f],parent:l[f].parentNode,children:l[f].getElementsByTagName("*"),offset:{x:0,y:0},patterns:{},clippings:{}},r=i.gatherElements(r,e,c),h.push(r);for(i.config.legend&&i.setup.chart.legend&&i.setup.chart.legend.divId&&(r={svg:i.setup.chart.legend.container.container,parent:i.setup.chart.legend.container.container.parentNode,children:i.setup.chart.legend.container.container.getElementsByTagName("*"),offset:{x:0,y:0},legend:{type:-1!=["top","left"].indexOf(i.config.legend.position)?"unshift":"push",position:i.config.legend.position,width:i.config.legend.width?i.config.legend.width:i.setup.chart.legend.container.width,height:i.config.legend.height?i.config.legend.height:i.setup.chart.legend.container.height},patterns:{},clippings:{}},-1!=["left","right"].indexOf(r.legend.position)?(u.width+=r.legend.width,u.height=r.legend.height>u.height?r.legend.height:u.height):-1!=["top","bottom"].indexOf(r.legend.position)&&(u.height+=r.legend.height),r=i.gatherElements(r,e,c),h[r.legend.type](r)),(i.drawing.buffer.enabled="draw"==e.action,i.setup.wrapper=document.createElement("div"),i.setup.wrapper.setAttribute("class",i.setup.chart.classNamePrefix+"-export-canvas"),i.setup.chart.containerDiv.appendChild(i.setup.wrapper),"stock"==i.setup.chart.type)&&(o={top:0,right:0,bottom:0,left:0},i.setup.chart.leftContainer&&(u.width-=i.setup.chart.leftContainer.offsetWidth,o.left=i.setup.chart.leftContainer.offsetWidth+2*i.setup.chart.panelsSettings.panelSpacing),i.setup.chart.rightContainer&&(u.width-=i.setup.chart.rightContainer.offsetWidth,o.right=i.setup.chart.rightContainer.offsetWidth+2*i.setup.chart.panelsSettings.panelSpacing),i.setup.chart.periodSelector&&-1!=["top","bottom"].indexOf(i.setup.chart.periodSelector.position)&&(u.height-=i.setup.chart.periodSelector.offsetHeight+i.setup.chart.panelsSettings.panelSpacing,o[i.setup.chart.periodSelector.position]+=i.setup.chart.periodSelector.offsetHeight+i.setup.chart.panelsSettings.panelSpacing),i.setup.chart.dataSetSelector&&-1!=["top","bottom"].indexOf(i.setup.chart.dataSetSelector.position)&&(u.height-=i.setup.chart.dataSetSelector.offsetHeight,o[i.setup.chart.dataSetSelector.position]+=i.setup.chart.dataSetSelector.offsetHeight),i.setup.wrapper.style.paddingTop=i.numberToPx(o.top),i.setup.wrapper.style.paddingRight=i.numberToPx(o.right),i.setup.wrapper.style.paddingBottom=i.numberToPx(o.bottom),i.setup.wrapper.style.paddingLeft=i.numberToPx(o.left)),i.setup.canvas=document.createElement("canvas"),i.setup.wrapper.appendChild(i.setup.canvas),i.setup.fabric=new fabric.Canvas(i.setup.canvas,i.deepMerge({width:u.width,height:u.height,isDrawingMode:!0},e)),i.deepMerge(i.setup.fabric,e),i.deepMerge(i.setup.fabric.freeDrawingBrush,e.drawing),i.deepMerge(i.drawing,e.drawing),i.drawing.handler.change(e.drawing),i.setup.fabric.on("mouse:down",function(n){i.gatherPosition(n.e,1);i.drawing.buffer.pressedTS=Number(new Date);i.isPressed(n.e)}),i.setup.fabric.on("mouse:move",function(n){var r=i.gatherPosition(n.e,2),u,e,o,t;if(i.isPressed(n.e),i.drawing.buffer.isPressed&&!i.drawing.buffer.line&&!i.drawing.buffer.isSelected&&"pencil"!=i.drawing.mode&&(r.xD>5||r.xD>5)&&(i.drawing.buffer.hasLine=!0,i.setup.fabric.isDrawingMode=!1,i.setup.fabric._onMouseUpInDrawingMode(n),i.drawing.buffer.line=i.drawing.handler.line({x1:r.x1,y1:r.y1,x2:r.x2,y2:r.y2,arrow:"line"==i.drawing.mode?!1:i.drawing.arrow,action:"config"})),i.drawing.buffer.line){for(t=i.drawing.buffer.line,t.x2=r.x2,t.y2=r.y2,f=0;f<t.group.length;f++)u=t.group[f],u instanceof fabric.Line?u.set({x2:t.x2,y2:t.y2}):u instanceof fabric.Triangle&&(t.angle=i.getAngle(t.x1,t.y1,t.x2,t.y2)+90,"start"==t.arrow?(e=t.y1+t.width/2,o=t.x1+t.width/2):"middle"==t.arrow?(e=t.y2+t.width/2-(t.y2-t.y1)/2,o=t.x2+t.width/2-(t.x2-t.x1)/2):(e=t.y2+t.width/2,o=t.x2+t.width/2),u.set({top:e,left:o,angle:t.angle}));i.setup.fabric.renderAll()}}),i.setup.fabric.on("mouse:up",function(n){if(Number(new Date)-i.drawing.buffer.pressedTS<200){var t=i.setup.fabric.findTarget(n.e);t&&t.selectable&&i.setup.fabric.setActiveObject(t)}if(i.drawing.buffer.line){for(f=0;f<i.drawing.buffer.line.group.length;f++)i.drawing.buffer.line.group[f].remove();delete i.drawing.buffer.line.action;delete i.drawing.buffer.line.group;i.drawing.handler.line(i.drawing.buffer.line)}i.drawing.buffer.line=!1;i.drawing.buffer.hasLine=!1;i.drawing.buffer.isPressed=!1}),i.setup.fabric.on("object:selected",function(n){i.drawing.buffer.isSelected=!0;i.drawing.buffer.target=n.target;i.setup.fabric.isDrawingMode=!1}),i.setup.fabric.on("selection:cleared",function(){i.drawing.buffer.onMouseDown=i.setup.fabric.freeDrawingBrush.onMouseDown;i.drawing.buffer.target=!1;i.drawing.buffer.isSelected&&(i.setup.fabric._isCurrentlyDrawing=!1,i.setup.fabric.freeDrawingBrush.onMouseDown=function(){});setTimeout(function(){i.drawing.buffer.isSelected=!1;i.setup.fabric.isDrawingMode=!0;i.setup.fabric.freeDrawingBrush.onMouseDown=i.drawing.buffer.onMouseDown},10)}),i.setup.fabric.on("path:created",function(n){var t=n.path;if(Number(new Date)-i.drawing.buffer.pressedTS<200||i.drawing.buffer.hasLine)return(i.setup.fabric.remove(t),void i.setup.fabric.renderAll())}),i.setup.fabric.on("object:added",function(n){var t=n.target,r=i.deepMerge(t.saveState().originalState,{cfg:{color:i.drawing.color,width:i.drawing.width,opacity:i.drawing.opacity,fontSize:i.drawing.fontSize}});return Number(new Date)-i.drawing.buffer.pressedTS<200&&!t.noUndo?(i.setup.fabric.remove(t),void i.setup.fabric.renderAll()):(r=JSON.stringify(r),t.recentState=r,!t.selectable||t.known||t.noUndo||(i.drawing.undos.push({action:"added",target:t,state:r}),i.drawing.undos.push({action:"addified",target:t,state:r}),i.drawing.redos=[]),t.known=!0,void(i.setup.fabric.isDrawingMode=!0))}),i.setup.fabric.on("object:modified",function(n){var t=n.target,u=JSON.parse(t.recentState),r=i.deepMerge(t.saveState().originalState,{cfg:u.cfg});r=JSON.stringify(r);t.recentState=r;i.drawing.undos.push({action:"modified",target:t,state:r});i.drawing.redos=[]}),i.setup.fabric.on("text:changed",function(n){var t=n.target;clearTimeout(t.timer);t.timer=setTimeout(function(){var n=JSON.stringify(t.saveState().originalState);t.recentState=n;i.drawing.redos=[];i.drawing.undos.push({action:"modified",target:t,state:n})},250)}),i.drawing.buffer.enabled?(i.setup.wrapper.setAttribute("class",i.setup.chart.classNamePrefix+"-export-canvas active"),i.setup.wrapper.style.backgroundColor=e.backgroundColor,i.setup.wrapper.style.display="block"):(i.setup.wrapper.setAttribute("class",i.setup.chart.classNamePrefix+"-export-canvas"),i.setup.wrapper.style.display="none"),f=0;f<h.length;f++){var r=h[f],a=i.gatherClassName(r.parent,i.setup.chart.classNamePrefix+"-legend-div",1),s=i.gatherClassName(r.parent,i.setup.chart.classNamePrefix+"-stock-panel-div"),v=i.gatherClassName(r.parent,i.setup.chart.classNamePrefix+"-scrollbar-chart-div");"stock"==i.setup.chart.type&&i.setup.chart.legendSettings.position?-1!=["top","bottom"].indexOf(i.setup.chart.legendSettings.position)?r.parent.style.top&&r.parent.style.left?(r.offset.y=i.pxToNumber(r.parent.style.top),r.offset.x=i.pxToNumber(r.parent.style.left)):(r.offset.x=u.x,r.offset.y=u.y,u.y+=i.pxToNumber(r.parent.style.height),s?(u.pY=i.pxToNumber(s.style.marginTop),r.offset.y+=u.pY):v&&(r.offset.y+=u.pY)):-1!=["left","right"].indexOf(i.setup.chart.legendSettings.position)&&(r.offset.y=i.pxToNumber(r.parent.style.top)+u.pY,r.offset.x=i.pxToNumber(r.parent.style.left)+u.pX,a?u.pY+=i.pxToNumber(s.style.height)+i.setup.chart.panelsSettings.panelSpacing:v&&(r.offset.y-=i.setup.chart.panelsSettings.panelSpacing)):("absolute"==r.parent.style.position?(r.offset.absolute=!0,r.offset.top=i.pxToNumber(r.parent.style.top),r.offset.right=i.pxToNumber(r.parent.style.right,!0),r.offset.bottom=i.pxToNumber(r.parent.style.bottom,!0),r.offset.left=i.pxToNumber(r.parent.style.left),r.offset.width=i.pxToNumber(r.parent.style.width),r.offset.height=i.pxToNumber(r.parent.style.height)):r.parent.style.top&&r.parent.style.left?(r.offset.y=i.pxToNumber(r.parent.style.top),r.offset.x=i.pxToNumber(r.parent.style.left)):r.legend?"left"==r.legend.position?u.x+=r.legend.width:"right"==r.legend.position?r.offset.x+=u.width-r.legend.width:"top"==r.legend.position?u.y+=r.legend.height:"bottom"==r.legend.position&&(r.offset.y+=u.height-r.legend.height):(r.offset.x=u.x,r.offset.y=u.y+u.pY,u.y+=i.pxToNumber(r.parent.style.height)),a&&s&&s.style.marginTop?(u.y+=i.pxToNumber(s.style.marginTop),r.offset.y+=i.pxToNumber(s.style.marginTop)):i.setup.chart.legend&&-1!=["left","right"].indexOf(i.setup.chart.legend.position)&&(r.offset.y=i.pxToNumber(r.parent.style.top),r.offset.x=i.pxToNumber(r.parent.style.left)));fabric.parseSVGDocument(r.svg,function(n){return function(r,f){var o,s=fabric.util.groupSVGElements(r,f),g=[],y={selectable:!1},a,b,tt,d,it,p,ut;for(n.offset.absolute?(y.top=void 0!==n.offset.bottom?u.height-n.offset.height-n.offset.bottom:n.offset.top,y.left=void 0!==n.offset.right?u.width-n.offset.width-n.offset.right:n.offset.left):(y.top=n.offset.y,y.left=n.offset.x),o=0;o<s.paths.length;o++){if(a=null,s.paths[o]){if(i.removeImage(s.paths[o]["xlink:href"]))continue;if(s.paths[o].fill instanceof Object?"radial"==s.paths[o].fill.type&&-1==["pie","gauge"].indexOf(i.setup.chart.type)&&(s.paths[o].fill.coords.r2=-1*s.paths[o].fill.coords.r1,s.paths[o].fill.coords.r1=0,s.paths[o].set({opacity:s.paths[o].fillOpacity})):(a=i.isHashbanged(s.paths[o].fill))&&n.patterns&&n.patterns[a]&&(b=n.patterns[a],fabric.Image.fromURL(b.source,function(n,t){return function(i){c.loaded++;var u=null,r=new fabric.StaticCanvas(void 0,{backgroundColor:n.fill});r.add(i);u=new fabric.Pattern({source:function(){return r.setDimensions({width:n.width,height:n.height}),r.getElement()},repeat:"repeat"});s.paths[t].set({fill:u,opacity:s.paths[t].fillOpacity})}}(b,o))),(a=i.isHashbanged(s.paths[o].clipPath))&&n.clippings&&n.clippings[a]&&(!function(t,i){var r=s.paths[t].toSVG;s.paths[t].toSVG=function(t){return r.apply(this,[function(r){return t(r,n.clippings[i])}])}}(o,a),s.paths[o].set({clipTo:function(t,r){return function(t){var u=n.clippings[r],e=this.transformMatrix||[1,0,0,1,0,0],f={top:u.bbox.y,left:u.bbox.x,width:u.bbox.width,height:u.bbox.height};"map"==i.setup.chart.type&&(f.top+=u.transform[5],f.left+=u.transform[4]);u.bbox.x&&e[4]&&u.bbox.y&&e[5]&&(f.top-=e[5],f.left-=e[4]);t.rect(f.left,f.top,f.width,f.height)}}(o,a)})),s.paths[o].TSPANWORKAROUND){for(var ft=fabric.parseAttributes(s.paths[o].svg,fabric.Text.ATTRIBUTE_NAMES),f=fabric.util.object.extend({},ft),nt=[],k=0;k<s.paths[o].svg.childNodes.length;k++)tt=s.paths[o].svg.childNodes[k],d=fabric.Text.fromElement(tt,f),d.set({left:0}),nt.push(d);s.paths[o].set({opacity:0});it=new fabric.Group(nt,{top:-1*s.paths[o].top});s.paths[o]=it}}g.push(s.paths[o])}if(s.paths=g,s.set(y),i.setup.fabric.add(s),n.svg.parentNode&&n.svg.parentNode.getElementsByTagName)for(p=n.svg.parentNode.getElementsByClassName(i.setup.chart.classNamePrefix+"-balloon-div"),o=0;o<p.length;o++)if(e.balloonFunction instanceof Function)e.balloonFunction.apply(i,[p[o],n]);else{var l=p[o],v=fabric.parseStyleAttribute(l),w=fabric.parseStyleAttribute(l.childNodes[0]),rt=new fabric.Text(l.innerText||l.textContent||l.innerHTML,{selectable:!1,top:v.top+n.offset.y,left:v.left+n.offset.x,fill:w.color,fontSize:w.fontSize,fontFamily:w.fontFamily,textAlign:w["text-align"]});i.setup.fabric.add(rt)}if(n.svg.nextSibling&&"A"==n.svg.nextSibling.tagName){var l=n.svg.nextSibling,v=fabric.parseStyleAttribute(l),rt=new fabric.Text(l.innerText||l.textContent||l.innerHTML,{selectable:!1,top:v.top+n.offset.y,left:v.left+n.offset.x,fill:v.color,fontSize:v.fontSize,fontFamily:v.fontFamily,opacity:v.opacity});i.setup.fabric.add(rt)}(h.pop(),h.length)||(ut=setInterval(function(){c.loaded==c.included&&(clearTimeout(ut),i.handleBorder(e),i.handleCallback(e.afterCapture,e),i.setup.fabric.renderAll(),i.handleCallback(t,e))},AmCharts.updateRate))}}(r),function(n,t){var u,h=i.gatherAttribute(n,"class"),l=i.gatherAttribute(n,"visibility"),a=i.gatherAttribute(n,"clip-path"),o;if(t.className=String(h),t.classList=String(h).split(" "),t.clipPath=a,t.svg=n,"text"==n.tagName&&n.childNodes.length>1&&(t.TSPANWORKAROUND=!0),"hidden"==l)t.opacity=0;else for(o=["fill","stroke"],u=0;u<o.length;u++){var f=o[u],c=String(n.getAttribute(f)||""),s=Number(n.getAttribute(f+"-opacity")||"1"),r=fabric.Color.fromHex(c).getSource();-1==t.classList.indexOf(i.setup.chart.classNamePrefix+"-guide-fill")||c||(s=0,r=fabric.Color.fromHex("#000000").getSource());r&&(r.pop(),r.push(s),t[f]="rgba("+r.join()+")",t[f+i.capitalize("opacity")]=s)}i.handleCallback(e.reviver,t,n)})}},toCanvas:function(n,t){var r=(i.deepMerge({},n||{}),i.setup.canvas);return i.handleCallback(t,r),r},toImage:function(n,t){var r=i.deepMerge({format:"png",quality:1,multiplier:i.config.multiplier},n||{}),f=r.data,u=document.createElement("img");return r.data||(f=r.lossless||"svg"==r.format?i.toSVG(i.deepMerge(r,{getBase64:!0})):i.setup.fabric.toDataURL(r)),u.setAttribute("src",f),i.handleCallback(t,u),u},toBlob:function(n,t){var u,r=i.deepMerge({data:"empty",type:"text/plain"},n||{}),f=/^data:.+;base64,(.*)$/.exec(r.data);return f&&(r.data=f[0],r.type=r.data.slice(5,r.data.indexOf(",")-7),r.data=i.toByteArray({data:r.data.slice(r.data.indexOf(",")+1,r.data.length)})),u=r.getByteArray?r.data:new Blob([r.data],{type:r.type}),i.handleCallback(t,u),u},toJPG:function(n,t){var r=i.deepMerge({format:"jpeg",quality:1,multiplier:i.config.multiplier},n||{}),u;return r.format=r.format.toLowerCase(),u=i.setup.fabric.toDataURL(r),i.handleCallback(t,u),u},toPNG:function(n,t){var u=i.deepMerge({format:"png",quality:1,multiplier:i.config.multiplier},n||{}),r=i.setup.fabric.toDataURL(u);return i.handleCallback(t,r),r},toSVG:function(n,t){var u=[],f=i.deepMerge({reviver:function(n,t){var v=new RegExp(/\bstyle=(['"])(.*?)\1/),h=v.exec(n)[0].slice(7,-1),r=h.split(";"),f=[],l,a,e,s;for(i1=0;i1<r.length;i1++)if(r[i1]){var c=r[i1].replace(/\s/g,"").split(":"),o=c[0],i=c[1];-1!=["fill","stroke"].indexOf(o)?(i=fabric.Color.fromRgba(i),i&&i._source)?(l="#"+i.toHex(),a=i._source[3],f.push([o,l].join(":")),f.push([o+"-opacity",a].join(":"))):f.push(r[i1]):"opactiy"!=o&&f.push(r[i1])}if(n=n.replace(h,f.join(";")),t){e=2;s=n.slice(-e);"/>"!=s&&(e=3,s=n.slice(-e));var y=n.slice(0,n.length-e),p=' clip-path="url(#'+t.svg.id+')" ',w=(new XMLSerializer).serializeToString(t.svg);n=y+p+s;u.push(w)}return n}},n||{}),r=i.setup.fabric.toSVG(f,f.reviver),e,o;return u.length&&(e=r.slice(0,r.length-6),o=r.slice(-6),r=e+u.join("")+o),f.getBase64&&(r="data:image/svg+xml;base64,"+btoa(r)),i.handleCallback(t,r),r},toPDF:function(n,t){function s(n){if("number"==typeof n||n instanceof Number)n={left:n,right:n,top:n,bottom:n};else if(n instanceof Array)if(2===n.length)n={left:n[0],top:n[1],right:n[0],bottom:n[1]};else{if(4!==n.length)throw"Invalid pageMargins definition";n={left:n[0],top:n[1],right:n[2],bottom:n[3]}}else n={left:i.defaults.pdfMake.pageMargins,top:i.defaults.pdfMake.pageMargins,right:i.defaults.pdfMake.pageMargins,bottom:i.defaults.pdfMake.pageMargins};return n}function h(n,t){var r=i.defaults.pdfMake.pageSizes[String(n).toUpperCase()].slice();if(!r)throw new Error('The given pageSize "'+n+'" does not exist!');return"landscape"==t&&r.reverse(),r}var r=i.deepMerge(i.deepMerge({multiplier:i.config.multiplier||2,pageOrigin:void 0===i.config.pageOrigin?!0:!1},i.config.pdfMake),n||{},!0),o=new pdfMake.createPdf(r);if(r.images.reference=i.toPNG(r),!r.content){var u=[],f=h(r.pageSize,r.pageOrientation),e=s(r.pageMargins);f[0]-=e.left+e.right;f[1]-=e.top+e.bottom;r.pageOrigin&&(u.push(i.i18l("label.saved.from")),u.push(window.location.href),f[1]-=28.128);u.push({image:"reference",fit:f});r.content=u}return t&&o.getDataUrl(function(n){return function(){n.apply(i,arguments)}}(t)),o},toPRINT:function(n,t){var r,e=i.deepMerge({delay:1,lossless:!1},n||{}),f=i.toImage(e),o=[],u=document.body.childNodes;for(f.setAttribute("style","width: 100%; max-height: 100%;"),r=0;r<u.length;r++)i.isElement(u[r])&&(o[r]=u[r].style.display,u[r].style.display="none");return document.body.appendChild(f),window.print(),setTimeout(function(){for(r=0;r<u.length;r++)i.isElement(u[r])&&(u[r].style.display=o[r]);document.body.removeChild(f);i.handleCallback(t,f)},e.delay),f},toJSON:function(n,t){var r=i.deepMerge({dateFormat:i.config.dateFormat||"dateObject"},n||{},!0),u;return r.data=r.data?r.data:i.getChartData(r),u=JSON.stringify(r.data,void 0,"\t"),i.handleCallback(t,u),u},toCSV:function(n,t){function l(n){return"string"==typeof n&&(r.escape&&(n=n.replace('"','""')),r.quotes&&(n=['"',n,'"'].join(""))),n}var o,s,r=i.deepMerge({data:i.getChartData(n),delimiter:",",quotes:!0,escape:!0,withHeader:!0},n||{},!0),f="",h=[],u=[],c;for(var e in r.data[0])u.push(l(e)),h.push(e);r.withHeader&&(f+=u.join(r.delimiter)+"\n");for(o in r.data)if(u=[],!isNaN(o)){for(s in h)isNaN(s)||(c=h[s],e=r.data[o][c],u.push(l(e,c)));f+=u.join(r.delimiter)+"\n"}return i.handleCallback(t,f),f},toXLSX:function(n,t){function e(n,t){t&&(n+=1462);var i=Date.parse(n),r=6e4*n.getTimezoneOffset();return(i-r-new Date(Date.UTC(1899,11,30)))/864e5}function o(n){for(var u,t,o,f={},i={s:{c:1e7,r:1e7},e:{c:0,r:0}},r=0;r!=n.length;++r)for(u=0;u!=n[r].length;++u)i.s.r>r&&(i.s.r=r),i.s.c>u&&(i.s.c=u),i.e.r<r&&(i.e.r=r),i.e.c<u&&(i.e.c=u),t={v:n[r][u]},null!=t.v&&(o=XLSX.utils.encode_cell({c:u,r:r}),"number"==typeof t.v?t.t="n":"boolean"==typeof t.v?t.t="b":t.v instanceof Date?(t.t="n",t.z=XLSX.SSF._table[14],t.v=e(t.v)):t.t="s",f[o]=t);return i.s.c<1e7&&(f["!ref"]=XLSX.utils.encode_range(i)),f}var r=i.deepMerge({name:"amCharts",dateFormat:i.config.dateFormat||"dateObject",withHeader:!0,stringify:!1},n||{},!0),u="",f={SheetNames:[],Sheets:{}};return r.data=r.data?r.data:i.getChartData(r),f.SheetNames.push(r.name),f.Sheets[r.name]=o(i.toArray(r)),u=XLSX.write(f,{bookType:"xlsx",bookSST:!0,type:"base64"}),u="data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,"+u,i.handleCallback(t,u),u},toArray:function(n,t){var s,f=i.deepMerge({data:i.getChartData(n),withHeader:!1,stringify:!0},n||{},!0),e=[],o=[],h,r,u;for(r in f.data[0])o.push(r);f.withHeader&&e.push(o);for(s in f.data)if(h=[],!isNaN(s)){for(r in o)isNaN(r)||(r=o[r],u=f.data[s][r],u=null==u?"":f.stringify?String(u):u,h.push(u));e.push(h)}return i.handleCallback(t,e),e},toByteArray:function(n,t){function r(n){var t=n.charCodeAt(0);return t===l?62:t===a?63:u>t?-1:u+10>t?t-u+26+26:e+26>t?t-e:f+26>t?t-f+26:void 0}function s(n){function u(n){e[l++]=n}var t,s,h,i,f,e,o,l;if(n.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");for(o=n.length,f="="===n.charAt(o-2)?2:"="===n.charAt(o-1)?1:0,e=new c(3*n.length/4-f),h=f>0?n.length-4:n.length,l=0,t=0,s=0;h>t;t+=4,s+=3)i=r(n.charAt(t))<<18|r(n.charAt(t+1))<<12|r(n.charAt(t+2))<<6|r(n.charAt(t+3)),u((16711680&i)>>16),u((65280&i)>>8),u(255&i);return 2===f?(i=r(n.charAt(t))<<2|r(n.charAt(t+1))>>4,u(255&i)):1===f&&(i=r(n.charAt(t))<<10|r(n.charAt(t+1))<<4|r(n.charAt(t+2))>>2,u(i>>8&255),u(255&i)),e}var h=i.deepMerge({},n||{}),c="undefined"!=typeof Uint8Array?Uint8Array:Array,l="+".charCodeAt(0),a="/".charCodeAt(0),u="0".charCodeAt(0),f="a".charCodeAt(0),e="A".charCodeAt(0),o=s(h.data);return i.handleCallback(t,o),o},handleCallback:function(n){var t,r=Array();if(n&&n instanceof Function){for(t=0;t<arguments.length;t++)t>0&&r.push(arguments[t]);return n.apply(i,r)}},handleBorder:function(n){if(i.config.border instanceof Object){var t=i.deepMerge(i.defaults.fabric.border,n.border||{},!0),r=new fabric.Rect;t.width=i.setup.fabric.width-t.strokeWidth;t.height=i.setup.fabric.height-t.strokeWidth;r.set(t);i.setup.fabric.add(r)}},handleDropbox:function(n){var t,r;if(i.drawing.buffer.enabled)if(n.preventDefault(),n.stopPropagation(),"dragover"==n.type)i.setup.wrapper.setAttribute("class",i.setup.chart.classNamePrefix+"-export-canvas active dropbox");else if(i.setup.wrapper.setAttribute("class",i.setup.chart.classNamePrefix+"-export-canvas active"),"drop"==n.type&&n.dataTransfer.files.length)for(t=0;t<n.dataTransfer.files.length;t++)r=new FileReader,r.onloadend=function(t){return function(){i.drawing.handler.add({url:r.result,top:n.layerY-10*t,left:n.layerX-10*t})}}(t),r.readAsDataURL(n.dataTransfer.files[t])},getChartData:function(n){function e(n,t,r){function f(n,t){return-1!=u.dataFields.indexOf(n)?f([n,".",t].join("")):n}n&&u.exportTitles&&"gantt"!=i.setup.chart.type&&(o=f(n,r),u.dataFieldsMap[o]=n,u.dataFields.push(o),u.titles[o]=t||o)}var r,t,s,u=i.deepMerge({data:[],titles:{},dateFields:[],dataFields:[],dataFieldsMap:{},exportTitles:i.config.exportTitles,exportFields:i.config.exportFields,exportSelection:i.config.exportSelection,columnNames:i.config.columnNames},n||{},!0),h=["valueField","openField","closeField","highField","lowField","xField","yField"],p,c,o,v,l,f,a,y;if(0==u.data.length)if("stock"==i.setup.chart.type){for(u.data=i.setup.chart.mainDataSet.dataProvider,e(i.setup.chart.mainDataSet.categoryField),u.dateFields.push(i.setup.chart.mainDataSet.categoryField),r=0;r<i.setup.chart.mainDataSet.fieldMappings.length;r++)for(c=i.setup.chart.mainDataSet.fieldMappings[r],t=0;t<i.setup.chart.panels.length;t++)for(p=i.setup.chart.panels[t],s=0;s<p.stockGraphs.length;s++)for(f=p.stockGraphs[s],i4=0;i4<h.length;i4++)f[h[i4]]==c.toField&&e(c.fromField,f.title,h[i4]);for(r=0;r<i.setup.chart.comparedGraphs.length;r++)for(f=i.setup.chart.comparedGraphs[r],t=0;t<f.dataSet.dataProvider.length;t++)for(s=0;s<f.dataSet.fieldMappings.length;s++)c=f.dataSet.fieldMappings[s],o=f.dataSet.id+"_"+c.toField,t<u.data.length&&(u.data[t][o]=f.dataSet.dataProvider[t][c.fromField],u.titles[o]||e(o,f.dataSet.title))}else if("gantt"==i.setup.chart.type){for(e(i.setup.chart.categoryField),u.dateFields.push(i.setup.chart.categoryField),v=i.setup.chart.segmentsField,r=0;r<i.setup.chart.dataProvider.length;r++)if(l=i.setup.chart.dataProvider[r],l[v])for(t=0;t<l[v].length;t++)l[v][t][i.setup.chart.categoryField]=l[i.setup.chart.categoryField],u.data.push(l[v][t]);for(r=0;r<i.setup.chart.graphs.length;r++)for(f=i.setup.chart.graphs[r],t=0;t<h.length;t++)a=h[t],y=f[a],f.title,e(y,f.title,a)}else if(-1!=["pie","funnel"].indexOf(i.setup.chart.type))u.data=i.setup.chart.dataProvider,e(i.setup.chart.titleField),u.dateFields.push(i.setup.chart.titleField),e(i.setup.chart.valueField);else if("map"!=i.setup.chart.type)for(u.data=i.setup.chart.dataProvider,i.setup.chart.categoryAxis&&(e(i.setup.chart.categoryField,i.setup.chart.categoryAxis.title),i.setup.chart.categoryAxis.parseDates!==!1&&u.dateFields.push(i.setup.chart.categoryField)),r=0;r<i.setup.chart.graphs.length;r++)for(f=i.setup.chart.graphs[r],t=0;t<h.length;t++)a=h[t],y=f[a],e(y,f.title,a);return i.processData(u)},processData:function(t){var f,e,r=i.deepMerge({data:[],titles:{},dateFields:[],dataFields:[],dataFieldsMap:{},dataDateFormat:i.setup.chart.dataDateFormat,dateFormat:i.config.dateFormat||i.setup.chart.dataDateFormat||"YYYY-MM-DD",exportTitles:i.config.exportTitles,exportFields:i.config.exportFields,exportSelection:i.config.exportSelection,columnNames:i.config.columnNames,processData:i.config.processData},t||{},!0),c,s,h;if(r.data.length){for(f=0;f<r.data.length;f++)for(e in r.data[f])-1==r.dataFields.indexOf(e)&&(r.dataFields.push(e),r.dataFieldsMap[e]=e);for(void 0!==r.exportFields&&(r.dataFields=r.dataFields.filter(function(n){return-1!=r.exportFields.indexOf(n)})),c=[],f=0;f<r.data.length;f++){for(s={},h=!1,e=0;e<r.dataFields.length;e++){var o=r.dataFields[e],a=r.dataFieldsMap[o],l=r.columnNames&&r.columnNames[o]||r.titles[o]||o,u=r.data[f][a];null==u&&(u=void 0);r.exportTitles&&"gantt"!=i.setup.chart.type&&l in s&&(l+=["( ",o," )"].join(""));-1!=r.dateFields.indexOf(a)&&(r.dataDateFormat&&(u instanceof String||"string"==typeof u)?u=AmCharts.stringToDate(u,r.dataDateFormat):r.dateFormat&&(u instanceof Number||"number"==typeof u)&&(u=new Date(u)),r.exportSelection&&(u instanceof Date?(u<n.startDate||u>n.endDate)&&(h=!0):(f<n.startIndex||f>n.endIndex)&&(h=!0)),r.dateFormat&&"dateObject"!=r.dateFormat&&u instanceof Date&&(u=AmCharts.formatDate(u,r.dateFormat)));s[l]=u}h||c.push(s)}r.data=c}return void 0!==r.processData&&(r.data=i.handleCallback(r.processData,r.data,r)),r.data},capitalize:function(n){return n.charAt(0).toUpperCase()+n.slice(1).toLowerCase()},createMenu:function(t,r){function u(t,r){for(var o,v=document.createElement("ul"),c,s,e,b,k,a=0;a<t.length;a++){var f="string"==typeof t[a]?{format:t[a]}:t[a],h=document.createElement("li"),l=document.createElement("a"),p=document.createElement("img"),y=document.createElement("span"),w=String(f.action?f.action:f.format).toLowerCase();if(f.format=String(f.format).toUpperCase(),i.config.formats[f.format]?f=i.deepMerge({label:f.icon?"":f.format,format:f.format,mimeType:i.config.formats[f.format].mimeType,extension:i.config.formats[f.format].extension,capture:i.config.formats[f.format].capture,action:i.config.action,fileName:i.config.fileName},f):f.label||(f.label=f.label?f.label:i.i18l("menu.label."+w)),(-1==["CSV","JSON","XLSX"].indexOf(f.format)||-1==["map","gauge"].indexOf(i.setup.chart.type))&&(i.setup.hasBlob||"UNDEFINED"==f.format||!f.mimeType||"image"==f.mimeType.split("/")[0]||"text/plain"==f.mimeType)){if("draw"==f.action)i.config.fabric.drawing.enabled?(f.menu=f.menu?f.menu:i.config.fabric.drawing.menu,f.click=function(n){return function(){this.capture(n,function(){this.createMenu(n.menu)})}}(f)):f.menu=[];else if(!f.populated&&f.action&&-1!=f.action.indexOf("draw."))for(c=f.action.split(".")[1],s=f[c]||i.config.fabric.drawing[c]||[],f.menu=[],f.populated=!0,o=0;o<s.length;o++)e={label:s[o]},"shapes"==c?(b=-1==s[o].indexOf("//"),k=(b?i.config.path+"shapes/":"")+s[o],e.action="add",e.url=k,e.icon=k,e.ignore=b,e["class"]="export-drawing-shape"):"colors"==c?(e.style="background-color: "+s[o],e.action="change",e.color=s[o],e["class"]="export-drawing-color"):"widths"==c?(e.action="change",e.width=s[o],e.label=document.createElement("span"),e.label.style.width=i.numberToPx(s[o]),e.label.style.height=i.numberToPx(s[o]),e["class"]="export-drawing-width"):"opacities"==c?(e.style="opacity: "+s[o],e.action="change",e.opacity=s[o],e.label=100*s[o]+"%",e["class"]="export-drawing-opacity"):"modes"==c&&(e.label=i.i18l("menu.label.draw.modes."+s[o]),e.click=function(n){return function(){i.drawing.mode=n}}(s[o]),e["class"]="export-drawing-mode"),f.menu.push(e);else f.click||f.menu||f.items||(i.drawing.handler[w]instanceof Function?(f.action=w,f.click=function(n){return function(){this.drawing.handler[n.action](n)}}(f)):i.drawing.buffer.enabled?f.click=function(n){return function(){this.config.drawing.autoClose&&this.drawing.handler.done();this["to"+n.format](n,function(t){"download"==n.action&&this.download(t,n.mimeType,[n.fileName,n.extension].join("."))})}}(f):"UNDEFINED"!=f.format&&(f.click=function(n){return function(){if(n.capture||"print"==n.action||"PRINT"==n.format)this.capture(n,function(){this.config.drawing.autoClose&&this.drawing.handler.done();this["to"+n.format](n,function(t){"download"==n.action&&this.download(t,n.mimeType,[n.fileName,n.extension].join("."))})});else{if(!this["to"+n.format])throw new Error("Invalid format. Could not determine output type.");this["to"+n.format](n,function(t){this.download(t,n.mimeType,[n.fileName,n.extension].join("."))})}}}(f)));(void 0===f.menu||f.menu.length)&&(l.setAttribute("href","#"),l.addEventListener("click",function(n,t){return function(r){r.preventDefault();var u=[r,t];return("draw"==t.action||"PRINT"==t.format||"UNDEFINED"!=t.format&&t.capture)&&!i.drawing.enabled&&(t.delay=t.delay?t.delay:i.config.delay,t.delay)?void i.delay(t,n):void n.apply(i,u)}}(f.click||function(n){n.preventDefault()},f)),h.appendChild(l),i.isElement(f.label)?y.appendChild(f.label):y.innerHTML=f.label,f["class"]&&(h.className=f["class"]),f.style&&h.setAttribute("style",f.style),f.icon&&(p.setAttribute("src",(f.ignore||-1!=f.icon.slice(0,10).indexOf("//")?"":n.pathToImages)+f.icon),l.appendChild(p)),f.label&&l.appendChild(y),f.title&&l.setAttribute("title",f.title),i.config.menuReviver&&(h=i.config.menuReviver.apply(i,[f,h])),f.elements={li:h,a:l,img:p,span:y},(f.menu||f.items)&&"draw"!=f.action?u(f.menu||f.items,h).childNodes.length&&v.appendChild(h):v.appendChild(h))}}return v.childNodes.length&&r.appendChild(v),v}return r||("string"==typeof i.config.divId?i.config.divId=r=document.getElementById(i.config.divId):r=i.isElement(i.config.divId)?i.config.divId:i.setup.chart.containerDiv),i.isElement(i.setup.menu)?i.setup.menu.innerHTML="":i.setup.menu=document.createElement("div"),i.setup.menu.setAttribute("class",i.setup.chart.classNamePrefix+"-export-menu "+i.setup.chart.classNamePrefix+"-export-menu-"+i.config.position+" amExportButton"),i.config.menuWalker&&(u=i.config.menuWalker),u.apply(this,[t,i.setup.menu]),i.setup.menu.childNodes.length&&r.appendChild(i.setup.menu),i.setup.menu},delay:function(n,t){var u,f,r=i.deepMerge({delay:3,precision:2},n||{}),o=Number(new Date),s=i.createMenu([{label:i.i18l("capturing.delayed.menu.label").replace("{{duration}}",AmCharts.toFixed(r.delay,r.precision)),title:i.i18l("capturing.delayed.menu.title"),"class":"export-delayed-capturing",click:function(){clearTimeout(u);clearTimeout(f);i.createMenu(i.config.menu)}}]),e=s.getElementsByTagName("a")[0];u=setInterval(function(){var n=r.delay-(Number(new Date)-o)/1e3;0>=n?(clearTimeout(u),"draw"!=r.action&&i.createMenu(i.config.menu)):e&&(e.innerHTML=i.i18l("capturing.delayed.menu.label").replace("{{duration}}",AmCharts.toFixed(n,2)))},10);f=setTimeout(function(){t.apply(i,arguments)},1e3*r.delay)},migrateSetup:function(n){function i(n){var r,u;for(r in n)u=n[r],"export"==r.slice(0,6)&&u?t.menu.push(r.slice(6)):"userCFG"==r?i(u):"menuItems"==r?t.menu=u:"libs"==r?t.libs=u:"string"==typeof r&&(t[r]=u)}var t={enabled:!0,migrated:!0,libs:{autoLoad:!0},menu:[]};return i(n),t},clear:function(){var n,t,r;if(i.setup=void 0,i.docListener&&document.removeEventListener("keydown",i.docListener),n=i.listenersToRemove,n)for(t=0;t<n.length;t++)r=n[t],r.node.removeEventListener(r.event,r.method);i.listenersToRemove=[]},loadListeners:function(){function n(n){n&&(n.set({top:n.top+10,left:n.left+10}),i.setup.fabric.add(n))}i.config.keyListener&&"attached"!=i.config.keyListener&&(i.docListener=function(t){var r=i.drawing.buffer.target;8!=t.keyCode&&46!=t.keyCode||!r?27==t.keyCode&&i.drawing.enabled?(t.preventDefault(),i.drawing.handler.done()):67==t.keyCode&&(t.metaKey||t.ctrlKey)&&r?i.drawing.buffer.copy=r:88==t.keyCode&&(t.metaKey||t.ctrlKey)&&r?(i.drawing.buffer.copy=r,i.setup.fabric.remove(r)):86==t.keyCode&&(t.metaKey||t.ctrlKey)?i.drawing.buffer.copy&&n(i.drawing.buffer.copy.clone(n)):90==t.keyCode&&(t.metaKey||t.ctrlKey)&&(t.preventDefault(),t.shiftKey?i.drawing.handler.redo():i.drawing.handler.undo()):(t.preventDefault(),i.setup.fabric.remove(r))},i.config.keyListener="attached",document.addEventListener("keydown",i.docListener));i.config.fileListener&&(i.setup.chart.containerDiv.addEventListener("dragover",i.handleDropbox),i.setup.chart.containerDiv.addEventListener("dragleave",i.handleDropbox),i.setup.chart.containerDiv.addEventListener("drop",i.handleDropbox))},init:function(){clearTimeout(i.timer);i.timer=setInterval(function(){i.setup.chart.containerDiv&&(clearTimeout(i.timer),i.config.enabled&&(i.setup.chart.AmExport=i,i.config.overflow&&(i.setup.chart.div.style.overflow="visible"),i.loadListeners(),i.createMenu(i.config.menu)))},AmCharts.updateRate)},construct:function(){i.drawing.handler.cancel=i.drawing.handler.done;try{i.setup.hasBlob=!!new Blob}catch(n){}window.safari=window.safari?window.safari:{};i.defaults.fabric.drawing.fontSize=i.setup.chart.fontSize||11;i.config.drawing=i.deepMerge(i.defaults.fabric.drawing,i.config.drawing||{},!0);i.config.border&&(i.config.border=i.deepMerge(i.defaults.fabric.border,i.config.border||{},!0));i.deepMerge(i.defaults.fabric,i.config,!0);i.deepMerge(i.defaults.fabric,i.config.fabric||{},!0);i.deepMerge(i.defaults.pdfMake,i.config,!0);i.deepMerge(i.defaults.pdfMake,i.config.pdfMake||{},!0);i.deepMerge(i.libs,i.config.libs||{},!0);i.config.drawing=i.defaults.fabric.drawing;i.config.fabric=i.defaults.fabric;i.config.pdfMake=i.defaults.pdfMake;i.config=i.deepMerge(i.defaults,i.config,!0);i.config.fabric.drawing.enabled&&void 0===i.config.fabric.drawing.menu&&(i.config.fabric.drawing.menu=[],i.deepMerge(i.config.fabric.drawing.menu,[{"class":"export-drawing",menu:[{label:i.i18l("menu.label.draw.add"),menu:[{label:i.i18l("menu.label.draw.shapes"),action:"draw.shapes"},{label:i.i18l("menu.label.draw.text"),action:"text"}]},{label:i.i18l("menu.label.draw.change"),menu:[{label:i.i18l("menu.label.draw.modes"),action:"draw.modes"},{label:i.i18l("menu.label.draw.colors"),action:"draw.colors"},{label:i.i18l("menu.label.draw.widths"),action:"draw.widths"},{label:i.i18l("menu.label.draw.opacities"),action:"draw.opacities"},"UNDO","REDO"]},{label:i.i18l("menu.label.save.image"),menu:["PNG","JPG","SVG","PDF"]},"PRINT","CANCEL"]}]));void 0===i.config.menu&&(i.config.menu=[],i.deepMerge(i.config,{menu:[{"class":"export-main",menu:[{label:i.i18l("menu.label.save.image"),menu:["PNG","JPG","SVG","PDF"]},{label:i.i18l("menu.label.save.data"),menu:["CSV","XLSX","JSON"]},{label:i.i18l("menu.label.draw"),action:"draw",menu:i.config.fabric.drawing.menu},{format:"PRINT",label:i.i18l("menu.label.print")}]}]}));i.libs.path||(i.libs.path=i.config.path+"libs/");i.isSupported()&&(i.loadDependencies(i.libs.resources,i.libs.reload),i.setup.chart.addClassNames=!0,i.setup.chart[i.name]=i,i.init())}};if(t)i.config=t;else if(i.setup.chart[i.name])i.config=i.setup.chart[i.name];else{if(!i.setup.chart.amExport&&!i.setup.chart.exportConfig)return;i.config=i.migrateSetup(i.setup.chart.amExport||i.setup.chart.exportConfig)}return i.construct(),i.deepMerge(this,i)}}();AmCharts.addInitHandler(function(n){new AmCharts["export"](n)},["pie","serial","xy","funnel","radar","gauge","stock","map","gantt"]),function(n){"use strict";var t,i;if(n.URL=n.URL||n.webkitURL,n.Blob&&n.URL)try{new Blob;return}catch(r){}t=n.BlobBuilder||n.WebKitBlobBuilder||n.MozBlobBuilder||function(n){var s=function(n){return Object.prototype.toString.call(n).match(/^\[object\s(.*)\]$/)[1]},h=function(){this.data=[]},t=function(n,t,i){this.data=n;this.size=n.length;this.type=t;this.encoding=i},u=h.prototype,r=t.prototype,c=n.FileReaderSync,l=function(n){this.code=this[this.name=n]},a="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),f=a.length,i=n.URL||n.webkitURL||n,v=i.createObjectURL,y=i.revokeObjectURL,e=i,p=n.btoa,w=n.atob,b=n.ArrayBuffer,o=n.Uint8Array,k=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(t.fake=r.fake=!0;f--;)l.prototype[a[f]]=f+1;return i.createObjectURL||(e=n.URL=function(n){var t=document.createElementNS("http://www.w3.org/1999/xhtml","a"),i;return t.href=n,"origin"in t||(t.protocol.toLowerCase()==="data:"?t.origin=null:(i=n.match(k),t.origin=i&&i[1])),t}),e.createObjectURL=function(n){var u=n.type,r;return(u===null&&(u="application/octet-stream"),n instanceof t)?(r="data:"+u,n.encoding==="base64")?r+";base64,"+n.data:n.encoding==="URI"?r+","+decodeURIComponent(n.data):p?r+";base64,"+p(n.data):r+","+encodeURIComponent(n.data):v?v.call(i,n):void 0},e.revokeObjectURL=function(n){n.substring(0,5)!=="data:"&&y&&y.call(i,n)},u.append=function(n){var i=this.data,e;if(o&&(n instanceof b||n instanceof o)){for(var u="",f=new o(n),r=0,h=f.length;r<h;r++)u+=String.fromCharCode(f[r]);i.push(u)}else if(s(n)==="Blob"||s(n)==="File")if(c)e=new c,i.push(e.readAsBinaryString(n));else throw new l("NOT_READABLE_ERR");else n instanceof t?n.encoding==="base64"&&w?i.push(w(n.data)):n.encoding==="URI"?i.push(decodeURIComponent(n.data)):n.encoding==="raw"&&i.push(n.data):(typeof n!="string"&&(n+=""),i.push(unescape(encodeURIComponent(n))))},u.getBlob=function(n){return arguments.length||(n=null),new t(this.data.join(""),n,"raw")},u.toString=function(){return"[object BlobBuilder]"},r.slice=function(n,i,r){var u=arguments.length;return u<3&&(r=null),new t(this.data.slice(n,u>1?i:this.data.length),r,this.encoding)},r.toString=function(){return"[object Blob]"},r.close=function(){this.size=0;delete this.data},h}(n);n.Blob=function(n,i){var o=i?i.type||"":"",f=new t,r,e,u;if(n)for(r=0,e=n.length;r<e;r++)Uint8Array&&n[r]instanceof Uint8Array?f.append(n[r].buffer):f.append(n[r]);return u=f.getBlob(o),!u.slice&&u.webkitSlice&&(u.slice=u.webkitSlice),u};i=Object.getPrototypeOf||function(n){return n.__proto__};n.Blob.prototype=i(new n.Blob)}(typeof self!="undefined"&&self||typeof window!="undefined"&&window||this.content||this);fabric=fabric||{version:"1.5.0"};typeof exports!="undefined"&&(exports.fabric=fabric);typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window,window.fabric=fabric):(fabric.document=require("jsdom").jsdom("<!DOCTYPE html><html><head><\/head><body><\/body><\/html>"),fabric.window=fabric.document.createWindow?fabric.document.createWindow():fabric.document.parentWindow);fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement;fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";fabric.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width"];fabric.DPI=96;fabric.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:e[-+]?\\d+)?)",function(){function n(n,t){this.__eventListeners[n]&&(t?fabric.util.removeFromArray(this.__eventListeners[n],t):this.__eventListeners[n].length=0)}function t(n,t){if(this.__eventListeners||(this.__eventListeners={}),arguments.length===1)for(var i in n)this.on(i,n[i]);else this.__eventListeners[n]||(this.__eventListeners[n]=[]),this.__eventListeners[n].push(t);return this}function i(t,i){if(this.__eventListeners){if(arguments.length===0)this.__eventListeners={};else if(arguments.length===1&&typeof arguments[0]=="object")for(var r in t)n.call(this,r,t[r]);else n.call(this,t,i);return this}}function r(n,t){var i,r,u;if(this.__eventListeners&&(i=this.__eventListeners[n],i)){for(r=0,u=i.length;r<u;r++)i[r].call(this,t||{});return this}}fabric.Observable={observe:t,stopObserving:i,fire:r,on:t,off:i,trigger:r}}();fabric.Collection={add:function(){this._objects.push.apply(this._objects,arguments);for(var n=0,t=arguments.length;n<t;n++)this._onObjectAdded(arguments[n]);return this.renderOnAddRemove&&this.renderAll(),this},insertAt:function(n,t,i){var r=this.getObjects();return i?r[t]=n:r.splice(t,0,n),this._onObjectAdded(n),this.renderOnAddRemove&&this.renderAll(),this},remove:function(){for(var i=this.getObjects(),t,n=0,r=arguments.length;n<r;n++)t=i.indexOf(arguments[n]),t!==-1&&(i.splice(t,1),this._onObjectRemoved(arguments[n]));return this.renderOnAddRemove&&this.renderAll(),this},forEachObject:function(n,t){for(var i=this.getObjects(),r=i.length;r--;)n.call(t,i[r],r,i);return this},getObjects:function(n){return typeof n=="undefined"?this._objects:this._objects.filter(function(t){return t.type===n})},item:function(n){return this.getObjects()[n]},isEmpty:function(){return this.getObjects().length===0},size:function(){return this.getObjects().length},contains:function(n){return this.getObjects().indexOf(n)>-1},complexity:function(){return this.getObjects().reduce(function(n,t){return n+(t.complexity?t.complexity():0)},0)}},function(n){var i=Math.sqrt,r=Math.atan2,t=Math.PI/180;fabric.util={removeFromArray:function(n,t){var i=n.indexOf(t);return i!==-1&&n.splice(i,1),n},getRandomInt:function(n,t){return Math.floor(Math.random()*(t-n+1))+n},degreesToRadians:function(n){return n*t},radiansToDegrees:function(n){return n/t},rotatePoint:function(n,t,i){var r=Math.sin(i),u=Math.cos(i),f,e;return n.subtractEquals(t),f=n.x*u-n.y*r,e=n.x*r+n.y*u,new fabric.Point(f,e).addEquals(t)},transformPoint:function(n,t,i){return i?new fabric.Point(t[0]*n.x+t[2]*n.y,t[1]*n.x+t[3]*n.y):new fabric.Point(t[0]*n.x+t[2]*n.y+t[4],t[1]*n.x+t[3]*n.y+t[5])},invertTransform:function(n){var t=n.slice(),i=1/(n[0]*n[3]-n[1]*n[2]),r;return t=[i*n[3],-i*n[1],-i*n[2],i*n[0],0,0],r=fabric.util.transformPoint({x:n[4],y:n[5]},t),t[4]=-r.x,t[5]=-r.y,t},toFixed:function(n,t){return parseFloat(Number(n).toFixed(t))},parseUnit:function(n,t){var r=/\D{0,2}$/.exec(n),i=parseFloat(n);t||(t=fabric.Text.DEFAULT_SVG_FONT_SIZE);switch(r[0]){case"mm":return i*fabric.DPI/25.4;case"cm":return i*fabric.DPI/2.54;case"in":return i*fabric.DPI;case"pt":return i*fabric.DPI/72;case"pc":return i*fabric.DPI/6;case"em":return i*t;default:return i}},falseFunction:function(){return!1},getKlass:function(n,t){return n=fabric.util.string.camelize(n.charAt(0).toUpperCase()+n.slice(1)),fabric.util.resolveNamespace(t)[n]},resolveNamespace:function(t){var i;if(!t)return fabric;var u=t.split("."),f=u.length,r=n||fabric.window;for(i=0;i<f;++i)r=r[u[i]];return r},loadImage:function(n,t,i,r){if(!n){t&&t.call(i,n);return}var u=fabric.util.createImage();u.onload=function(){t&&t.call(i,u);u=u.onload=u.onerror=null};u.onerror=function(){fabric.log("Error loading "+u.src);t&&t.call(i,null,!0);u=u.onload=u.onerror=null};n.indexOf("data")!==0&&typeof r!="undefined"&&(u.crossOrigin=r);u.src=n},enlivenObjects:function(n,t,i,r){function f(){++o===e&&t&&t(u)}n=n||[];var u=[],o=0,e=n.length;if(!e){t&&t(u);return}n.forEach(function(n,t){if(!n||!n.type){f();return}var e=fabric.util.getKlass(n.type,i);e.async?e.fromObject(n,function(i,e){e||(u[t]=i,r&&r(n,u[t]));f()}):(u[t]=e.fromObject(n),r&&r(n,u[t]),f())})},groupSVGElements:function(n,t,i){var r;return r=new fabric.PathGroup(n,t),typeof i!="undefined"&&r.setSourcePath(i),r},populateWithProperties:function(n,t,i){if(i&&Object.prototype.toString.call(i)==="[object Array]")for(var r=0,u=i.length;r<u;r++)i[r]in n&&(t[i[r]]=n[i[r]])},drawDashedLine:function(n,t,u,f,e,o){var s=f-t,h=e-u,c=i(s*s+h*h),a=r(h,s),v=o.length,y=0,l=!0;for(n.save(),n.translate(t,u),n.moveTo(0,0),n.rotate(a),t=0;c>t;)t+=o[y++%v],t>c&&(t=c),n[l?"lineTo":"moveTo"](t,0),l=!l;n.restore()},createCanvasElement:function(n){return n||(n=fabric.document.createElement("canvas")),n.getContext||typeof G_vmlCanvasManager=="undefined"||G_vmlCanvasManager.initElement(n),n},createImage:function(){return fabric.isLikelyNode?new(require("canvas").Image):fabric.document.createElement("img")},createAccessors:function(n){for(var t=n.prototype,r=t.stateProperties.length;r--;){var i=t.stateProperties[r],u=i.charAt(0).toUpperCase()+i.slice(1),f="set"+u,e="get"+u;t[e]||(t[e]=function(n){return new Function('return this.get("'+n+'")')}(i));t[f]||(t[f]=function(n){return new Function("value",'return this.set("'+n+'", value)')}(i))}},clipContext:function(n,t){t.save();t.beginPath();n.clipTo(t);t.clip()},multiplyTransformMatrices:function(n,t){return[n[0]*t[0]+n[2]*t[1],n[1]*t[0]+n[3]*t[1],n[0]*t[2]+n[2]*t[3],n[1]*t[2]+n[3]*t[3],n[0]*t[4]+n[2]*t[5]+n[4],n[1]*t[4]+n[3]*t[5]+n[5]]},getFunctionBody:function(n){return(String(n).match(/function[^{]*\{([\s\S]*)\}/)||{})[1]},isTransparent:function(n,t,i,r){var u,f,e,o,s;for(r>0&&(t>r?t-=r:t=0,i>r?i-=r:i=0),u=!0,f=n.getImageData(t,i,r*2||1,r*2||1),e=3,o=f.data.length;e<o;e+=4)if(s=f.data[e],u=s<=0,u===!1)break;return f=null,u}}}(typeof exports!="undefined"?exports:this),function(){function u(n,i,u,e,s,h,c){var rt=r.call(arguments),et,y;if(t[rt])return t[rt];var nt=Math.PI,ht=c*nt/180,p=Math.sin(ht),w=Math.cos(ht),ct=0,lt=0;u=Math.abs(u);e=Math.abs(e);var l=-w*n*.5-p*i*.5,a=-w*i*.5+p*n*.5,tt=u*u,it=e*e,at=a*a,vt=l*l,ut=tt*it-tt*at-it*vt,ft=0;ut<0?(et=Math.sqrt(1-ut/(tt*it)),u*=et,e*=et):ft=(s===h?-1:1)*Math.sqrt(ut/(tt*at+it*vt));var b=ft*u*a/e,k=-ft*e*l/u,pt=w*b-p*k+n*.5,wt=p*b+w*k+i*.5,ot=f(1,0,(l-b)/u,(a-k)/e),v=f((l-b)/u,(a-k)/e,(-l-b)/u,(-a-k)/e);h===0&&v>0?v-=2*nt:h===1&&v<0&&(v+=2*nt);var yt=Math.ceil(Math.abs(v/nt*2)),d=[],g=v/yt,bt=8/3*Math.sin(g/4)*Math.sin(g/4)/Math.sin(g/2),st=ot+g;for(y=0;y<yt;y++)d[y]=o(ot,st,w,p,u,e,pt,wt,bt,ct,lt),ct=d[y][4],lt=d[y][5],ot=st,st+=g;return t[rt]=d,d}function o(t,i,u,f,e,o,s,h,c,l,a){var v=r.call(arguments);if(n[v])return n[v];var w=Math.cos(t),b=Math.sin(t),y=Math.cos(i),p=Math.sin(i),k=u*e*y-f*o*p+s,d=f*e*y+u*o*p+h,g=l+c*(-u*e*b-f*o*w),nt=a+c*(-f*e*b+u*o*w),tt=k+c*(u*e*p+f*o*y),it=d+c*(f*e*p-u*o*y);return n[v]=[g,nt,tt,it,k,d],n[v]}function f(n,t,i,r){var u=Math.atan2(t,n),f=Math.atan2(r,i);return f>=u?f-u:2*Math.PI-(u-f)}function e(n,t,u,f,e,o,s,h){var tt=r.call(arguments),nt,st,ht,p,b,l,ut;if(i[tt])return i[tt];var ct=Math.sqrt,ft=Math.min,et=Math.max,ot=Math.abs,w=[],a=[[],[]],y,v,k,c,d,g,it,rt;for(v=6*n-12*u+6*e,y=-3*n+9*u-9*e+3*s,k=3*u-3*n,nt=0;nt<2;++nt){if(nt>0&&(v=6*t-12*f+6*o,y=-3*t+9*f-9*o+3*h,k=3*f-3*t),ot(y)<1e-12){if(ot(v)<1e-12)continue;c=-k/v;0<c&&c<1&&w.push(c);continue}(it=v*v-4*k*y,it<0)||(rt=ct(it),d=(-v+rt)/(2*y),0<d&&d<1&&w.push(d),g=(-v-rt)/(2*y),0<g&&g<1&&w.push(g))}for(p=w.length,b=p;p--;)c=w[p],l=1-c,st=l*l*l*n+3*l*l*c*u+3*l*c*c*e+c*c*c*s,a[0][p]=st,ht=l*l*l*t+3*l*l*c*f+3*l*c*c*o+c*c*c*h,a[1][p]=ht;return a[0][b]=n,a[1][b]=t,a[0][b+1]=s,a[1][b+1]=h,ut=[{x:ft.apply(null,a[0]),y:ft.apply(null,a[1])},{x:et.apply(null,a[0]),y:et.apply(null,a[1])}],i[tt]=ut,ut}var t={},n={},i={},r=Array.prototype.join;fabric.util.drawArc=function(n,t,i,r){for(var s=r[0],h=r[1],c=r[2],l=r[3],a=r[4],v=r[5],y=r[6],e=[[],[],[],[]],o=u(v-t,y-i,s,h,l,a,c),f=0,p=o.length;f<p;f++)e[f][0]=o[f][0]+t,e[f][1]=o[f][1]+i,e[f][2]=o[f][2]+t,e[f][3]=o[f][3]+i,e[f][4]=o[f][4]+t,e[f][5]=o[f][5]+i,n.bezierCurveTo.apply(n,e[f])};fabric.util.getBoundsOfArc=function(n,t,i,r,f,o,s,h,c){for(var w=0,b=0,y=[],p=[],a=u(h-n,c-t,i,r,o,s,f),v=[[],[]],l=0,k=a.length;l<k;l++)y=e(w,b,a[l][0],a[l][1],a[l][2],a[l][3],a[l][4],a[l][5]),v[0].x=y[0].x+n,v[0].y=y[0].y+t,v[1].x=y[1].x+n,v[1].y=y[1].y+t,p.push(v[0]),p.push(v[1]),w=a[l][4],b=a[l][5];return p};fabric.util.getBoundsOfCurve=e}(),function(){function i(n,i){for(var u=t.call(arguments,2),f=[],r=0,e=n.length;r<e;r++)f[r]=u.length?n[r][i].apply(n[r],u):n[r][i].call(n[r]);return f}function r(t,i){return n(t,i,function(n,t){return n>=t})}function u(t,i){return n(t,i,function(n,t){return n<t})}function n(n,t,i){if(n&&n.length!==0){var r=n.length-1,u=t?n[r][t]:n[r];if(t)while(r--)i(n[r][t],u)&&(u=n[r][t]);else while(r--)i(n[r],u)&&(u=n[r]);return u}}var t=Array.prototype.slice;Array.prototype.indexOf||(Array.prototype.indexOf=function(n){var u,r,t,i;if(this===void 0||this===null)throw new TypeError;if((u=Object(this),r=u.length>>>0,r===0)||(t=0,arguments.length>0&&(t=Number(arguments[1]),t!==t?t=0:t!==0&&t!==Number.POSITIVE_INFINITY&&t!==Number.NEGATIVE_INFINITY&&(t=(t>0||-1)*Math.floor(Math.abs(t)))),t>=r))return-1;for(i=t>=0?t:Math.max(r-Math.abs(t),0);i<r;i++)if(i in u&&u[i]===n)return i;return-1});Array.prototype.forEach||(Array.prototype.forEach=function(n,t){for(var i=0,r=this.length>>>0;i<r;i++)i in this&&n.call(t,this[i],i,this)});Array.prototype.map||(Array.prototype.map=function(n,t){for(var r=[],i=0,u=this.length>>>0;i<u;i++)i in this&&(r[i]=n.call(t,this[i],i,this));return r});Array.prototype.every||(Array.prototype.every=function(n,t){for(var i=0,r=this.length>>>0;i<r;i++)if(i in this&&!n.call(t,this[i],i,this))return!1;return!0});Array.prototype.some||(Array.prototype.some=function(n,t){for(var i=0,r=this.length>>>0;i<r;i++)if(i in this&&n.call(t,this[i],i,this))return!0;return!1});Array.prototype.filter||(Array.prototype.filter=function(n,t){for(var u=[],r,i=0,f=this.length>>>0;i<f;i++)i in this&&(r=this[i],n.call(t,r,i,this)&&u.push(r));return u});Array.prototype.reduce||(Array.prototype.reduce=function(n){var r=this.length>>>0,t=0,i;if(arguments.length>1)i=arguments[1];else do{if(t in this){i=this[t++];break}if(++t>=r)throw new TypeError;}while(1);for(;t<r;t++)t in this&&(i=n.call(null,i,this[t],t,this));return i});fabric.util.array={invoke:i,min:u,max:r}}(),function(){function n(n,t){for(var i in t)n[i]=t[i];return n}function t(t){return n({},t)}fabric.util.object={extend:n,clone:t}}(),function(){function n(n){return n.replace(/-+(.)?/g,function(n,t){return t?t.toUpperCase():""})}function t(n,t){return n.charAt(0).toUpperCase()+(t?n.slice(1):n.slice(1).toLowerCase())}function i(n){return n.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")});fabric.util.string={camelize:n,capitalize:t,escapeXml:i}}(),function(){var t=Array.prototype.slice,i=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var f=this,e=t.call(arguments,1),u;return u=e.length?function(){return i.call(f,this instanceof n?this:r,e.concat(t.call(arguments)))}:function(){return i.call(f,this instanceof n?this:r,arguments)},n.prototype=this.prototype,u.prototype=new n,u})}(),function(){function t(){}function f(t){var i=this.constructor.superclass.prototype[t];return arguments.length>1?i.apply(this,n.call(arguments,1)):i.call(this)}function e(){function r(){this.initialize.apply(this,arguments)}var e=null,o=n.call(arguments,0),s,h;for(typeof o[0]=="function"&&(e=o.shift()),r.superclass=e,r.subclasses=[],e&&(t.prototype=e.prototype,r.prototype=new t,e.subclasses.push(r)),s=0,h=o.length;s<h;s++)u(r,o[s],e);return r.prototype.initialize||(r.prototype.initialize=i),r.prototype.constructor=r,r.prototype.callSuper=f,r}var n=Array.prototype.slice,i=function(){},r=function(){for(var n in{toString:1})if(n==="toString")return!1;return!0}(),u=function(n,t,i){for(var u in t)n.prototype[u]=u in n.prototype&&typeof n.prototype[u]=="function"&&(t[u]+"").indexOf("callSuper")>-1?function(n){return function(){var u=this.constructor.superclass,r;return this.constructor.superclass=i,r=t[n].apply(this,arguments),this.constructor.superclass=u,n!=="initialize"?r:void 0}}(u):t[u],r&&(t.toString!==Object.prototype.toString&&(n.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(n.prototype.valueOf=t.valueOf))};fabric.util.createClass=e}(),function(){function i(n){for(var i=Array.prototype.slice.call(arguments,1),r,u=i.length,t=0;t<u;t++)if(r=typeof n[i[t]],!/^(?:function|object|unknown)$/.test(r))return!1;return!0}function a(n,t){return{handler:t,wrappedHandler:v(n,t)}}function v(n,t){return function(i){t.call(h(n),i||fabric.window.event)}}function y(t,i){return function(r){var f,u,e;if(n[t]&&n[t][i])for(f=n[t][i],u=0,e=f.length;u<e;u++)f[u].call(this,r||fabric.window.event)}}function b(n,t){n||(n=fabric.window.event);var r=n.target||(typeof n.srcElement!==e?n.srcElement:null),i=fabric.util.getScrollLeftTop(r,t);return{x:o(n)+i.left,y:s(n)+i.top}}function l(n,t,i){var r=n.type==="touchend"?"changedTouches":"touches";return n[r]&&n[r][0]?n[r][0][t]-(n[r][0][t]-n[r][0][i])||n[i]:n[i]}var e="unknown",h,c,r=function(){var n=0;return function(t){return t.__uniqueID||(t.__uniqueID="uniqueID__"+n++)}}(),o,s;(function(){var n={};h=function(t){return n[t]};c=function(t,i){n[t]=i}})();var p=i(fabric.document.documentElement,"addEventListener","removeEventListener")&&i(fabric.window,"addEventListener","removeEventListener"),w=i(fabric.document.documentElement,"attachEvent","detachEvent")&&i(fabric.window,"attachEvent","detachEvent"),t={},n={},u,f;p?(u=function(n,t,i){n.addEventListener(t,i,!1)},f=function(n,t,i){n.removeEventListener(t,i,!1)}):w?(u=function(n,i,u){var f=r(n),e;c(f,n);t[f]||(t[f]={});t[f][i]||(t[f][i]=[]);e=a(f,u);t[f][i].push(e);n.attachEvent("on"+i,e.wrappedHandler)},f=function(n,i,u){var f=r(n),o,e,s;if(t[f]&&t[f][i])for(e=0,s=t[f][i].length;e<s;e++)o=t[f][i][e],o&&o.handler===u&&(n.detachEvent("on"+i,o.wrappedHandler),t[f][i][e]=null)}):(u=function(t,i,u){var f=r(t),e;n[f]||(n[f]={});n[f][i]||(n[f][i]=[],e=t["on"+i],e&&n[f][i].push(e),t["on"+i]=y(f,i));n[f][i].push(u)},f=function(t,i,u){var o=r(t),e,f,s;if(n[o]&&n[o][i])for(e=n[o][i],f=0,s=e.length;f<s;f++)e[f]===u&&e.splice(f,1)});fabric.util.addListener=u;fabric.util.removeListener=f;o=function(n){return typeof n.clientX!==e?n.clientX:0};s=function(n){return typeof n.clientY!==e?n.clientY:0};fabric.isTouchSupported&&(o=function(n){return l(n,"pageX","clientX")},s=function(n){return l(n,"pageY","clientY")});fabric.util.getPointer=b;fabric.util.object.extend(fabric.util,fabric.Observable)}(),function(){function r(t,i){var u=t.style,r,f;if(!u)return t;if(typeof i=="string")return t.style.cssText+=";"+i,i.indexOf("opacity")>-1?n(t,i.match(/opacity:\s*(\d?\.?\d*)/)[1]):t;for(r in i)r==="opacity"?n(t,i[r]):(f=r==="float"||r==="cssFloat"?typeof u.styleFloat=="undefined"?"cssFloat":"styleFloat":r,u[f]=i[r]);return t}var t=fabric.document.createElement("div"),u=typeof t.style.opacity=="string",f=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,n=function(n){return n};u?n=function(n,t){return n.style.opacity=t,n}:f&&(n=function(n,t){var r=n.style;return n.currentStyle&&!n.currentStyle.hasLayout&&(r.zoom=1),i.test(r.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",r.filter=r.filter.replace(i,t)):r.filter+=" alpha(opacity="+t*100+")",n});fabric.util.setStyle=r}(),function(){function f(n){return typeof n=="string"?fabric.document.getElementById(n):n}function r(n,t){var r=fabric.document.createElement(n);for(var i in t)i==="class"?r.className=t[i]:i==="for"?r.htmlFor=t[i]:r.setAttribute(i,t[i]);return r}function e(n,t){n&&(" "+n.className+" ").indexOf(" "+t+" ")===-1&&(n.className+=(n.className?" ":"")+t)}function o(n,t,i){return typeof t=="string"&&(t=r(t,i)),n.parentNode&&n.parentNode.replaceChild(t,n),t.appendChild(n),t}function s(n,t){for(var u,i=0,r=0,e=fabric.document.documentElement,o=fabric.document.body||{scrollLeft:0,scrollTop:0},f=n;n&&n.parentNode&&!u;)n=n.parentNode,n.nodeType===1&&fabric.util.getElementStyle(n,"position")==="fixed"&&(u=n),n.nodeType===1&&f!==t&&fabric.util.getElementStyle(n,"position")==="absolute"?(i=0,r=0):n===fabric.document?(i=o.scrollLeft||e.scrollLeft||0,r=o.scrollTop||e.scrollTop||0):(i+=n.scrollLeft||0,r+=n.scrollTop||0);return{left:i,top:r}}function h(n){var i,o=n&&n.ownerDocument,r={left:0,top:0},u={left:0,top:0},f,s={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"},e;if(!o)return{left:0,top:0};for(e in s)u[s[e]]+=parseInt(t(n,e),10)||0;return i=o.documentElement,typeof n.getBoundingClientRect!="undefined"&&(r=n.getBoundingClientRect()),f=fabric.util.getScrollLeftTop(n,null),{left:r.left+f.left-(i.clientLeft||0)+u.left,top:r.top+f.top-(i.clientTop||0)+u.top}}var u=Array.prototype.slice,i,n=function(n){return u.call(n,0)},t;try{i=n(fabric.document.childNodes)instanceof Array}catch(c){}i||(n=function(n){for(var i=new Array(n.length),t=n.length;t--;)i[t]=n[t];return i});t=fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?function(n,t){var i=fabric.document.defaultView.getComputedStyle(n,null);return i?i[t]:undefined}:function(n,t){var i=n.style[t];return!i&&n.currentStyle&&(i=n.currentStyle[t]),i},function(){function i(n){return typeof n.onselectstart!="undefined"&&(n.onselectstart=fabric.util.falseFunction),t?n.style[t]="none":typeof n.unselectable=="string"&&(n.unselectable="on"),n}function r(n){return typeof n.onselectstart!="undefined"&&(n.onselectstart=null),t?n.style[t]="":typeof n.unselectable=="string"&&(n.unselectable=""),n}var n=fabric.document.documentElement.style,t="userSelect"in n?"userSelect":"MozUserSelect"in n?"MozUserSelect":"WebkitUserSelect"in n?"WebkitUserSelect":"KhtmlUserSelect"in n?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=i;fabric.util.makeElementSelectable=r}(),function(){function n(n,t){var u=fabric.document.getElementsByTagName("head")[0],i=fabric.document.createElement("script"),r=!0;i.onload=i.onreadystatechange=function(n){if(r){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;r=!1;t(n||fabric.window.event);i=i.onload=i.onreadystatechange=null}};i.src=n;u.appendChild(i)}fabric.util.getScript=n}();fabric.util.getById=f;fabric.util.toArray=n;fabric.util.makeElement=r;fabric.util.addClass=e;fabric.util.wrapElement=o;fabric.util.getScrollLeftTop=s;fabric.util.getElementOffset=h;fabric.util.getElementStyle=t}(),function(){function n(n,t){return n+(/\?/.test(n)?"&":"?")+t}function i(){}function r(r,u){u||(u={});var e=u.method?u.method.toUpperCase():"GET",s=u.onComplete||function(){},f=t(),o;return f.onreadystatechange=function(){f.readyState===4&&(s(f),f.onreadystatechange=i)},e==="GET"&&(o=null,typeof u.parameters=="string"&&(r=n(r,u.parameters))),f.open(e,r,!0),(e==="POST"||e==="PUT")&&f.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),f.send(o),f}var t=function(){for(var i,n=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}],t=n.length;t--;)try{if(i=n[t](),i)return n[t]}catch(r){}}();fabric.util.request=r}();fabric.log=function(){};fabric.warn=function(){};typeof console!="undefined"&&["log","warn"].forEach(function(n){typeof console[n]!="undefined"&&typeof console[n].apply=="function"&&(fabric[n]=function(){return console[n].apply(console,arguments)})}),function(){function t(t){n(function(i){t||(t={});var u=i||+new Date,f=t.duration||500,e=u+f,r,s=t.onChange||function(){},h=t.abort||function(){return!1},c=t.easing||function(n,t,i,r){return-i*Math.cos(n/r*(Math.PI/2))+i+t},o="startValue"in t?t.startValue:0,l="endValue"in t?t.endValue:100,a=t.byValue||l-o;t.onStart&&t.onStart(),function v(i){r=i||+new Date;var l=r>e?f:r-u;if(h()){t.onComplete&&t.onComplete();return}if(s(c(l,o,a,f)),r>e){t.onComplete&&t.onComplete();return}n(v)}(u)})}function n(){return i.apply(fabric.window,arguments)}var i=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(n){fabric.window.setTimeout(n,1e3/60)};fabric.util.animate=t;fabric.util.requestAnimFrame=n}(),function(){function n(n,t,i,r){return n<Math.abs(t)?(n=t,r=i/4):r=i/(2*Math.PI)*Math.asin(t/n),{a:n,c:t,p:i,s:r}}function i(n,t,i){return n.a*Math.pow(2,10*(t-=1))*Math.sin((t*i-n.s)*2*Math.PI/n.p)}function u(n,t,i,r){return i*((n=n/r-1)*n*n+1)+t}function f(n,t,i,r){return(n/=r/2,n<1)?i/2*n*n*n+t:i/2*((n-=2)*n*n+2)+t}function e(n,t,i,r){return i*(n/=r)*n*n*n+t}function o(n,t,i,r){return-i*((n=n/r-1)*n*n*n-1)+t}function s(n,t,i,r){return(n/=r/2,n<1)?i/2*n*n*n*n+t:-i/2*((n-=2)*n*n*n-2)+t}function h(n,t,i,r){return i*(n/=r)*n*n*n*n+t}function c(n,t,i,r){return i*((n=n/r-1)*n*n*n*n+1)+t}function l(n,t,i,r){return(n/=r/2,n<1)?i/2*n*n*n*n*n+t:i/2*((n-=2)*n*n*n*n+2)+t}function a(n,t,i,r){return-i*Math.cos(n/r*(Math.PI/2))+i+t}function v(n,t,i,r){return i*Math.sin(n/r*(Math.PI/2))+t}function y(n,t,i,r){return-i/2*(Math.cos(Math.PI*n/r)-1)+t}function p(n,t,i,r){return n===0?t:i*Math.pow(2,10*(n/r-1))+t}function w(n,t,i,r){return n===r?t+i:i*(-Math.pow(2,-10*n/r)+1)+t}function b(n,t,i,r){return n===0?t:n===r?t+i:(n/=r/2,n<1)?i/2*Math.pow(2,10*(n-1))+t:i/2*(-Math.pow(2,-10*--n)+2)+t}function k(n,t,i,r){return-i*(Math.sqrt(1-(n/=r)*n)-1)+t}function d(n,t,i,r){return i*Math.sqrt(1-(n=n/r-1)*n)+t}function g(n,t,i,r){return(n/=r/2,n<1)?-i/2*(Math.sqrt(1-n*n)-1)+t:i/2*(Math.sqrt(1-(n-=2)*n)+1)+t}function nt(t,r,u,f){var e=0,s=u,o;return t===0?r:(t/=f,t===1)?r+u:(e||(e=f*.3),o=n(s,u,e,1.70158),-i(o,t,f)+r)}function tt(t,i,r,u){var e=0,o=r,f;return t===0?i:(t/=u,t===1)?i+r:(e||(e=u*.3),f=n(o,r,e,1.70158),f.a*Math.pow(2,-10*t)*Math.sin((t*u-f.s)*2*Math.PI/f.p)+f.c+i)}function it(t,r,u,f){var o=0,s=u,e;return t===0?r:(t/=f/2,t===2)?r+u:(o||(o=f*.3*1.5),e=n(s,u,o,1.70158),t<1)?-.5*i(e,t,f)+r:e.a*Math.pow(2,-10*(t-=1))*Math.sin((t*f-e.s)*2*Math.PI/e.p)*.5+e.c+r}function rt(n,t,i,r,u){return u===undefined&&(u=1.70158),i*(n/=r)*n*((u+1)*n-u)+t}function ut(n,t,i,r,u){return u===undefined&&(u=1.70158),i*((n=n/r-1)*n*((u+1)*n+u)+1)+t}function ft(n,t,i,r,u){return(u===undefined&&(u=1.70158),n/=r/2,n<1)?i/2*n*n*(((u*=1.525)+1)*n-u)+t:i/2*((n-=2)*n*(((u*=1.525)+1)*n+u)+2)+t}function r(n,i,r,u){return r-t(u-n,0,r,u)+i}function t(n,t,i,r){return(n/=r)<1/2.75?i*7.5625*n*n+t:n<2/2.75?i*(7.5625*(n-=1.5/2.75)*n+.75)+t:n<2.5/2.75?i*(7.5625*(n-=2.25/2.75)*n+.9375)+t:i*(7.5625*(n-=2.625/2.75)*n+.984375)+t}function et(n,i,u,f){return n<f/2?r(n*2,0,u,f)*.5+i:t(n*2-f,0,u,f)*.5+u*.5+i}fabric.util.ease={easeInQuad:function(n,t,i,r){return i*(n/=r)*n+t},easeOutQuad:function(n,t,i,r){return-i*(n/=r)*(n-2)+t},easeInOutQuad:function(n,t,i,r){return(n/=r/2,n<1)?i/2*n*n+t:-i/2*(--n*(n-2)-1)+t},easeInCubic:function(n,t,i,r){return i*(n/=r)*n*n+t},easeOutCubic:u,easeInOutCubic:f,easeInQuart:e,easeOutQuart:o,easeInOutQuart:s,easeInQuint:h,easeOutQuint:c,easeInOutQuint:l,easeInSine:a,easeOutSine:v,easeInOutSine:y,easeInExpo:p,easeOutExpo:w,easeInOutExpo:b,easeInCirc:k,easeOutCirc:d,easeInOutCirc:g,easeInElastic:nt,easeOutElastic:tt,easeInOutElastic:it,easeInBack:rt,easeOutBack:ut,easeInOutBack:ft,easeInBounce:r,easeOutBounce:t,easeInOutBounce:et}}(),function(n){"use strict";function u(n){return n in h?h[n]:n}function f(n,r,u,f){var o=Object.prototype.toString.call(r)==="[object Array]",e;return(n==="fill"||n==="stroke")&&r==="none"?r="":n==="strokeDashArray"?r=r.replace(/,/g," ").split(/\s+/).map(function(n){return parseFloat(n)}):n==="transformMatrix"?r=u&&u.transformMatrix?b(u.transformMatrix,t.parseTransformAttribute(r)):t.parseTransformAttribute(r):n==="visible"?(r=r==="none"||r==="hidden"?!1:!0,u&&u.visible===!1&&(r=!1)):n==="originX"?r=r==="start"?"left":r==="end"?"right":"center":e=o?r.map(i):i(r,f),!o&&isNaN(e)?r:e}function k(n){var i,r;for(i in o)n[i]&&typeof n[o[i]]!="undefined"&&n[i].indexOf("url(")!==0&&(r=new t.Color(n[i]),n[i]=r.setAlpha(w(r.getAlpha()*n[o[i]],2)).toRgba());return n}function d(n,t){var i,r;n.replace(/;$/,"").split(";").forEach(function(n){var e=n.split(":");i=u(e[0].trim().toLowerCase());r=f(i,e[1].trim());t[i]=r})}function g(n,t){var i,e;for(var r in n)typeof n[r]!="undefined"&&(i=u(r.toLowerCase()),e=f(i,n[r]),t[i]=e)}function nt(n,i){var f={},r,u;for(r in t.cssRules[i])if(tt(n,r.split(" ")))for(u in t.cssRules[i][r])f[u]=t.cssRules[i][r][u];return f}function tt(n,t){var i,r=!0;return i=c(n,t.pop()),i&&t.length&&(r=it(n,t)),i&&r&&t.length===0}function it(n,t){for(var i,r=!0;n.parentNode&&n.parentNode.nodeType===1&&t.length;)r&&(i=t.pop()),n=n.parentNode,r=c(n,i);return t.length===0}function c(n,t){var e=n.nodeName,r=n.getAttribute("class"),f=n.getAttribute("id"),i,u;if(i=new RegExp("^"+e,"i"),t=t.replace(i,""),f&&t.length&&(i=new RegExp("#"+f+"(?![a-zA-Z\\-]+)","i"),t=t.replace(i,"")),r&&t.length)for(r=r.split(" "),u=r.length;u--;)i=new RegExp("\\."+r[u]+"(?![a-zA-Z\\-]+)","i"),t=t.replace(i,"");return t.length===0}function rt(n){for(var e=n.getElementsByTagName("use"),t;e.length;){for(var i=e[0],h=i.getAttribute("xlink:href").substr(1),c=i.getAttribute("x")||0,l=i.getAttribute("y")||0,r=n.getElementById(h).cloneNode(!0),u=(r.getAttribute("transform")||"")+" translate("+c+", "+l+")",o,f=0,s=i.attributes,a=s.length;f<a;f++)(t=s.item(f),t.nodeName!=="x"&&t.nodeName!=="y"&&t.nodeName!=="xlink:href")&&(t.nodeName==="transform"?u=t.nodeValue+" "+u:r.setAttribute(t.nodeName,t.nodeValue));r.setAttribute("transform",u);r.setAttribute("instantiated_by_use","1");r.removeAttribute("id");o=i.parentNode;o.replaceChild(r,i)}}function l(n,t,i){var r=n.getAttribute("viewBox"),u=1,f=1,h=0,c=0,l,a,o,e;if(r&&(r=r.match(s)))h=-parseFloat(r[1]),c=-parseFloat(r[2]),l=parseFloat(r[3]),a=parseFloat(r[4]);else return;if(t&&t!==l&&(u=t/l),i&&i!==a&&(f=i/a),f=u=u>f?f:u,u!==1||f!==1||h!==0||c!==0){if(o=" matrix("+u+" 0 0 "+f+" "+h*u+" "+c*f+") ",n.tagName==="svg"){for(e=n.ownerDocument.createElement("g");n.firstChild!=null;)e.appendChild(n.firstChild);n.appendChild(e)}else e=n,o=e.getAttribute("transform")+o;e.setAttribute("transform",o)}}function ut(n){var i=n.objects,r=n.options;return i=i.map(function(n){return t[y(n.type)].fromObject(n)}),{objects:i,options:r}}function a(n,t,i){t[i]&&t[i].toSVG&&n.push('<pattern x="0" y="0" id="',i,'Pattern" ','width="',t[i].source.width,'" height="',t[i].source.height,'" patternUnits="userSpaceOnUse">','<image x="0" y="0" ','width="',t[i].source.width,'" height="',t[i].source.height,'" xlink:href="',t[i].source.src,'"><\/image><\/pattern>')}var t=n.fabric||(n.fabric={}),r=t.util.object.extend,y=t.util.string.capitalize,p=t.util.object.clone,w=t.util.toFixed,i=t.util.parseUnit,b=t.util.multiplyTransformMatrices,h={cx:"left",x:"left",r:"radius",cy:"top",y:"top",display:"visible",visibility:"visible",transform:"transformMatrix","fill-opacity":"fillOpacity","fill-rule":"fillRule","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","stroke-dasharray":"strokeDashArray","stroke-linecap":"strokeLineCap","stroke-linejoin":"strokeLineJoin","stroke-miterlimit":"strokeMiterLimit","stroke-opacity":"strokeOpacity","stroke-width":"strokeWidth","text-decoration":"textDecoration","text-anchor":"originX"},o={stroke:"strokeOpacity",fill:"fillOpacity"},s,e,v;t.cssRules={};t.gradientDefs={};t.parseTransformAttribute=function(){function f(n,t){var i=t[0];n[0]=Math.cos(i);n[1]=Math.sin(i);n[2]=-Math.sin(i);n[3]=Math.cos(i)}function e(n,t){var i=t[0],r=t.length===2?t[1]:t[0];n[0]=i;n[3]=r}function o(n,i){n[2]=Math.tan(t.util.degreesToRadians(i[0]))}function s(n,i){n[1]=Math.tan(t.util.degreesToRadians(i[0]))}function h(n,t){n[4]=t[0];t.length===2&&(n[5]=t[1])}var u=[1,0,0,1,0,0],n=t.reNum,i="(?:\\s+,?\\s*|,\\s*)",c="(?:(skewX)\\s*\\(\\s*("+n+")\\s*\\))",l="(?:(skewY)\\s*\\(\\s*("+n+")\\s*\\))",a="(?:(rotate)\\s*\\(\\s*("+n+")(?:"+i+"("+n+")"+i+"("+n+"))?\\s*\\))",v="(?:(scale)\\s*\\(\\s*("+n+")(?:"+i+"("+n+"))?\\s*\\))",y="(?:(translate)\\s*\\(\\s*("+n+")(?:"+i+"("+n+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+n+")"+i+"("+n+")"+i+"("+n+")"+i+"("+n+")"+i+"("+n+")"+i+"("+n+")\\s*\\))",r="(?:"+p+"|"+y+"|"+v+"|"+a+"|"+c+"|"+l+")",w="(?:"+r+"(?:"+i+r+")*)",b="^\\s*(?:"+w+"?)\\s*$",k=new RegExp(b),d=new RegExp(r,"g");return function(n){var i=u.concat(),c=[],l;if(!n||n&&!k.test(n))return i;for(n.replace(d,function(n){var a=new RegExp(r).exec(n).filter(function(n){return n!==""&&n!=null}),v=a[1],l=a.slice(2).map(parseFloat);switch(v){case"translate":h(i,l);break;case"rotate":l[0]=t.util.degreesToRadians(l[0]);f(i,l);break;case"scale":e(i,l);break;case"skewX":o(i,l);break;case"skewY":s(i,l);break;case"matrix":i=l}c.push(i.concat());i=u.concat()}),l=c[0];c.length>1;)c.shift(),l=t.util.multiplyTransformMatrices(l,c[0]);return l}}();s=new RegExp("^\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*$");t.parseSVGDocument=function(){function u(n,t){while(n&&(n=n.parentNode))if(t.test(n.nodeName)&&!n.getAttribute("instantiated_by_use"))return!0;return!1}var n=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,r=/^(symbol|image|marker|pattern|view)$/;return function(f,e,o){var c,h,k,y,nt,w,d;if(f){rt(f);var tt=new Date,b=t.Object.__uid++,a,v,g=!1;if(f.getAttribute("width")&&f.getAttribute("width")!=="100%"&&(a=i(f.getAttribute("width"))),f.getAttribute("height")&&f.getAttribute("height")!=="100%"&&(v=i(f.getAttribute("height"))),a&&v||(c=f.getAttribute("viewBox"),c&&(c=c.match(s))?(a=parseFloat(c[3]),v=parseFloat(c[4])):g=!0),l(f,a,v),h=t.util.toArray(f.getElementsByTagName("*")),h.length===0&&t.isLikelyNode){for(h=f.selectNodes('//*[name(.)!="svg"]'),k=[],y=0,nt=h.length;y<nt;y++)k[y]=h[y];h=k}if(w=h.filter(function(t){return r.test(t.tagName)&&l(t,0,0),n.test(t.tagName)&&!u(t,/^(?:pattern|defs|symbol)$/)}),!w||w&&!w.length){e&&e([],{});return}d={width:a,height:v,svgUid:b,toBeParsed:g};t.gradientDefs[b]=t.getGradientDefs(f);t.cssRules[b]=t.getCSSRules(f);t.parseElements(w,function(n){t.documentParsingTime=new Date-tt;e&&e(n,d)},p(d),o)}}}();e={has:function(n,t){t(!1)},get:function(){},set:function(){}};v=new RegExp("(normal|italic)?\\s*(normal|small-caps)?\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*("+t.reNum+"(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|"+t.reNum+"))?\\s+(.*)");r(t,{parseFontDeclaration:function(n,t){var r=n.match(v);if(r){var e=r[1],u=r[3],o=r[4],f=r[5],s=r[6];e&&(t.fontStyle=e);u&&(t.fontWeight=isNaN(parseFloat(u))?u:parseFloat(u));o&&(t.fontSize=i(o));s&&(t.fontFamily=s);f&&(t.lineHeight=f==="normal"?1:f)}},getGradientDefs:function(n){var o=n.getElementsByTagName("linearGradient"),s=n.getElementsByTagName("radialGradient"),t,i,u=0,r,h,f=[],e={},c={},l;for(f.length=o.length+s.length,i=o.length;i--;)f[u++]=o[i];for(i=s.length;i--;)f[u++]=s[i];while(u--)t=f[u],h=t.getAttribute("xlink:href"),r=t.getAttribute("id"),h&&(c[r]=h.substr(1)),e[r]=t;for(r in c)for(l=e[c[r]].cloneNode(!0),t=e[r];l.firstChild;)t.appendChild(l.firstChild);return e},parseAttributes:function(n,i,e){var h,s,c,o;if(n)return s={},typeof e=="undefined"&&(e=n.getAttribute("svgUid")),n.parentNode&&/^symbol|[g|a]$/i.test(n.parentNode.nodeName)&&(s=t.parseAttributes(n.parentNode,i,e)),c=s&&s.fontSize||n.getAttribute("font-size")||t.Text.DEFAULT_SVG_FONT_SIZE,o=i.reduce(function(t,i){return h=n.getAttribute(i),h&&(i=u(i),h=f(i,h,s,c),t[i]=h),t},{}),o=r(o,r(nt(n,e),t.parseStyleAttribute(n))),o.font&&t.parseFontDeclaration(o.font,o),k(r(s,o))},parseElements:function(n,i,r,u){new t.ElementsParser(n,i,r,u).parse()},parseStyleAttribute:function(n){var t={},i=n.getAttribute("style");return i?(typeof i=="string"?d(i,t):g(i,t),t):t},parsePointsAttribute:function(n){if(!n)return null;n=n.replace(/,/g," ").trim();n=n.split(/\s+/);for(var i=[],t=0,r=n.length;t<r;t+=2)i.push({x:parseFloat(n[t]),y:parseFloat(n[t+1])});return i},getCSSRules:function(n){for(var i,o=n.getElementsByTagName("style"),s={},r,e=0,h=o.length;e<h;e++)(i=o[e].textContent,i=i.replace(/\/\*[\s\S]*?\*\//g,""),i.trim()!=="")&&(r=i.match(/[^{]*\{[\s\S]*?\}/g),r=r.map(function(n){return n.trim()}),r.forEach(function(n){for(var e=n.match(/([\s\S]*?)\s*\{([^}]*)\}/),o={},l=e[2].trim(),h=l.replace(/;$/,"").split(/\s*;\s*/),i=0,a=h.length;i<a;i++){var r=h[i].split(/\s*:\s*/),c=u(r[0]),v=f(c,r[1],r[0]);o[c]=v}n=e[1];n.split(",").forEach(function(n){(n=n.replace(/^svg/i,"").trim(),n!=="")&&(s[n]=t.util.object.clone(o))})}));return s},loadSVGFromURL:function(n,i,r){function u(u){var f=u.responseXML;(f&&!f.documentElement&&t.window.ActiveXObject&&u.responseText&&(f=new ActiveXObject("Microsoft.XMLDOM"),f.async="false",f.loadXML(u.responseText.replace(/<!DOCTYPE[\s\S]*?(\[[\s\S]*\])*?>/i,""))),f&&f.documentElement)&&t.parseSVGDocument(f.documentElement,function(r,u){e.set(n,{objects:t.util.array.invoke(r,"toObject"),options:u});i(r,u)},r)}n=n.replace(/^\n\s*/,"").trim();e.has(n,function(r){r?e.get(n,function(n){var t=ut(n);i(t.objects,t.options)}):new t.util.request(n,{method:"get",onComplete:u})})},loadSVGFromString:function(n,i,r){var u,f;n=n.trim();typeof DOMParser!="undefined"?(f=new DOMParser,f&&f.parseFromString&&(u=f.parseFromString(n,"text/xml"))):t.window.ActiveXObject&&(u=new ActiveXObject("Microsoft.XMLDOM"),u.async="false",u.loadXML(n.replace(/<!DOCTYPE[\s\S]*?(\[[\s\S]*\])*?>/i,"")));t.parseSVGDocument(u.documentElement,function(n,t){i(n,t)},r)},createSVGFontFacesMarkup:function(n){for(var i="",t=0,r=n.length;t<r;t++)n[t].type==="text"&&n[t].path&&(i+=["@font-face {","font-family: ",n[t].fontFamily,"; ","src: url('",n[t].path,"')","}"].join(""));return i&&(i=['<style type="text/css">',"<![CDATA[",i,"]\]>","<\/style>"].join("")),i},createSVGRefElementsMarkup:function(n){var t=[];return a(t,n,"backgroundColor"),a(t,n,"overlayColor"),t.join("")}})}(typeof exports!="undefined"?exports:this);fabric.ElementsParser=function(n,t,i,r){this.elements=n;this.callback=t;this.options=i;this.reviver=r;this.svgUid=i&&i.svgUid||0};fabric.ElementsParser.prototype.parse=function(){this.instances=new Array(this.elements.length);this.numElements=this.elements.length;this.createObjects()};fabric.ElementsParser.prototype.createObjects=function(){for(var n=0,t=this.elements.length;n<t;n++)this.elements[n].setAttribute("svgUid",this.svgUid),function(n,t){setTimeout(function(){n.createObject(n.elements[t],t)},0)}(this,n)};fabric.ElementsParser.prototype.createObject=function(n,t){var i=fabric[fabric.util.string.capitalize(n.tagName)];if(i&&i.fromElement)try{this._createObject(i,n,t)}catch(r){fabric.log(r)}else this.checkIfDone()};fabric.ElementsParser.prototype._createObject=function(n,t,i){if(n.async)n.fromElement(t,this.createCallback(i,t),this.options);else{var r=n.fromElement(t,this.options);this.resolveGradient(r,"fill");this.resolveGradient(r,"stroke");this.reviver&&this.reviver(t,r);this.instances[i]=r;this.checkIfDone()}};fabric.ElementsParser.prototype.createCallback=function(n,t){var i=this;return function(r){i.resolveGradient(r,"fill");i.resolveGradient(r,"stroke");i.reviver&&i.reviver(t,r);i.instances[n]=r;i.checkIfDone()}};fabric.ElementsParser.prototype.resolveGradient=function(n,t){var i=n.get(t),r;/^url\(/.test(i)&&(r=i.slice(5,i.length-1),fabric.gradientDefs[this.svgUid][r]&&n.set(t,fabric.Gradient.fromElement(fabric.gradientDefs[this.svgUid][r],n)))};fabric.ElementsParser.prototype.checkIfDone=function(){--this.numElements==0&&(this.instances=this.instances.filter(function(n){return n!=null}),this.callback(this.instances))},function(n){"use strict";function t(n,t){this.x=n;this.y=t}var i=n.fabric||(n.fabric={});if(i.Point){i.warn("fabric.Point is already defined");return}i.Point=t;t.prototype={constructor:t,add:function(n){return new t(this.x+n.x,this.y+n.y)},addEquals:function(n){return this.x+=n.x,this.y+=n.y,this},scalarAdd:function(n){return new t(this.x+n,this.y+n)},scalarAddEquals:function(n){return this.x+=n,this.y+=n,this},subtract:function(n){return new t(this.x-n.x,this.y-n.y)},subtractEquals:function(n){return this.x-=n.x,this.y-=n.y,this},scalarSubtract:function(n){return new t(this.x-n,this.y-n)},scalarSubtractEquals:function(n){return this.x-=n,this.y-=n,this},multiply:function(n){return new t(this.x*n,this.y*n)},multiplyEquals:function(n){return this.x*=n,this.y*=n,this},divide:function(n){return new t(this.x/n,this.y/n)},divideEquals:function(n){return this.x/=n,this.y/=n,this},eq:function(n){return this.x===n.x&&this.y===n.y},lt:function(n){return this.x<n.x&&this.y<n.y},lte:function(n){return this.x<=n.x&&this.y<=n.y},gt:function(n){return this.x>n.x&&this.y>n.y},gte:function(n){return this.x>=n.x&&this.y>=n.y},lerp:function(n,i){return new t(this.x+(n.x-this.x)*i,this.y+(n.y-this.y)*i)},distanceFrom:function(n){var t=this.x-n.x,i=this.y-n.y;return Math.sqrt(t*t+i*i)},midPointFrom:function(n){return new t(this.x+(n.x-this.x)/2,this.y+(n.y-this.y)/2)},min:function(n){return new t(Math.min(this.x,n.x),Math.min(this.y,n.y))},max:function(n){return new t(Math.max(this.x,n.x),Math.max(this.y,n.y))},toString:function(){return this.x+","+this.y},setXY:function(n,t){this.x=n;this.y=t},setFromPoint:function(n){this.x=n.x;this.y=n.y},swap:function(n){var t=this.x,i=this.y;this.x=n.x;this.y=n.y;n.x=t;n.y=i}}}(typeof exports!="undefined"?exports:this),function(n){"use strict";function t(n){this.status=n;this.points=[]}var i=n.fabric||(n.fabric={});if(i.Intersection){i.warn("fabric.Intersection is already defined");return}i.Intersection=t;i.Intersection.prototype={appendPoint:function(n){this.points.push(n)},appendPoints:function(n){this.points=this.points.concat(n)}};i.Intersection.intersectLineLine=function(n,r,u,f){var e,c=(f.x-u.x)*(n.y-u.y)-(f.y-u.y)*(n.x-u.x),l=(r.x-n.x)*(n.y-u.y)-(r.y-n.y)*(n.x-u.x),s=(f.y-u.y)*(r.x-n.x)-(f.x-u.x)*(r.y-n.y),o,h;return s!==0?(o=c/s,h=l/s,0<=o&&o<=1&&0<=h&&h<=1?(e=new t("Intersection"),e.points.push(new i.Point(n.x+o*(r.x-n.x),n.y+o*(r.y-n.y)))):e=new t):e=c===0||l===0?new t("Coincident"):new t("Parallel"),e};i.Intersection.intersectLinePolygon=function(n,i,r){for(var u=new t,e=r.length,f=0;f<e;f++){var o=r[f],s=r[(f+1)%e],h=t.intersectLineLine(n,i,o,s);u.appendPoints(h.points)}return u.points.length>0&&(u.status="Intersection"),u};i.Intersection.intersectPolygonPolygon=function(n,i){for(var r=new t,f=n.length,u=0;u<f;u++){var e=n[u],o=n[(u+1)%f],s=t.intersectLinePolygon(e,o,i);r.appendPoints(s.points)}return r.points.length>0&&(r.status="Intersection"),r};i.Intersection.intersectPolygonRectangle=function(n,r,u){var e=r.min(u),o=r.max(u),s=new i.Point(o.x,e.y),h=new i.Point(e.x,o.y),c=t.intersectLinePolygon(e,s,n),l=t.intersectLinePolygon(s,o,n),a=t.intersectLinePolygon(o,h,n),v=t.intersectLinePolygon(h,e,n),f=new t;return f.appendPoints(c.points),f.appendPoints(l.points),f.appendPoints(a.points),f.appendPoints(v.points),f.points.length>0&&(f.status="Intersection"),f}}(typeof exports!="undefined"?exports:this),function(n){"use strict";function t(n){n?this._tryParsingColor(n):this.setSource([0,0,0,1])}function r(n,t,i){return(i<0&&(i+=1),i>1&&(i-=1),i<1/6)?n+(t-n)*6*i:i<1/2?t:i<2/3?n+(t-n)*(2/3-i)*6:n}var i=n.fabric||(n.fabric={});if(i.Color){i.warn("fabric.Color is already defined.");return}i.Color=t;i.Color.prototype={_tryParsingColor:function(n){var i;if(n in t.colorNameMap&&(n=t.colorNameMap[n]),n==="transparent"){this.setSource([255,255,255,0]);return}i=t.sourceFromHex(n);i||(i=t.sourceFromRgb(n));i||(i=t.sourceFromHsl(n));i&&this.setSource(i)},_rgbToHsl:function(n,t,r){var f,s,h,u,e,o;if(n/=255,t/=255,r/=255,u=i.util.array.max([n,t,r]),e=i.util.array.min([n,t,r]),h=(u+e)/2,u===e)f=s=0;else{o=u-e;s=h>.5?o/(2-u-e):o/(u+e);switch(u){case n:f=(t-r)/o+(t<r?6:0);break;case t:f=(r-n)/o+2;break;case r:f=(n-t)/o+4}f/=6}return[Math.round(f*360),Math.round(s*100),Math.round(h*100)]},getSource:function(){return this._source},setSource:function(n){this._source=n},toRgb:function(){var n=this.getSource();return"rgb("+n[0]+","+n[1]+","+n[2]+")"},toRgba:function(){var n=this.getSource();return"rgba("+n[0]+","+n[1]+","+n[2]+","+n[3]+")"},toHsl:function(){var n=this.getSource(),t=this._rgbToHsl(n[0],n[1],n[2]);return"hsl("+t[0]+","+t[1]+"%,"+t[2]+"%)"},toHsla:function(){var n=this.getSource(),t=this._rgbToHsl(n[0],n[1],n[2]);return"hsla("+t[0]+","+t[1]+"%,"+t[2]+"%,"+n[3]+")"},toHex:function(){var r=this.getSource(),n,t,i;return n=r[0].toString(16),n=n.length===1?"0"+n:n,t=r[1].toString(16),t=t.length===1?"0"+t:t,i=r[2].toString(16),i=i.length===1?"0"+i:i,n.toUpperCase()+t.toUpperCase()+i.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(n){var t=this.getSource();return t[3]=n,this.setSource(t),this},toGrayscale:function(){var n=this.getSource(),t=parseInt((n[0]*.3+n[1]*.59+n[2]*.11).toFixed(0),10),i=n[3];return this.setSource([t,t,t,i]),this},toBlackWhite:function(n){var i=this.getSource(),t=(i[0]*.3+i[1]*.59+i[2]*.11).toFixed(0),r=i[3];return n=n||127,t=Number(t)<Number(n)?0:255,this.setSource([t,t,t,r]),this},overlayWith:function(n){var i;n instanceof t||(n=new t(n));var r=[],f=this.getAlpha(),u=.5,e=this.getSource(),o=n.getSource();for(i=0;i<3;i++)r.push(Math.round(e[i]*(1-u)+o[i]*u));return r[3]=f,this.setSource(r),this}};i.Color.reRGBa=/^rgba?\(\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/;i.Color.reHSLa=/^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3}\%)\s*,\s*(\d{1,3}\%)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/;i.Color.reHex=/^#?([0-9a-f]{6}|[0-9a-f]{3})$/i;i.Color.colorNameMap={aqua:"#00FFFF",black:"#000000",blue:"#0000FF",fuchsia:"#FF00FF",gray:"#808080",green:"#008000",lime:"#00FF00",maroon:"#800000",navy:"#000080",olive:"#808000",orange:"#FFA500",purple:"#800080",red:"#FF0000",silver:"#C0C0C0",teal:"#008080",white:"#FFFFFF",yellow:"#FFFF00"};i.Color.fromRgb=function(n){return t.fromSource(t.sourceFromRgb(n))};i.Color.sourceFromRgb=function(n){var i=n.match(t.reRGBa);if(i){var r=parseInt(i[1],10)/(/%$/.test(i[1])?100:1)*(/%$/.test(i[1])?255:1),u=parseInt(i[2],10)/(/%$/.test(i[2])?100:1)*(/%$/.test(i[2])?255:1),f=parseInt(i[3],10)/(/%$/.test(i[3])?100:1)*(/%$/.test(i[3])?255:1);return[parseInt(r,10),parseInt(u,10),parseInt(f,10),i[4]?parseFloat(i[4]):1]}};i.Color.fromRgba=t.fromRgb;i.Color.fromHsl=function(n){return t.fromSource(t.sourceFromHsl(n))};i.Color.sourceFromHsl=function(n){var i=n.match(t.reHSLa),f,o;if(i){var s=(parseFloat(i[1])%360+360)%360/360,e=parseFloat(i[2])/(/%$/.test(i[2])?100:1),u=parseFloat(i[3])/(/%$/.test(i[3])?100:1),h,c,l;return e===0?h=c=l=u:(f=u<=.5?u*(e+1):u+e-u*e,o=u*2-f,h=r(o,f,s+1/3),c=r(o,f,s),l=r(o,f,s-1/3)),[Math.round(h*255),Math.round(c*255),Math.round(l*255),i[4]?parseFloat(i[4]):1]}};i.Color.fromHsla=t.fromHsl;i.Color.fromHex=function(n){return t.fromSource(t.sourceFromHex(n))};i.Color.sourceFromHex=function(n){if(n.match(t.reHex)){var i=n.slice(n.indexOf("#")+1),r=i.length===3,u=r?i.charAt(0)+i.charAt(0):i.substring(0,2),f=r?i.charAt(1)+i.charAt(1):i.substring(2,4),e=r?i.charAt(2)+i.charAt(2):i.substring(4,6);return[parseInt(u,16),parseInt(f,16),parseInt(e,16),1]}};i.Color.fromSource=function(n){var i=new t;return i.setSource(n),i}}(typeof exports!="undefined"?exports:this),function(){function t(n){var e=n.getAttribute("style"),t=n.getAttribute("offset"),r,o,i,u,f;if(t=parseFloat(t)/(/%$/.test(t)?100:1),t=t<0?0:t>1?1:t,e)for(u=e.split(/\s*;\s*/),u[u.length-1]===""&&u.pop(),f=u.length;f--;){var s=u[f].split(/\s*:\s*/),h=s[0].trim(),c=s[1].trim();h==="stop-color"?r=c:h==="stop-opacity"&&(i=c)}return r||(r=n.getAttribute("stop-color")||"rgb(0,0,0)"),i||(i=n.getAttribute("stop-opacity")),r=new fabric.Color(r),o=r.getAlpha(),i=isNaN(parseFloat(i))?1:parseFloat(i),i*=o,{offset:t,color:r.toRgb(),opacity:i}}function i(n){return{x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}}function r(n){return{x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"}}function n(n,t,i){var o,e=0,u=1,s="",r,f;for(r in t)o=parseFloat(t[r],10),u=typeof t[r]=="string"&&/^\d+%$/.test(t[r])?.01:1,r==="x1"||r==="x2"||r==="r2"?(u*=i==="objectBoundingBox"?n.width:1,e=i==="objectBoundingBox"?n.left||0:0):(r==="y1"||r==="y2")&&(u*=i==="objectBoundingBox"?n.height:1,e=i==="objectBoundingBox"?n.top||0:0),t[r]=o*u+e;return n.type==="ellipse"&&t.r2!==null&&i==="objectBoundingBox"&&n.rx!==n.ry&&(f=n.ry/n.rx,s=" scale(1, "+f+")",t.y1&&(t.y1/=f),t.y2&&(t.y2/=f)),s}fabric.Gradient=fabric.util.createClass({offsetX:0,offsetY:0,initialize:function(n){n||(n={});var t={};this.id=fabric.Object.__uid++;this.type=n.type||"linear";t={x1:n.coords.x1||0,y1:n.coords.y1||0,x2:n.coords.x2||0,y2:n.coords.y2||0};this.type==="radial"&&(t.r1=n.coords.r1||0,t.r2=n.coords.r2||0);this.coords=t;this.colorStops=n.colorStops.slice();n.gradientTransform&&(this.gradientTransform=n.gradientTransform);this.offsetX=n.offsetX||this.offsetX;this.offsetY=n.offsetY||this.offsetY},addColorStop:function(n){var t,i;for(t in n)i=new fabric.Color(n[t]),this.colorStops.push({offset:t,color:i.toRgb(),opacity:i.getAlpha()});return this},toObject:function(){return{type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(n){var t=fabric.util.object.clone(this.coords),u,f,i,r;if(this.colorStops.sort(function(n,t){return n.offset-t.offset}),!(n.group&&n.group.type==="path-group"))for(i in t)i==="x1"||i==="x2"||i==="r2"?t[i]+=this.offsetX-n.width/2:(i==="y1"||i==="y2")&&(t[i]+=this.offsetY-n.height/2);for(f='id="SVGID_'+this.id+'" gradientUnits="userSpaceOnUse"',this.gradientTransform&&(f+=' gradientTransform="matrix('+this.gradientTransform.join(" ")+')" '),this.type==="linear"?u=["<linearGradient ",f,' x1="',t.x1,'" y1="',t.y1,'" x2="',t.x2,'" y2="',t.y2,'">\n']:this.type==="radial"&&(u=["<radialGradient ",f,' cx="',t.x2,'" cy="',t.y2,'" r="',t.r2,'" fx="',t.x1,'" fy="',t.y1,'">\n']),r=0;r<this.colorStops.length;r++)u.push("<stop ",'offset="',this.colorStops[r].offset*100+"%",'" style="stop-color:',this.colorStops[r].color,this.colorStops[r].opacity!=null?";stop-opacity: "+this.colorStops[r].opacity:";",'"/>\n');return u.push(this.type==="linear"?"<\/linearGradient>\n":"<\/radialGradient>\n"),u.join("")},toLive:function(n,t){var f,r,i=fabric.util.object.clone(this.coords),u,o;if(this.type){if(t.group&&t.group.type==="path-group")for(r in i)r==="x1"||r==="x2"?i[r]+=-this.offsetX+t.width/2:(r==="y1"||r==="y2")&&(i[r]+=-this.offsetY+t.height/2);if(t.type==="text"||t.type==="i-text")for(r in i)r==="x1"||r==="x2"?i[r]-=t.width/2:(r==="y1"||r==="y2")&&(i[r]-=t.height/2);for(this.type==="linear"?f=n.createLinearGradient(i.x1,i.y1,i.x2,i.y2):this.type==="radial"&&(f=n.createRadialGradient(i.x1,i.y1,i.r1,i.x2,i.y2,i.r2)),u=0,o=this.colorStops.length;u<o;u++){var e=this.colorStops[u].color,s=this.colorStops[u].opacity,h=this.colorStops[u].offset;typeof s!="undefined"&&(e=new fabric.Color(e).setAlpha(s).toRgba());f.addColorStop(parseFloat(h),e)}return f}}});fabric.util.object.extend(fabric.Gradient,{fromElement:function(u,f){var l=u.getElementsByTagName("stop"),o=u.nodeName==="linearGradient"?"linear":"radial",y=u.getAttribute("gradientUnits")||"objectBoundingBox",a=u.getAttribute("gradientTransform"),v=[],e={},s,h,c;for(o==="linear"?e=i(u):o==="radial"&&(e=r(u)),h=l.length;h--;)v.push(t(l[h]));return s=n(f,e,y),c=new fabric.Gradient({type:o,coords:e,colorStops:v,offsetX:-f.left,offsetY:-f.top}),(a||s!=="")&&(c.gradientTransform=fabric.parseTransformAttribute((a||"")+s)),c},forObject:function(t,i){return i||(i={}),n(t,i.coords,"userSpaceOnUse"),new fabric.Gradient(i)}})}();fabric.Pattern=fabric.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,initialize:function(n){if(n||(n={}),this.id=fabric.Object.__uid++,n.source)if(typeof n.source=="string")if(typeof fabric.util.getFunctionBody(n.source)!="undefined")this.source=new Function(fabric.util.getFunctionBody(n.source));else{var t=this;this.source=fabric.util.createImage();fabric.util.loadImage(n.source,function(n){t.source=n})}else this.source=n.source;n.repeat&&(this.repeat=n.repeat);n.offsetX&&(this.offsetX=n.offsetX);n.offsetY&&(this.offsetY=n.offsetY)},toObject:function(){var n;return typeof this.source=="function"?n=String(this.source):typeof this.source.src=="string"&&(n=this.source.src),{source:n,repeat:this.repeat,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(n){var t=typeof this.source=="function"?this.source():this.source,r=t.width/n.getWidth(),u=t.height/n.getHeight(),f=this.offsetX/n.getWidth(),e=this.offsetY/n.getHeight(),i="";return(this.repeat==="repeat-x"||this.repeat==="no-repeat")&&(u=1),(this.repeat==="repeat-y"||this.repeat==="no-repeat")&&(r=1),t.src?i=t.src:t.toDataURL&&(i=t.toDataURL()),'<pattern id="SVGID_'+this.id+'" x="'+f+'" y="'+e+'" width="'+r+'" height="'+u+'">\n<image x="0" y="0" width="'+t.width+'" height="'+t.height+'" xlink:href="'+i+'"><\/image>\n<\/pattern>\n'},toLive:function(n){var t=typeof this.source=="function"?this.source():this.source;return t?typeof t.src!="undefined"&&(!t.complete||t.naturalWidth===0||t.naturalHeight===0)?"":n.createPattern(t,this.repeat):""}}),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.toFixed;if(t.Shadow){t.warn("fabric.Shadow is already defined.");return}t.Shadow=t.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,initialize:function(n){typeof n=="string"&&(n=this._parseShadow(n));for(var i in n)this[i]=n[i];this.id=t.Object.__uid++},_parseShadow:function(n){var r=n.trim(),i=t.Shadow.reOffsetsAndBlur.exec(r)||[],u=r.replace(t.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)";return{color:u.trim(),offsetX:parseInt(i[1],10)||0,offsetY:parseInt(i[2],10)||0,blur:parseInt(i[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(n){var u="SourceAlpha",t=40,r=40;return n&&(n.fill===this.color||n.stroke===this.color)&&(u="SourceGraphic"),n.width&&n.height&&(t=i(Math.abs(this.offsetX/n.getWidth()),2)*100+20,r=i(Math.abs(this.offsetY/n.getHeight()),2)*100+20),'<filter id="SVGID_'+this.id+'" y="-'+r+'%" height="'+(100+2*r)+'%" x="-'+t+'%" width="'+(100+2*t)+'%" >\n\t<feGaussianBlur in="'+u+'" stdDeviation="'+i(this.blur?this.blur/2:0,3)+'" result="blurOut"><\/feGaussianBlur>\n\t<feColorMatrix result="matrixOut" in="blurOut" type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.30 0" ><\/feColorMatrix >\n\t<feOffset dx="'+this.offsetX+'" dy="'+this.offsetY+'"><\/feOffset>\n\t<feMerge>\n\t\t<feMergeNode><\/feMergeNode>\n\t\t<feMergeNode in="SourceGraphic"><\/feMergeNode>\n\t<\/feMerge>\n<\/filter>\n'},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY};var n={},i=t.Shadow.prototype;return this.color!==i.color&&(n.color=this.color),this.blur!==i.blur&&(n.blur=this.blur),this.offsetX!==i.offsetX&&(n.offsetX=this.offsetX),this.offsetY!==i.offsetY&&(n.offsetY=this.offsetY),n}});t.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:px)?(?:\s?|$))?(-?\d+(?:px)?(?:\s?|$))?(\d+(?:px)?)?(?:\s?|$)(?:$|\s)/}(typeof exports!="undefined"?exports:this),function(){"use strict";if(fabric.StaticCanvas){fabric.warn("fabric.StaticCanvas is already defined.");return}var n=fabric.util.object.extend,r=fabric.util.getElementOffset,t=fabric.util.removeFromArray,i=new Error("Could not initialize `canvas` element");fabric.StaticCanvas=fabric.util.createClass({initialize:function(n,t){t||(t={});this._initStatic(n,t);fabric.StaticCanvas.activeInstance=this},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:!0,stateful:!0,renderOnAddRemove:!0,clipTo:null,controlsAboveOverlay:!1,allowTouchScrolling:!1,imageSmoothingEnabled:!0,preserveObjectStacking:!1,viewportTransform:[1,0,0,1,0,0],onBeforeScaleRotate:function(){},_initStatic:function(n,t){this._objects=[];this._createLowerCanvas(n);this._initOptions(t);this._setImageSmoothing();t.overlayImage&&this.setOverlayImage(t.overlayImage,this.renderAll.bind(this));t.backgroundImage&&this.setBackgroundImage(t.backgroundImage,this.renderAll.bind(this));t.backgroundColor&&this.setBackgroundColor(t.backgroundColor,this.renderAll.bind(this));t.overlayColor&&this.setOverlayColor(t.overlayColor,this.renderAll.bind(this));this.calcOffset()},calcOffset:function(){return this._offset=r(this.lowerCanvasEl),this},setOverlayImage:function(n,t,i){return this.__setBgOverlayImage("overlayImage",n,t,i)},setBackgroundImage:function(n,t,i){return this.__setBgOverlayImage("backgroundImage",n,t,i)},setOverlayColor:function(n,t){return this.__setBgOverlayColor("overlayColor",n,t)},setBackgroundColor:function(n,t){return this.__setBgOverlayColor("backgroundColor",n,t)},_setImageSmoothing:function(){var n=this.getContext();n.imageSmoothingEnabled=this.imageSmoothingEnabled;n.webkitImageSmoothingEnabled=this.imageSmoothingEnabled;n.mozImageSmoothingEnabled=this.imageSmoothingEnabled;n.msImageSmoothingEnabled=this.imageSmoothingEnabled;n.oImageSmoothingEnabled=this.imageSmoothingEnabled},__setBgOverlayImage:function(n,t,i,r){return typeof t=="string"?fabric.util.loadImage(t,function(t){this[n]=new fabric.Image(t,r);i&&i()},this,r&&r.crossOrigin):(r&&t.setOptions(r),this[n]=t,i&&i()),this},__setBgOverlayColor:function(n,t,i){if(t&&t.source){var r=this;fabric.util.loadImage(t.source,function(u){r[n]=new fabric.Pattern({source:u,repeat:t.repeat,offsetX:t.offsetX,offsetY:t.offsetY});i&&i()})}else this[n]=t,i&&i();return this},_createCanvasElement:function(){var n=fabric.document.createElement("canvas");if(n.style||(n.style={}),!n)throw i;return this._initCanvasElement(n),n},_initCanvasElement:function(n){if(fabric.util.createCanvasElement(n),typeof n.getContext=="undefined")throw i;},_initOptions:function(n){for(var t in n)this[t]=n[t];(this.width=this.width||parseInt(this.lowerCanvasEl.width,10)||0,this.height=this.height||parseInt(this.lowerCanvasEl.height,10)||0,this.lowerCanvasEl.style)&&(this.lowerCanvasEl.width=this.width,this.lowerCanvasEl.height=this.height,this.lowerCanvasEl.style.width=this.width+"px",this.lowerCanvasEl.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())},_createLowerCanvas:function(n){this.lowerCanvasEl=fabric.util.getById(n)||this._createCanvasElement();this._initCanvasElement(this.lowerCanvasEl);fabric.util.addClass(this.lowerCanvasEl,"lower-canvas");this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl);this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(n,t){return this.setDimensions({width:n},t)},setHeight:function(n,t){return this.setDimensions({height:n},t)},setDimensions:function(n,t){var r,i;t=t||{};for(i in n)r=n[i],t.cssOnly||(this._setBackstoreDimension(i,n[i]),r+="px"),t.backstoreOnly||this._setCssDimension(i,r);return t.cssOnly||this.renderAll(),this.calcOffset(),this},_setBackstoreDimension:function(n,t){return this.lowerCanvasEl[n]=t,this.upperCanvasEl&&(this.upperCanvasEl[n]=t),this.cacheCanvasEl&&(this.cacheCanvasEl[n]=t),this[n]=t,this},_setCssDimension:function(n,t){return this.lowerCanvasEl.style[n]=t,this.upperCanvasEl&&(this.upperCanvasEl.style[n]=t),this.wrapperEl&&(this.wrapperEl.style[n]=t),this},getZoom:function(){return Math.sqrt(this.viewportTransform[0]*this.viewportTransform[3])},setViewportTransform:function(n){var i=this.getActiveGroup(),t,r;for(this.viewportTransform=n,this.renderAll(),t=0,r=this._objects.length;t<r;t++)this._objects[t].setCoords();return i&&i.setCoords(),this},zoomToPoint:function(n,t){var u=n,r,i,f;for(n=fabric.util.transformPoint(n,fabric.util.invertTransform(this.viewportTransform)),this.viewportTransform[0]=t,this.viewportTransform[3]=t,r=fabric.util.transformPoint(n,this.viewportTransform),this.viewportTransform[4]+=u.x-r.x,this.viewportTransform[5]+=u.y-r.y,this.renderAll(),i=0,f=this._objects.length;i<f;i++)this._objects[i].setCoords();return this},setZoom:function(n){return this.zoomToPoint(new fabric.Point(0,0),n),this},absolutePan:function(n){this.viewportTransform[4]=-n.x;this.viewportTransform[5]=-n.y;this.renderAll();for(var t=0,i=this._objects.length;t<i;t++)this._objects[t].setCoords();return this},relativePan:function(n){return this.absolutePan(new fabric.Point(-n.x-this.viewportTransform[4],-n.y-this.viewportTransform[5]))},getElement:function(){return this.lowerCanvasEl},getActiveObject:function(){return null},getActiveGroup:function(){return null},_draw:function(n,t){if(t){n.save();var i=this.viewportTransform;n.transform(i[0],i[1],i[2],i[3],i[4],i[5]);this._shouldRenderObject(t)&&t.render(n);n.restore();this.controlsAboveOverlay||t._renderControls(n)}},_shouldRenderObject:function(n){return n?n!==this.getActiveGroup()||!this.preserveObjectStacking:!1},_onObjectAdded:function(n){this.stateful&&n.setupState();n.canvas=this;n.setCoords();this.fire("object:added",{target:n});n.fire("added")},_onObjectRemoved:function(n){this.getActiveObject()===n&&(this.fire("before:selection:cleared",{target:n}),this._discardActiveObject(),this.fire("selection:cleared"));this.fire("object:removed",{target:n});n.fire("removed")},clearContext:function(n){return n.clearRect(0,0,this.width,this.height),this},getContext:function(){return this.contextContainer},clear:function(){return this._objects.length=0,this.discardActiveGroup&&this.discardActiveGroup(),this.discardActiveObject&&this.discardActiveObject(),this.clearContext(this.contextContainer),this.contextTop&&this.clearContext(this.contextTop),this.fire("canvas:cleared"),this.renderAll(),this},renderAll:function(n){var t=this[n===!0&&this.interactive?"contextTop":"contextContainer"],i=this.getActiveGroup();return this.contextTop&&this.selection&&!this._groupSelector&&this.clearContext(this.contextTop),n||this.clearContext(t),this.fire("before:render"),this.clipTo&&fabric.util.clipContext(this,t),this._renderBackground(t),this._renderObjects(t,i),this._renderActiveGroup(t,i),this.clipTo&&t.restore(),this._renderOverlay(t),this.controlsAboveOverlay&&this.interactive&&this.drawControls(t),this.fire("after:render"),this},_renderObjects:function(n,t){var i,r;if(!t||this.preserveObjectStacking)for(i=0,r=this._objects.length;i<r;++i)this._draw(n,this._objects[i]);else for(i=0,r=this._objects.length;i<r;++i)this._objects[i]&&!t.contains(this._objects[i])&&this._draw(n,this._objects[i])},_renderActiveGroup:function(n,t){if(t){var i=[];this.forEachObject(function(n){t.contains(n)&&i.push(n)});t._set("objects",i);this._draw(n,t)}},_renderBackground:function(n){this.backgroundColor&&(n.fillStyle=this.backgroundColor.toLive?this.backgroundColor.toLive(n):this.backgroundColor,n.fillRect(this.backgroundColor.offsetX||0,this.backgroundColor.offsetY||0,this.width,this.height));this.backgroundImage&&this._draw(n,this.backgroundImage)},_renderOverlay:function(n){this.overlayColor&&(n.fillStyle=this.overlayColor.toLive?this.overlayColor.toLive(n):this.overlayColor,n.fillRect(this.overlayColor.offsetX||0,this.overlayColor.offsetY||0,this.width,this.height));this.overlayImage&&this._draw(n,this.overlayImage)},renderTop:function(){var n=this.contextTop||this.contextContainer,t;return this.clearContext(n),this.selection&&this._groupSelector&&this._drawSelection(),t=this.getActiveGroup(),t&&t.render(n),this._renderOverlay(n),this.fire("after:render"),this},getCenter:function(){return{top:this.getHeight()/2,left:this.getWidth()/2}},centerObjectH:function(n){return this._centerObject(n,new fabric.Point(this.getCenter().left,n.getCenterPoint().y)),this.renderAll(),this},centerObjectV:function(n){return this._centerObject(n,new fabric.Point(n.getCenterPoint().x,this.getCenter().top)),this.renderAll(),this},centerObject:function(n){var t=this.getCenter();return this._centerObject(n,new fabric.Point(t.left,t.top)),this.renderAll(),this},_centerObject:function(n,t){return n.setPositionByOrigin(t,"center","center"),this},toDatalessJSON:function(n){return this.toDatalessObject(n)},toObject:function(n){return this._toObjectMethod("toObject",n)},toDatalessObject:function(n){return this._toObjectMethod("toDatalessObject",n)},_toObjectMethod:function(t,i){var r={objects:this._toObjects(t,i)};return n(r,this.__serializeBgOverlay()),fabric.util.populateWithProperties(this,r,i),r},_toObjects:function(n,t){return this.getObjects().map(function(i){return this._toObject(i,n,t)},this)},_toObject:function(n,t,i){var r,u,f;return this.includeDefaultValues||(r=n.includeDefaultValues,n.includeDefaultValues=!1),u=this._realizeGroupTransformOnObject(n),f=n[t](i),this.includeDefaultValues||(n.includeDefaultValues=r),this._unwindGroupTransformOnObject(n,u),f},_realizeGroupTransformOnObject:function(n){var t;return n.group&&n.group===this.getActiveGroup()?(t={},["angle","flipX","flipY","height","left","scaleX","scaleY","top","width"].forEach(function(i){t[i]=n[i]}),this.getActiveGroup().realizeTransform(n),t):null},_unwindGroupTransformOnObject:function(n,t){t&&n.set(t)},__serializeBgOverlay:function(){var n={background:this.backgroundColor&&this.backgroundColor.toObject?this.backgroundColor.toObject():this.backgroundColor};return this.overlayColor&&(n.overlay=this.overlayColor.toObject?this.overlayColor.toObject():this.overlayColor),this.backgroundImage&&(n.backgroundImage=this.backgroundImage.toObject()),this.overlayImage&&(n.overlayImage=this.overlayImage.toObject()),n},svgViewportTransformation:!0,toSVG:function(n,t){n||(n={});var i=[];return this._setSVGPreamble(i,n),this._setSVGHeader(i,n),this._setSVGBgOverlayColor(i,"backgroundColor"),this._setSVGBgOverlayImage(i,"backgroundImage"),this._setSVGObjects(i,t),this._setSVGBgOverlayColor(i,"overlayColor"),this._setSVGBgOverlayImage(i,"overlayImage"),i.push("<\/svg>"),i.join("")},_setSVGPreamble:function(n,t){t.suppressPreamble||n.push('<?xml version="1.0" encoding="',t.encoding||"UTF-8",'" standalone="no" ?>','<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ','"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')},_setSVGHeader:function(n,t){var i,r,u;t.viewBox?(i=t.viewBox.width,r=t.viewBox.height):(i=this.width,r=this.height,this.svgViewportTransformation||(u=this.viewportTransform,i/=u[0],r/=u[3]));n.push("<svg ",'xmlns="http://www.w3.org/2000/svg" ','xmlns:xlink="http://www.w3.org/1999/xlink" ','version="1.1" ','width="',i,'" ','height="',r,'" ',this.backgroundColor&&!this.backgroundColor.toLive?'style="background-color: '+this.backgroundColor+'" ':null,t.viewBox?'viewBox="'+t.viewBox.x+" "+t.viewBox.y+" "+t.viewBox.width+" "+t.viewBox.height+'" ':null,'xml:space="preserve">',"<desc>Created with Fabric.js ",fabric.version,"<\/desc>","<defs>",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),"<\/defs>")},_setSVGObjects:function(n,t){for(var i,f,r=0,u=this.getObjects(),e=u.length;r<e;r++)i=u[r],f=this._realizeGroupTransformOnObject(i),n.push(i.toSVG(t)),this._unwindGroupTransformOnObject(i,f)},_setSVGBgOverlayImage:function(n,t){this[t]&&this[t].toSVG&&n.push(this[t].toSVG())},_setSVGBgOverlayColor:function(n,t){this[t]&&this[t].source?n.push('<rect x="',this[t].offsetX,'" y="',this[t].offsetY,'" ','width="',this[t].repeat==="repeat-y"||this[t].repeat==="no-repeat"?this[t].source.width:this.width,'" height="',this[t].repeat==="repeat-x"||this[t].repeat==="no-repeat"?this[t].source.height:this.height,'" fill="url(#'+t+'Pattern)"',"><\/rect>"):this[t]&&t==="overlayColor"&&n.push('<rect x="0" y="0" ','width="',this.width,'" height="',this.height,'" fill="',this[t],'"',"><\/rect>")},sendToBack:function(n){return t(this._objects,n),this._objects.unshift(n),this.renderAll&&this.renderAll()},bringToFront:function(n){return t(this._objects,n),this._objects.push(n),this.renderAll&&this.renderAll()},sendBackwards:function(n,i){var r=this._objects.indexOf(n),u;return r!==0&&(u=this._findNewLowerIndex(n,r,i),t(this._objects,n),this._objects.splice(u,0,n),this.renderAll&&this.renderAll()),this},_findNewLowerIndex:function(n,t,i){var u,r,f;if(i){for(u=t,r=t-1;r>=0;--r)if(f=n.intersectsWithObject(this._objects[r])||n.isContainedWithinObject(this._objects[r])||this._objects[r].isContainedWithinObject(n),f){u=r;break}}else u=t-1;return u},bringForward:function(n,i){var r=this._objects.indexOf(n),u;return r!==this._objects.length-1&&(u=this._findNewUpperIndex(n,r,i),t(this._objects,n),this._objects.splice(u,0,n),this.renderAll&&this.renderAll()),this},_findNewUpperIndex:function(n,t,i){var u,r,f;if(i){for(u=t,r=t+1;r<this._objects.length;++r)if(f=n.intersectsWithObject(this._objects[r])||n.isContainedWithinObject(this._objects[r])||this._objects[r].isContainedWithinObject(n),f){u=r;break}}else u=t+1;return u},moveTo:function(n,i){return t(this._objects,n),this._objects.splice(i,0,n),this.renderAll&&this.renderAll()},dispose:function(){return this.clear(),this.interactive&&this.removeListeners(),this},toString:function(){return"#<fabric.Canvas ("+this.complexity()+"): { objects: "+this.getObjects().length+" }>"}});n(fabric.StaticCanvas.prototype,fabric.Observable);n(fabric.StaticCanvas.prototype,fabric.Collection);n(fabric.StaticCanvas.prototype,fabric.DataURLExporter);n(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(n){var t=fabric.util.createCanvasElement(),i;if(!t||!t.getContext||(i=t.getContext("2d"),!i))return null;switch(n){case"getImageData":return typeof i.getImageData!="undefined";case"setLineDash":return typeof i.setLineDash!="undefined";case"toDataURL":return typeof t.toDataURL!="undefined";case"toDataURLWithQuality":try{return t.toDataURL("image/jpeg",0),!0}catch(r){}return!1;default:return null}}});fabric.StaticCanvas.prototype.toJSON=fabric.StaticCanvas.prototype.toObject}();fabric.BaseBrush=fabric.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeDashArray:null,setShadow:function(n){return this.shadow=new fabric.Shadow(n),this},_setBrushStyles:function(){var n=this.canvas.contextTop;n.strokeStyle=this.color;n.lineWidth=this.width;n.lineCap=this.strokeLineCap;n.lineJoin=this.strokeLineJoin;this.strokeDashArray&&fabric.StaticCanvas.supports("setLineDash")&&n.setLineDash(this.strokeDashArray)},_setShadow:function(){if(this.shadow){var n=this.canvas.contextTop;n.shadowColor=this.shadow.color;n.shadowBlur=this.shadow.blur;n.shadowOffsetX=this.shadow.offsetX;n.shadowOffsetY=this.shadow.offsetY}},_resetShadow:function(){var n=this.canvas.contextTop;n.shadowColor="";n.shadowBlur=n.shadowOffsetX=n.shadowOffsetY=0}}),function(){fabric.PencilBrush=fabric.util.createClass(fabric.BaseBrush,{initialize:function(n){this.canvas=n;this._points=[]},onMouseDown:function(n){this._prepareForDrawing(n);this._captureDrawingPath(n);this._render()},onMouseMove:function(n){this._captureDrawingPath(n);this.canvas.clearContext(this.canvas.contextTop);this._render()},onMouseUp:function(){this._finalizeAndAddPath()},_prepareForDrawing:function(n){var t=new fabric.Point(n.x,n.y);this._reset();this._addPoint(t);this.canvas.contextTop.moveTo(t.x,t.y)},_addPoint:function(n){this._points.push(n)},_reset:function(){this._points.length=0;this._setBrushStyles();this._setShadow()},_captureDrawingPath:function(n){var t=new fabric.Point(n.x,n.y);this._addPoint(t)},_render:function(){var t=this.canvas.contextTop,i=this.canvas.viewportTransform,n=this._points[0],r=this._points[1],u,e,f;for(t.save(),t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),t.beginPath(),this._points.length===2&&n.x===r.x&&n.y===r.y&&(n.x-=.5,r.x+=.5),t.moveTo(n.x,n.y),u=1,e=this._points.length;u<e;u++)f=n.midPointFrom(r),t.quadraticCurveTo(n.x,n.y,f.x,f.y),n=this._points[u],r=this._points[u+1];t.lineTo(n.x,n.y);t.stroke();t.restore()},convertPointsToSVGPath:function(n){var r=[],i=new fabric.Point(n[0].x,n[0].y),f=new fabric.Point(n[1].x,n[1].y),t,e,u;for(r.push("M ",n[0].x," ",n[0].y," "),t=1,e=n.length;t<e;t++)u=i.midPointFrom(f),r.push("Q ",i.x," ",i.y," ",u.x," ",u.y," "),i=new fabric.Point(n[t].x,n[t].y),t+1<n.length&&(f=new fabric.Point(n[t+1].x,n[t+1].y));return r.push("L ",i.x," ",i.y," "),r},createPath:function(n){var t=new fabric.Path(n,{fill:null,stroke:this.color,strokeWidth:this.width,strokeLineCap:this.strokeLineCap,strokeLineJoin:this.strokeLineJoin,strokeDashArray:this.strokeDashArray,originX:"center",originY:"center"});return this.shadow&&(this.shadow.affectStroke=!0,t.setShadow(this.shadow)),t},_finalizeAndAddPath:function(){var i=this.canvas.contextTop,t,n;if(i.closePath(),t=this.convertPointsToSVGPath(this._points).join(""),t==="M 0 0 Q 0 0 0 0 L 0 0"){this.canvas.renderAll();return}n=this.createPath(t);this.canvas.add(n);n.setCoords();this.canvas.clearContext(this.canvas.contextTop);this._resetShadow();this.canvas.renderAll();this.canvas.fire("path:created",{path:n})}})}();fabric.CircleBrush=fabric.util.createClass(fabric.BaseBrush,{width:10,initialize:function(n){this.canvas=n;this.points=[]},drawDot:function(n){var r=this.addPoint(n),t=this.canvas.contextTop,i=this.canvas.viewportTransform;t.save();t.transform(i[0],i[1],i[2],i[3],i[4],i[5]);t.fillStyle=r.fill;t.beginPath();t.arc(r.x,r.y,r.radius,0,Math.PI*2,!1);t.closePath();t.fill();t.restore()},onMouseDown:function(n){this.points.length=0;this.canvas.clearContext(this.canvas.contextTop);this._setShadow();this.drawDot(n)},onMouseMove:function(n){this.drawDot(n)},onMouseUp:function(){var e=this.canvas.renderOnAddRemove,r,t,f,n,u,i;for(this.canvas.renderOnAddRemove=!1,r=[],t=0,f=this.points.length;t<f;t++)n=this.points[t],u=new fabric.Circle({radius:n.radius,left:n.x,top:n.y,originX:"center",originY:"center",fill:n.fill}),this.shadow&&u.setShadow(this.shadow),r.push(u);i=new fabric.Group(r,{originX:"center",originY:"center"});i.canvas=this.canvas;this.canvas.add(i);this.canvas.fire("path:created",{path:i});this.canvas.clearContext(this.canvas.contextTop);this._resetShadow();this.canvas.renderOnAddRemove=e;this.canvas.renderAll()},addPoint:function(n){var t=new fabric.Point(n.x,n.y),i=fabric.util.getRandomInt(Math.max(0,this.width-20),this.width+20)/2,r=new fabric.Color(this.color).setAlpha(fabric.util.getRandomInt(0,100)/100).toRgba();return t.radius=i,t.fill=r,this.points.push(t),t}});fabric.SprayBrush=fabric.util.createClass(fabric.BaseBrush,{width:10,density:20,dotWidth:1,dotWidthVariance:1,randomOpacity:!1,optimizeOverlapping:!0,initialize:function(n){this.canvas=n;this.sprayChunks=[]},onMouseDown:function(n){this.sprayChunks.length=0;this.canvas.clearContext(this.canvas.contextTop);this._setShadow();this.addSprayChunk(n);this.render()},onMouseMove:function(n){this.addSprayChunk(n);this.render()},onMouseUp:function(){var s=this.canvas.renderOnAddRemove,i,r,e,t,n,o,f,u;for(this.canvas.renderOnAddRemove=!1,i=[],r=0,e=this.sprayChunks.length;r<e;r++)for(t=this.sprayChunks[r],n=0,o=t.length;n<o;n++)f=new fabric.Rect({width:t[n].width,height:t[n].width,left:t[n].x+1,top:t[n].y+1,originX:"center",originY:"center",fill:this.color}),this.shadow&&f.setShadow(this.shadow),i.push(f);this.optimizeOverlapping&&(i=this._getOptimizedRects(i));u=new fabric.Group(i,{originX:"center",originY:"center"});u.canvas=this.canvas;this.canvas.add(u);this.canvas.fire("path:created",{path:u});this.canvas.clearContext(this.canvas.contextTop);this._resetShadow();this.canvas.renderOnAddRemove=s;this.canvas.renderAll()},_getOptimizedRects:function(n){for(var u,r={},t,i=0,f=n.length;i<f;i++)t=n[i].left+""+n[i].top,r[t]||(r[t]=n[i]);u=[];for(t in r)u.push(r[t]);return u},render:function(){var i=this.canvas.contextTop,n,r,u,t;for(i.fillStyle=this.color,n=this.canvas.viewportTransform,i.save(),i.transform(n[0],n[1],n[2],n[3],n[4],n[5]),r=0,u=this.sprayChunkPoints.length;r<u;r++)t=this.sprayChunkPoints[r],typeof t.opacity!="undefined"&&(i.globalAlpha=t.opacity),i.fillRect(t.x,t.y,t.width,t.width);i.restore()},addSprayChunk:function(n){var u,f,e,t,r,i;for(this.sprayChunkPoints=[],t=this.width/2,r=0;r<this.density;r++)u=fabric.util.getRandomInt(n.x-t,n.x+t),f=fabric.util.getRandomInt(n.y-t,n.y+t),e=this.dotWidthVariance?fabric.util.getRandomInt(Math.max(1,this.dotWidth-this.dotWidthVariance),this.dotWidth+this.dotWidthVariance):this.dotWidth,i=new fabric.Point(u,f),i.width=e,this.randomOpacity&&(i.opacity=fabric.util.getRandomInt(0,100)/100),this.sprayChunkPoints.push(i);this.sprayChunks.push(this.sprayChunkPoints)}});fabric.PatternBrush=fabric.util.createClass(fabric.PencilBrush,{getPatternSrc:function(){var t=20,i=fabric.document.createElement("canvas"),n=i.getContext("2d");return i.width=i.height=t+5,n.fillStyle=this.color,n.beginPath(),n.arc(t/2,t/2,t/2,0,Math.PI*2,!1),n.closePath(),n.fill(),i},getPatternSrcFunction:function(){return String(this.getPatternSrc).replace("this.color",'"'+this.color+'"')},getPattern:function(){return this.canvas.contextTop.createPattern(this.source||this.getPatternSrc(),"repeat")},_setBrushStyles:function(){this.callSuper("_setBrushStyles");this.canvas.contextTop.strokeStyle=this.getPattern()},createPath:function(n){var t=this.callSuper("createPath",n);return t.stroke=new fabric.Pattern({source:this.source||this.getPatternSrcFunction()}),t}}),function(){var u=fabric.util.getPointer,f=fabric.util.degreesToRadians,e=fabric.util.radiansToDegrees,r=Math.atan2,n=Math.abs,t=.5,i;fabric.Canvas=fabric.util.createClass(fabric.StaticCanvas,{initialize:function(n,t){t||(t={});this._initStatic(n,t);this._initInteractive();this._createCacheCanvas();fabric.Canvas.activeInstance=this},uniScaleTransform:!1,centeredScaling:!1,centeredRotation:!1,interactive:!0,selection:!0,selectionColor:"rgba(100, 100, 255, 0.3)",selectionDashArray:[],selectionBorderColor:"rgba(255, 255, 255, 0.3)",selectionLineWidth:1,hoverCursor:"move",moveCursor:"move",defaultCursor:"default",freeDrawingCursor:"crosshair",rotationCursor:"crosshair",containerClass:"canvas-container",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,_initInteractive:function(){this._currentTransform=null;this._groupSelector=null;this._initWrapperElement();this._createUpperCanvas();this._initEventListeners();this.freeDrawingBrush=fabric.PencilBrush&&new fabric.PencilBrush(this);this.calcOffset()},_resetCurrentTransform:function(n){var t=this._currentTransform;t.target.set({scaleX:t.original.scaleX,scaleY:t.original.scaleY,left:t.original.left,top:t.original.top});this._shouldCenterTransform(n,t.target)?t.action==="rotate"?this._setOriginToCenter(t.target):(t.originX!=="center"&&(t.mouseXSign=t.originX==="right"?-1:1),t.originY!=="center"&&(t.mouseYSign=t.originY==="bottom"?-1:1),t.originX="center",t.originY="center"):(t.originX=t.original.originX,t.originY=t.original.originY)},containsPoint:function(n,t){var i=this.getPointer(n,!0),r=this._normalizePointer(t,i);return t.containsPoint(r)||t._findTargetCorner(i)},_normalizePointer:function(n,t){var r=this.getActiveGroup(),u=t.x,f=t.y,e=r&&n.type!=="group"&&r.contains(n),i;return e&&(i=new fabric.Point(r.left,r.top),i=fabric.util.transformPoint(i,this.viewportTransform,!0),u-=i.x,f-=i.y),{x:u,y:f}},isTargetTransparent:function(n,t,i){var u=n.hasBorders,f=n.transparentCorners,r;return n.hasBorders=n.transparentCorners=!1,this._draw(this.contextCache,n),n.hasBorders=u,n.transparentCorners=f,r=fabric.util.isTransparent(this.contextCache,t,i,this.targetFindTolerance),this.clearContext(this.contextCache),r},_shouldClearSelection:function(n,t){var i=this.getActiveGroup(),r=this.getActiveObject();return!t||t&&i&&!i.contains(t)&&i!==t&&!n.shiftKey||t&&!t.evented||t&&!t.selectable&&r&&r!==t},_shouldCenterTransform:function(n,t){if(t){var i=this._currentTransform,r;return i.action==="scale"||i.action==="scaleX"||i.action==="scaleY"?r=this.centeredScaling||t.centeredScaling:i.action==="rotate"&&(r=this.centeredRotation||t.centeredRotation),r?!n.altKey:n.altKey}},_getOriginFromCorner:function(n,t){var i={x:n.originX,y:n.originY};return t==="ml"||t==="tl"||t==="bl"?i.x="right":(t==="mr"||t==="tr"||t==="br")&&(i.x="left"),t==="tl"||t==="mt"||t==="tr"?i.y="bottom":(t==="bl"||t==="mb"||t==="br")&&(i.y="top"),i},_getActionFromCorner:function(n,t){var i="drag";return t&&(i=t==="ml"||t==="mr"?"scaleX":t==="mt"||t==="mb"?"scaleY":t==="mtr"?"rotate":"scale"),i},_setupCurrentTransform:function(n,t){if(t){var i=this.getPointer(n),u=t._findTargetCorner(this.getPointer(n,!0)),e=this._getActionFromCorner(t,u),r=this._getOriginFromCorner(t,u);this._currentTransform={target:t,action:e,scaleX:t.scaleX,scaleY:t.scaleY,offsetX:i.x-t.left,offsetY:i.y-t.top,originX:r.x,originY:r.y,ex:i.x,ey:i.y,left:t.left,top:t.top,theta:f(t.angle),width:t.width*t.scaleX,mouseXSign:1,mouseYSign:1};this._currentTransform.original={left:t.left,top:t.top,scaleX:t.scaleX,scaleY:t.scaleY,originX:r.x,originY:r.y};this._resetCurrentTransform(n)}},_translateObject:function(n,t){var i=this._currentTransform.target;i.get("lockMovementX")||i.set("left",n-this._currentTransform.offsetX);i.get("lockMovementY")||i.set("top",t-this._currentTransform.offsetY)},_scaleObject:function(n,t,i){var r=this._currentTransform,u=r.target,e=u.get("lockScalingX"),o=u.get("lockScalingY"),h=u.get("lockScalingFlip"),s,f;e&&o||(s=u.translateToOriginPoint(u.getCenterPoint(),r.originX,r.originY),f=u.toLocalPoint(new fabric.Point(n,t),r.originX,r.originY),this._setLocalMouse(f,r),this._setObjectScale(f,r,e,o,i,h),u.setPositionByOrigin(s,r.originX,r.originY))},_setObjectScale:function(n,t,i,r,u,f){var e=t.target,o=!1,s=!1,h=e.stroke?e.strokeWidth:0;t.newScaleX=n.x/(e.width+h/2);t.newScaleY=n.y/(e.height+h/2);f&&t.newScaleX<=0&&t.newScaleX<e.scaleX&&(o=!0);f&&t.newScaleY<=0&&t.newScaleY<e.scaleY&&(s=!0);u!=="equally"||i||r?u?u!=="x"||e.get("lockUniScaling")?u!=="y"||e.get("lockUniScaling")||s||r||e.set("scaleY",t.newScaleY):o||i||e.set("scaleX",t.newScaleX):(o||i||e.set("scaleX",t.newScaleX),s||r||e.set("scaleY",t.newScaleY)):o||s||this._scaleObjectEqually(n,e,t);o||s||this._flipObject(t,u)},_scaleObjectEqually:function(n,t,i){var r=n.y+n.x,u=t.stroke?t.strokeWidth:0,f=(t.height+u/2)*i.original.scaleY+(t.width+u/2)*i.original.scaleX;i.newScaleX=i.original.scaleX*r/f;i.newScaleY=i.original.scaleY*r/f;t.set("scaleX",i.newScaleX);t.set("scaleY",i.newScaleY)},_flipObject:function(n,t){n.newScaleX<0&&t!=="y"&&(n.originX==="left"?n.originX="right":n.originX==="right"&&(n.originX="left"));n.newScaleY<0&&t!=="x"&&(n.originY==="top"?n.originY="bottom":n.originY==="bottom"&&(n.originY="top"))},_setLocalMouse:function(t,i){var r=i.target;i.originX==="right"?t.x*=-1:i.originX==="center"&&(t.x*=i.mouseXSign*2,t.x<0&&(i.mouseXSign=-i.mouseXSign));i.originY==="bottom"?t.y*=-1:i.originY==="center"&&(t.y*=i.mouseYSign*2,t.y<0&&(i.mouseYSign=-i.mouseYSign));n(t.x)>r.padding?t.x<0?t.x+=r.padding:t.x-=r.padding:t.x=0;n(t.y)>r.padding?t.y<0?t.y+=r.padding:t.y-=r.padding:t.y=0},_rotateObject:function(n,t){var i=this._currentTransform;if(!i.target.get("lockRotation")){var f=r(i.ey-i.top,i.ex-i.left),o=r(t-i.top,n-i.left),u=e(o-f+i.theta);u<0&&(u=360+u);i.target.angle=u%360}},setCursor:function(n){this.upperCanvasEl.style.cursor=n},_resetObjectTransform:function(n){n.scaleX=1;n.scaleY=1;n.setAngle(0)},_drawSelection:function(){var i=this.contextTop,f=this._groupSelector,s=f.left,h=f.top,e=n(s),o=n(h),r,u;i.fillStyle=this.selectionColor;i.fillRect(f.ex-(s>0?0:-s),f.ey-(h>0?0:-h),e,o);i.lineWidth=this.selectionLineWidth;i.strokeStyle=this.selectionBorderColor;this.selectionDashArray.length>1?(r=f.ex+t-(s>0?0:e),u=f.ey+t-(h>0?0:o),i.beginPath(),fabric.util.drawDashedLine(i,r,u,r+e,u,this.selectionDashArray),fabric.util.drawDashedLine(i,r,u+o-1,r+e,u+o-1,this.selectionDashArray),fabric.util.drawDashedLine(i,r,u,r,u+o,this.selectionDashArray),fabric.util.drawDashedLine(i,r+e-1,u,r+e-1,u+o,this.selectionDashArray),i.closePath(),i.stroke()):i.strokeRect(f.ex+t-(s>0?0:e),f.ey+t-(h>0?0:o),e,o)},_isLastRenderedObject:function(n){return this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay.visible&&this.containsPoint(n,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(this.getPointer(n,!0))},findTarget:function(n,t){var i,r;if(!this.skipTargetFind)return this._isLastRenderedObject(n)?this.lastRenderedObjectWithControlsAboveOverlay:(i=this.getActiveGroup(),i&&!t&&this.containsPoint(n,i))?i:(r=this._searchPossibleTargets(n),this._fireOverOutEvents(r),r)},_fireOverOutEvents:function(n){n?this._hoveredTarget!==n&&(this.fire("mouse:over",{target:n}),n.fire("mouseover"),this._hoveredTarget&&(this.fire("mouse:out",{target:this._hoveredTarget}),this._hoveredTarget.fire("mouseout")),this._hoveredTarget=n):this._hoveredTarget&&(this.fire("mouse:out",{target:this._hoveredTarget}),this._hoveredTarget.fire("mouseout"),this._hoveredTarget=null)},_checkTarget:function(n,t,i){if(t&&t.visible&&t.evented&&this.containsPoint(n,t))if((this.perPixelTargetFind||t.perPixelTargetFind)&&!t.isEditing){var r=this.isTargetTransparent(t,i.x,i.y);if(!r)return!0}else return!0},_searchPossibleTargets:function(n){for(var i,r=this.getPointer(n,!0),t=this._objects.length;t--;)if(!this._objects[t].group&&this._checkTarget(n,this._objects[t],r)){this.relatedTarget=this._objects[t];i=this._objects[t];break}return i},getPointer:function(n,t,i){i||(i=this.upperCanvasEl);var f=u(n,i),r=i.getBoundingClientRect(),e=r.width||0,o=r.height||0,s;return e&&o||("top"in r&&"bottom"in r&&(o=Math.abs(r.top-r.bottom)),"right"in r&&"left"in r&&(e=Math.abs(r.right-r.left))),this.calcOffset(),f.x=f.x-this._offset.left,f.y=f.y-this._offset.top,t||(f=fabric.util.transformPoint(f,fabric.util.invertTransform(this.viewportTransform))),s=e===0||o===0?{width:1,height:1}:{width:i.width/e,height:i.height/o},{x:f.x*s.width,y:f.y*s.height}},_createUpperCanvas:function(){var n=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,"");this.upperCanvasEl=this._createCanvasElement();fabric.util.addClass(this.upperCanvasEl,"upper-canvas "+n);this.wrapperEl.appendChild(this.upperCanvasEl);this._copyCanvasStyle(this.lowerCanvasEl,this.upperCanvasEl);this._applyCanvasStyle(this.upperCanvasEl);this.contextTop=this.upperCanvasEl.getContext("2d")},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement();this.cacheCanvasEl.setAttribute("width",this.width);this.cacheCanvasEl.setAttribute("height",this.height);this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=fabric.util.wrapElement(this.lowerCanvasEl,"div",{"class":this.containerClass});fabric.util.setStyle(this.wrapperEl,{width:this.getWidth()+"px",height:this.getHeight()+"px",position:"relative"});fabric.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(n){var t=this.getWidth()||n.width,i=this.getHeight()||n.height;fabric.util.setStyle(n,{position:"absolute",width:t+"px",height:i+"px",left:0,top:0});n.width=t;n.height=i;fabric.util.makeElementUnselectable(n)},_copyCanvasStyle:function(n,t){t.style.cssText=n.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},_setActiveObject:function(n){this._activeObject&&this._activeObject.set("active",!1);this._activeObject=n;n.set("active",!0)},setActiveObject:function(n,t){return this._setActiveObject(n),this.renderAll(),this.fire("object:selected",{target:n,e:t}),n.fire("selected",{e:t}),this},getActiveObject:function(){return this._activeObject},_discardActiveObject:function(){this._activeObject&&this._activeObject.set("active",!1);this._activeObject=null},discardActiveObject:function(n){return this._discardActiveObject(),this.renderAll(),this.fire("selection:cleared",{e:n}),this},_setActiveGroup:function(n){this._activeGroup=n;n&&n.set("active",!0)},setActiveGroup:function(n,t){return this._setActiveGroup(n),n&&(this.fire("object:selected",{target:n,e:t}),n.fire("selected",{e:t})),this},getActiveGroup:function(){return this._activeGroup},_discardActiveGroup:function(){var n=this.getActiveGroup();n&&n.destroy();this.setActiveGroup(null)},discardActiveGroup:function(n){return this._discardActiveGroup(),this.fire("selection:cleared",{e:n}),this},deactivateAll:function(){for(var t=this.getObjects(),n=0,i=t.length;n<i;n++)t[n].set("active",!1);return this._discardActiveGroup(),this._discardActiveObject(),this},deactivateAllWithDispatch:function(n){var t=this.getActiveGroup()||this.getActiveObject();return t&&this.fire("before:selection:cleared",{target:t,e:n}),this.deactivateAll(),t&&this.fire("selection:cleared",{e:n}),this},drawControls:function(n){var t=this.getActiveGroup();t?this._drawGroupControls(n,t):this._drawObjectsControls(n)},_drawGroupControls:function(n,t){t._renderControls(n)},_drawObjectsControls:function(n){for(var t=0,i=this._objects.length;t<i;++t)this._objects[t]&&this._objects[t].active&&(this._objects[t]._renderControls(n),this.lastRenderedObjectWithControlsAboveOverlay=this._objects[t])}});for(i in fabric.StaticCanvas)i!=="prototype"&&(fabric.Canvas[i]=fabric.StaticCanvas[i]);fabric.isTouchSupported&&(fabric.Canvas.prototype._setCursorFromEvent=function(){});fabric.Element=fabric.Canvas}(),function(){var i={mt:0,tr:1,mr:2,br:3,mb:4,bl:5,ml:6,tl:7},n=fabric.util.addListener,t=fabric.util.removeListener;fabric.util.object.extend(fabric.Canvas.prototype,{cursorMap:["n-resize","ne-resize","e-resize","se-resize","s-resize","sw-resize","w-resize","nw-resize"],_initEventListeners:function(){this._bindEvents();n(fabric.window,"resize",this._onResize);n(this.upperCanvasEl,"mousedown",this._onMouseDown);n(this.upperCanvasEl,"mousemove",this._onMouseMove);n(this.upperCanvasEl,"mousewheel",this._onMouseWheel);n(this.upperCanvasEl,"touchstart",this._onMouseDown);n(this.upperCanvasEl,"touchmove",this._onMouseMove);typeof eventjs!="undefined"&&"add"in eventjs&&(eventjs.add(this.upperCanvasEl,"gesture",this._onGesture),eventjs.add(this.upperCanvasEl,"drag",this._onDrag),eventjs.add(this.upperCanvasEl,"orientation",this._onOrientationChange),eventjs.add(this.upperCanvasEl,"shake",this._onShake),eventjs.add(this.upperCanvasEl,"longpress",this._onLongPress))},_bindEvents:function(){this._onMouseDown=this._onMouseDown.bind(this);this._onMouseMove=this._onMouseMove.bind(this);this._onMouseUp=this._onMouseUp.bind(this);this._onResize=this._onResize.bind(this);this._onGesture=this._onGesture.bind(this);this._onDrag=this._onDrag.bind(this);this._onShake=this._onShake.bind(this);this._onLongPress=this._onLongPress.bind(this);this._onOrientationChange=this._onOrientationChange.bind(this);this._onMouseWheel=this._onMouseWheel.bind(this)},removeListeners:function(){t(fabric.window,"resize",this._onResize);t(this.upperCanvasEl,"mousedown",this._onMouseDown);t(this.upperCanvasEl,"mousemove",this._onMouseMove);t(this.upperCanvasEl,"mousewheel",this._onMouseWheel);t(this.upperCanvasEl,"touchstart",this._onMouseDown);t(this.upperCanvasEl,"touchmove",this._onMouseMove);typeof eventjs!="undefined"&&"remove"in eventjs&&(eventjs.remove(this.upperCanvasEl,"gesture",this._onGesture),eventjs.remove(this.upperCanvasEl,"drag",this._onDrag),eventjs.remove(this.upperCanvasEl,"orientation",this._onOrientationChange),eventjs.remove(this.upperCanvasEl,"shake",this._onShake),eventjs.remove(this.upperCanvasEl,"longpress",this._onLongPress))},_onGesture:function(n,t){this.__onTransformGesture&&this.__onTransformGesture(n,t)},_onDrag:function(n,t){this.__onDrag&&this.__onDrag(n,t)},_onMouseWheel:function(n,t){this.__onMouseWheel&&this.__onMouseWheel(n,t)},_onOrientationChange:function(n,t){this.__onOrientationChange&&this.__onOrientationChange(n,t)},_onShake:function(n,t){this.__onShake&&this.__onShake(n,t)},_onLongPress:function(n,t){this.__onLongPress&&this.__onLongPress(n,t)},_onMouseDown:function(i){this.__onMouseDown(i);n(fabric.document,"touchend",this._onMouseUp);n(fabric.document,"touchmove",this._onMouseMove);t(this.upperCanvasEl,"mousemove",this._onMouseMove);t(this.upperCanvasEl,"touchmove",this._onMouseMove);i.type==="touchstart"?t(this.upperCanvasEl,"mousedown",this._onMouseDown):(n(fabric.document,"mouseup",this._onMouseUp),n(fabric.document,"mousemove",this._onMouseMove))},_onMouseUp:function(i){if(this.__onMouseUp(i),t(fabric.document,"mouseup",this._onMouseUp),t(fabric.document,"touchend",this._onMouseUp),t(fabric.document,"mousemove",this._onMouseMove),t(fabric.document,"touchmove",this._onMouseMove),n(this.upperCanvasEl,"mousemove",this._onMouseMove),n(this.upperCanvasEl,"touchmove",this._onMouseMove),i.type==="touchend"){var r=this;setTimeout(function(){n(r.upperCanvasEl,"mousedown",r._onMouseDown)},400)}},_onMouseMove:function(n){!this.allowTouchScrolling&&n.preventDefault&&n.preventDefault();this.__onMouseMove(n)},_onResize:function(){this.calcOffset()},_shouldRender:function(n,t){var i=this.getActiveGroup()||this.getActiveObject();return!!(n&&(n.isMoving||n!==i)||!n&&!!i||!n&&!i&&!this._groupSelector||t&&this._previousPointer&&this.selection&&(t.x!==this._previousPointer.x||t.y!==this._previousPointer.y))},__onMouseUp:function(n){var t,i;if(this.isDrawingMode&&this._isCurrentlyDrawing){this._onMouseUpInDrawingMode(n);return}this._currentTransform?(this._finalizeCurrentTransform(),t=this._currentTransform.target):t=this.findTarget(n,!0);i=this._shouldRender(t,this.getPointer(n));this._maybeGroupObjects(n);t&&(t.isMoving=!1);i&&this.renderAll();this._handleCursorAndEvent(n,t)},_handleCursorAndEvent:function(n,t){this._setCursorFromEvent(n,t);var i=this;setTimeout(function(){i._setCursorFromEvent(n,t)},50);this.fire("mouse:up",{target:t,e:n});t&&t.fire("mouseup",{e:n})},_finalizeCurrentTransform:function(){var t=this._currentTransform,n=t.target;n._scaling&&(n._scaling=!1);n.setCoords();this.stateful&&n.hasStateChanged()&&(this.fire("object:modified",{target:n}),n.fire("modified"));this._restoreOriginXY(n)},_restoreOriginXY:function(n){if(this._previousOriginX&&this._previousOriginY){var t=n.translateToOriginPoint(n.getCenterPoint(),this._previousOriginX,this._previousOriginY);n.originX=this._previousOriginX;n.originY=this._previousOriginY;n.left=t.x;n.top=t.y;this._previousOriginX=null;this._previousOriginY=null}},_onMouseDownInDrawingMode:function(n){var i,r,t;this._isCurrentlyDrawing=!0;this.discardActiveObject(n).renderAll();this.clipTo&&fabric.util.clipContext(this,this.contextTop);i=fabric.util.invertTransform(this.viewportTransform);r=fabric.util.transformPoint(this.getPointer(n,!0),i);this.freeDrawingBrush.onMouseDown(r);this.fire("mouse:down",{e:n});t=this.findTarget(n);typeof t!="undefined"&&t.fire("mousedown",{e:n,target:t})},_onMouseMoveInDrawingMode:function(n){var i,r,t;if(this._isCurrentlyDrawing){i=fabric.util.invertTransform(this.viewportTransform);r=fabric.util.transformPoint(this.getPointer(n,!0),i);this.freeDrawingBrush.onMouseMove(r)}this.setCursor(this.freeDrawingCursor);this.fire("mouse:move",{e:n});t=this.findTarget(n);typeof t!="undefined"&&t.fire("mousemove",{e:n,target:t})},_onMouseUpInDrawingMode:function(n){this._isCurrentlyDrawing=!1;this.clipTo&&this.contextTop.restore();this.freeDrawingBrush.onMouseUp();this.fire("mouse:up",{e:n});var t=this.findTarget(n);typeof t!="undefined"&&t.fire("mouseup",{e:n,target:t})},__onMouseDown:function(n){var f="which"in n?n.which===1:n.button===1,t,i,u,r;if(f||fabric.isTouchSupported){if(this.isDrawingMode){this._onMouseDownInDrawingMode(n);return}this._currentTransform||(t=this.findTarget(n),i=this.getPointer(n,!0),this._previousPointer=i,u=this._shouldRender(t,i),r=this._shouldGroup(n,t),this._shouldClearSelection(n,t)?this._clearSelection(n,t,i):r&&(this._handleGrouping(n,t),t=this.getActiveGroup()),t&&t.selectable&&!r&&(this._beforeTransform(n,t),this._setupCurrentTransform(n,t)),u&&this.renderAll(),this.fire("mouse:down",{target:t,e:n}),t&&t.fire("mousedown",{e:n}))}},_beforeTransform:function(n,t){if(this.stateful&&t.saveState(),t._findTargetCorner(this.getPointer(n)))this.onBeforeScaleRotate(t);t!==this.getActiveGroup()&&t!==this.getActiveObject()&&(this.deactivateAll(),this.setActiveObject(t,n))},_clearSelection:function(n,t,i){this.deactivateAllWithDispatch(n);t&&t.selectable?this.setActiveObject(t,n):this.selection&&(this._groupSelector={ex:i.x,ey:i.y,top:0,left:0})},_setOriginToCenter:function(n){this._previousOriginX=this._currentTransform.target.originX;this._previousOriginY=this._currentTransform.target.originY;var t=n.getCenterPoint();n.originX="center";n.originY="center";n.left=t.x;n.top=t.y;this._currentTransform.left=n.left;this._currentTransform.top=n.top},_setCenterToOrigin:function(n){var t=n.translateToOriginPoint(n.getCenterPoint(),this._previousOriginX,this._previousOriginY);n.originX=this._previousOriginX;n.originY=this._previousOriginY;n.left=t.x;n.top=t.y;this._previousOriginX=null;this._previousOriginY=null},__onMouseMove:function(n){var t,r,i;if(this.isDrawingMode){this._onMouseMoveInDrawingMode(n);return}typeof n.touches!="undefined"&&n.touches.length>1||(i=this._groupSelector,i?(r=this.getPointer(n,!0),i.left=r.x-i.ex,i.top=r.y-i.ey,this.renderTop()):this._currentTransform?this._transformObject(n):(t=this.findTarget(n),t&&(!t||t.selectable)?this._setCursorFromEvent(n,t):this.setCursor(this.defaultCursor)),this.fire("mouse:move",{target:t,e:n}),t&&t.fire("mousemove",{e:n}))},_transformObject:function(n){var i=this.getPointer(n),t=this._currentTransform;t.reset=!1;t.target.isMoving=!0;this._beforeScaleTransform(n,t);this._performTransformAction(n,t,i);this.renderAll()},_performTransformAction:function(n,t,i){var r=i.x,u=i.y,f=t.target,e=t.action;e==="rotate"?(this._rotateObject(r,u),this._fire("rotating",f,n)):e==="scale"?(this._onScale(n,t,r,u),this._fire("scaling",f,n)):e==="scaleX"?(this._scaleObject(r,u,"x"),this._fire("scaling",f,n)):e==="scaleY"?(this._scaleObject(r,u,"y"),this._fire("scaling",f,n)):(this._translateObject(r,u),this._fire("moving",f,n),this.setCursor(this.moveCursor))},_fire:function(n,t,i){this.fire("object:"+n,{target:t,e:i});t.fire(n,{e:i})},_beforeScaleTransform:function(n,t){if(t.action==="scale"||t.action==="scaleX"||t.action==="scaleY"){var i=this._shouldCenterTransform(n,t.target);(i&&(t.originX!=="center"||t.originY!=="center")||!i&&t.originX==="center"&&t.originY==="center")&&(this._resetCurrentTransform(n),t.reset=!0)}},_onScale:function(n,t,i,r){(n.shiftKey||this.uniScaleTransform)&&!t.target.get("lockUniScaling")?(t.currentAction="scale",this._scaleObject(i,r)):(t.reset||t.currentAction!=="scale"||this._resetCurrentTransform(n,t.target),t.currentAction="scaleEqually",this._scaleObject(i,r,"equally"))},_setCursorFromEvent:function(n,t){if(t&&t.selectable){var i=this.getActiveGroup(),r=t._findTargetCorner&&(!i||!i.contains(t))&&t._findTargetCorner(this.getPointer(n,!0));r?this._setCornerCursor(r,t):this.setCursor(t.hoverCursor||this.hoverCursor)}else return this.setCursor(this.defaultCursor),!1;return!0},_setCornerCursor:function(n,t){if(n in i)this.setCursor(this._getRotatedCornerCursor(n,t));else if(n==="mtr"&&t.hasRotatingPoint)this.setCursor(this.rotationCursor);else return this.setCursor(this.defaultCursor),!1},_getRotatedCornerCursor:function(n,t){var r=Math.round(t.getAngle()%360/45);return r<0&&(r+=8),r+=i[n],r%=8,this.cursorMap[r]}})}(),function(){var n=Math.min,t=Math.max;fabric.util.object.extend(fabric.Canvas.prototype,{_shouldGroup:function(n,t){var i=this.getActiveObject();return n.shiftKey&&(this.getActiveGroup()||i&&i!==t)&&this.selection},_handleGrouping:function(n,t){(t!==this.getActiveGroup()||(t=this.findTarget(n,!0),t&&!t.isType("group")))&&(this.getActiveGroup()?this._updateActiveGroup(t,n):this._createActiveGroup(t,n),this._activeGroup&&this._activeGroup.saveCoords())},_updateActiveGroup:function(n,t){var i=this.getActiveGroup();if(i.contains(n)){if(i.removeWithUpdate(n),this._resetObjectTransform(i),n.set("active",!1),i.size()===1){this.discardActiveGroup(t);this.setActiveObject(i.item(0));return}}else i.addWithUpdate(n),this._resetObjectTransform(i);this.fire("selection:created",{target:i,e:t});i.set("active",!0)},_createActiveGroup:function(n,t){if(this._activeObject&&n!==this._activeObject){var i=this._createGroup(n);i.addWithUpdate();this.setActiveGroup(i);this._activeObject=null;this.fire("selection:created",{target:i,e:t})}n.set("active",!0)},_createGroup:function(n){var t=this.getObjects(),i=t.indexOf(this._activeObject)<t.indexOf(n),r=i?[this._activeObject,n]:[n,this._activeObject];return new fabric.Group(r,{canvas:this})},_groupSelectedObjects:function(n){var t=this._collectObjects();t.length===1?this.setActiveObject(t[0],n):t.length>1&&(t=new fabric.Group(t.reverse(),{canvas:this}),t.addWithUpdate(),this.setActiveGroup(t,n),t.saveCoords(),this.fire("selection:created",{target:t}),this.renderAll())},_collectObjects:function(){for(var h=[],i,r=this._groupSelector.ex,u=this._groupSelector.ey,f=r+this._groupSelector.left,e=u+this._groupSelector.top,o=new fabric.Point(n(r,f),n(u,e)),s=new fabric.Point(t(r,f),t(u,e)),l=r===f&&u===e,c=this._objects.length;c--;)if((i=this._objects[c],i&&i.selectable&&i.visible)&&(i.intersectsWithRect(o,s)||i.isContainedWithinRect(o,s)||i.containsPoint(o)||i.containsPoint(s))&&(i.set("active",!0),h.push(i),l))break;return h},_maybeGroupObjects:function(n){this.selection&&this._groupSelector&&this._groupSelectedObjects(n);var t=this.getActiveGroup();t&&(t.setObjectsCoords().setCoords(),t.isMoving=!1,this.setCursor(this.defaultCursor));this._groupSelector=null;this._currentTransform=null}})}();fabric.util.object.extend(fabric.StaticCanvas.prototype,{toDataURL:function(n){n||(n={});var t=n.format||"png",i=n.quality||1,r=n.multiplier||1,u={left:n.left,top:n.top,width:n.width,height:n.height};return r!==1?this.__toDataURLWithMultiplier(t,i,u,r):this.__toDataURL(t,i,u)},__toDataURL:function(n,t,i){var u,r,f;return this.renderAll(!0),u=this.upperCanvasEl||this.lowerCanvasEl,r=this.__getCroppedCanvas(u,i),n==="jpg"&&(n="jpeg"),f=fabric.StaticCanvas.supports("toDataURLWithQuality")?(r||u).toDataURL("image/"+n,t):(r||u).toDataURL("image/"+n),this.contextTop&&this.clearContext(this.contextTop),this.renderAll(),r&&(r=null),f},__getCroppedCanvas:function(n,t){var i,r,u="left"in t||"top"in t||"width"in t||"height"in t;return u&&(i=fabric.util.createCanvasElement(),r=i.getContext("2d"),i.width=t.width||this.width,i.height=t.height||this.height,r.drawImage(n,-t.left||0,-t.top||0)),i},__toDataURLWithMultiplier:function(n,t,i,r){var f=this.getWidth(),e=this.getHeight(),s=f*r,h=e*r,o=this.getActiveObject(),u=this.getActiveGroup(),c=this.contextTop||this.contextContainer,l;return r>1&&this.setWidth(s).setHeight(h),c.scale(r,r),i.left&&(i.left*=r),i.top&&(i.top*=r),i.width?i.width*=r:r<1&&(i.width=s),i.height?i.height*=r:r<1&&(i.height=h),u?this._tempRemoveBordersControlsFromGroup(u):o&&this.deactivateAll&&this.deactivateAll(),this.renderAll(!0),l=this.__toDataURL(n,t,i),this.width=f,this.height=e,c.scale(1/r,1/r),this.setWidth(f).setHeight(e),u?this._restoreBordersControlsOnGroup(u):o&&this.setActiveObject&&this.setActiveObject(o),this.contextTop&&this.clearContext(this.contextTop),this.renderAll(),l},toDataURLWithMultiplier:function(n,t,i){return this.toDataURL({format:n,multiplier:t,quality:i})},_tempRemoveBordersControlsFromGroup:function(n){n.origHasControls=n.hasControls;n.origBorderColor=n.borderColor;n.hasControls=!0;n.borderColor="rgba(0,0,0,0)";n.forEachObject(function(n){n.origBorderColor=n.borderColor;n.borderColor="rgba(0,0,0,0)"})},_restoreBordersControlsOnGroup:function(n){n.hideControls=n.origHideControls;n.borderColor=n.origBorderColor;n.forEachObject(function(n){n.borderColor=n.origBorderColor;delete n.origBorderColor})}});fabric.util.object.extend(fabric.StaticCanvas.prototype,{loadFromDatalessJSON:function(n,t,i){return this.loadFromJSON(n,t,i)},loadFromJSON:function(n,t,i){var r,u;if(n)return r=typeof n=="string"?JSON.parse(n):n,this.clear(),u=this,this._enlivenObjects(r.objects,function(){u._setBgOverlay(r,t)},i),this},_setBgOverlay:function(n,t){var u=this,i={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1},r;if(!n.backgroundImage&&!n.overlayImage&&!n.background&&!n.overlay){t&&t();return}r=function(){i.backgroundImage&&i.overlayImage&&i.backgroundColor&&i.overlayColor&&(u.renderAll(),t&&t())};this.__setBgOverlay("backgroundImage",n.backgroundImage,i,r);this.__setBgOverlay("overlayImage",n.overlayImage,i,r);this.__setBgOverlay("backgroundColor",n.background,i,r);this.__setBgOverlay("overlayColor",n.overlay,i,r);r()},__setBgOverlay:function(n,t,i,r){var u=this;if(!t){i[n]=!0;return}n==="backgroundImage"||n==="overlayImage"?fabric.Image.fromObject(t,function(t){u[n]=t;i[n]=!0;r&&r()}):this["set"+fabric.util.string.capitalize(n,!0)](t,function(){i[n]=!0;r&&r()})},_enlivenObjects:function(n,t,i){var r=this,u;if(!n||n.length===0){t&&t();return}u=this.renderOnAddRemove;this.renderOnAddRemove=!1;fabric.util.enlivenObjects(n,function(n){n.forEach(function(n,t){r.insertAt(n,t,!0)});r.renderOnAddRemove=u;t&&t()},null,i)},_toDataURL:function(n,t){this.clone(function(i){t(i.toDataURL(n))})},_toDataURLWithMultiplier:function(n,t,i){this.clone(function(r){i(r.toDataURLWithMultiplier(n,t))})},clone:function(n,t){var i=JSON.stringify(this.toJSON(t));this.cloneWithoutData(function(t){t.loadFromJSON(i,function(){n&&n(t)})})},cloneWithoutData:function(n){var i=fabric.document.createElement("canvas"),t;i.width=this.getWidth();i.height=this.getHeight();t=new fabric.Canvas(i);t.clipTo=this.clipTo;this.backgroundImage?(t.setBackgroundImage(this.backgroundImage.src,function(){t.renderAll();n&&n(t)}),t.backgroundImageOpacity=this.backgroundImageOpacity,t.backgroundImageStretch=this.backgroundImageStretch):n&&n(t)}}),function(n){"use strict";var t=n.fabric||(n.fabric={}),u=t.util.object.extend,i=t.util.toFixed,f=t.util.string.capitalize,r=t.util.degreesToRadians,e=t.StaticCanvas.supports("setLineDash");t.Object||(t.Object=t.util.createClass({type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,cornerSize:12,transparentCorners:!0,hoverCursor:null,padding:0,borderColor:"rgba(102,153,255,0.75)",cornerColor:"rgba(102,153,255,0.5)",centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:10,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,transformMatrix:null,minScaleLimit:.01,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,hasRotatingPoint:!0,rotatingPointOffset:40,perPixelTargetFind:!1,includeDefaultValues:!0,clipTo:null,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockUniScaling:!1,lockScalingFlip:!1,stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeLineJoin strokeMiterLimit angle opacity fill fillRule globalCompositeOperation shadow clipTo visible backgroundColor".split(" "),initialize:function(n){n&&this.setOptions(n)},_initGradient:function(n){!n.fill||!n.fill.colorStops||n.fill instanceof t.Gradient||this.set("fill",new t.Gradient(n.fill))},_initPattern:function(n){!n.fill||!n.fill.source||n.fill instanceof t.Pattern||this.set("fill",new t.Pattern(n.fill));!n.stroke||!n.stroke.source||n.stroke instanceof t.Pattern||this.set("stroke",new t.Pattern(n.stroke))},_initClipping:function(n){if(n.clipTo&&typeof n.clipTo=="string"){var i=t.util.getFunctionBody(n.clipTo);typeof i!="undefined"&&(this.clipTo=new Function("ctx",i))}},setOptions:function(n){for(var t in n)this.set(t,n[t]);this._initGradient(n);this._initPattern(n);this._initClipping(n)},transform:function(n,t){var i=t?this._getLeftTopCoords():this.getCenterPoint();n.translate(i.x,i.y);n.rotate(r(this.angle));n.scale(this.scaleX*(this.flipX?-1:1),this.scaleY*(this.flipY?-1:1))},toObject:function(n){var r=t.Object.NUM_FRACTION_DIGITS,u={type:this.type,originX:this.originX,originY:this.originY,left:i(this.left,r),top:i(this.top,r),width:i(this.width,r),height:i(this.height,r),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:i(this.strokeWidth,r),strokeDashArray:this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeLineJoin:this.strokeLineJoin,strokeMiterLimit:i(this.strokeMiterLimit,r),scaleX:i(this.scaleX,r),scaleY:i(this.scaleY,r),angle:i(this.getAngle(),r),flipX:this.flipX,flipY:this.flipY,opacity:i(this.opacity,r),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,clipTo:this.clipTo&&String(this.clipTo),backgroundColor:this.backgroundColor,fillRule:this.fillRule,globalCompositeOperation:this.globalCompositeOperation};return this.includeDefaultValues||(u=this._removeDefaultValues(u)),t.util.populateWithProperties(this,u,n),u},toDatalessObject:function(n){return this.toObject(n)},_removeDefaultValues:function(n){var i=t.util.getKlass(n.type).prototype,r=i.stateProperties;return r.forEach(function(t){n[t]===i[t]&&delete n[t]}),n},toString:function(){return"#<fabric."+f(this.type)+">"},get:function(n){return this[n]},_setObject:function(n){for(var t in n)this._set(t,n[t])},set:function(n,t){return typeof n=="object"?this._setObject(n):typeof t=="function"&&n!=="clipTo"?this._set(n,t(this.get(n))):this._set(n,t),this},_set:function(n,r){var u=n==="scaleX"||n==="scaleY";return u&&(r=this._constrainScale(r)),n==="scaleX"&&r<0?(this.flipX=!this.flipX,r*=-1):n==="scaleY"&&r<0?(this.flipY=!this.flipY,r*=-1):n==="width"||n==="height"?this.minScaleLimit=i(Math.min(.1,1/Math.max(this.width,this.height)),2):n!=="shadow"||!r||r instanceof t.Shadow||(r=new t.Shadow(r)),this[n]=r,this},toggle:function(n){var t=this.get(n);return typeof t=="boolean"&&this.set(n,!t),this},setSourcePath:function(n){return this.sourcePath=n,this},getViewportTransform:function(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:[1,0,0,1,0,0]},render:function(n,i){(this.width!==0||this.height!==0)&&this.visible&&(n.save(),this._setupCompositeOperation(n),i||this.transform(n),this._setStrokeStyles(n),this._setFillStyles(n),this.transformMatrix&&n.transform.apply(n,this.transformMatrix),this._setOpacity(n),this._setShadow(n),this.clipTo&&t.util.clipContext(this,n),this._render(n,i),this.clipTo&&n.restore(),this._removeShadow(n),this._restoreCompositeOperation(n),n.restore())},_setOpacity:function(n){this.group&&this.group._setOpacity(n);n.globalAlpha*=this.opacity},_setStrokeStyles:function(n){this.stroke&&(n.lineWidth=this.strokeWidth,n.lineCap=this.strokeLineCap,n.lineJoin=this.strokeLineJoin,n.miterLimit=this.strokeMiterLimit,n.strokeStyle=this.stroke.toLive?this.stroke.toLive(n,this):this.stroke)},_setFillStyles:function(n){this.fill&&(n.fillStyle=this.fill.toLive?this.fill.toLive(n,this):this.fill)},_renderControls:function(n,i){var f,u;this.active&&!i&&(f=this.getViewportTransform(),n.save(),this.group&&(u=t.util.transformPoint(this.group.getCenterPoint(),f),n.translate(u.x,u.y),n.rotate(r(this.group.angle))),u=t.util.transformPoint(this.getCenterPoint(),f,null!=this.group),this.group&&(u.x*=this.group.scaleX,u.y*=this.group.scaleY),n.translate(u.x,u.y),n.rotate(r(this.angle)),this.drawBorders(n),this.drawControls(n),n.restore())},_setShadow:function(n){if(this.shadow){var t=this.canvas&&this.canvas.viewportTransform[0]||1,i=this.canvas&&this.canvas.viewportTransform[3]||1;n.shadowColor=this.shadow.color;n.shadowBlur=this.shadow.blur*(t+i)*(this.scaleX+this.scaleY)/4;n.shadowOffsetX=this.shadow.offsetX*t*this.scaleX;n.shadowOffsetY=this.shadow.offsetY*i*this.scaleY}},_removeShadow:function(n){this.shadow&&(n.shadowColor="",n.shadowBlur=n.shadowOffsetX=n.shadowOffsetY=0)},_renderFill:function(n){if(this.fill){if(n.save(),this.fill.gradientTransform){var t=this.fill.gradientTransform;n.transform.apply(n,t)}this.fill.toLive&&n.translate(-this.width/2+this.fill.offsetX||0,-this.height/2+this.fill.offsetY||0);this.fillRule==="evenodd"?n.fill("evenodd"):n.fill();n.restore();this.shadow&&!this.shadow.affectStroke&&this._removeShadow(n)}},_renderStroke:function(n){if(this.stroke&&this.strokeWidth!==0){if(n.save(),this.strokeDashArray)1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray),e?(n.setLineDash(this.strokeDashArray),this._stroke&&this._stroke(n)):this._renderDashedStroke&&this._renderDashedStroke(n),n.stroke();else{if(this.stroke.gradientTransform){var t=this.stroke.gradientTransform;n.transform.apply(n,t)}this._stroke?this._stroke(n):n.stroke()}this._removeShadow(n);n.restore()}},clone:function(n,i){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(i),n):new t.Object(this.toObject(i))},cloneAsImage:function(n){var i=this.toDataURL();return t.util.loadImage(i,function(i){n&&n(new t.Image(i))}),this},toDataURL:function(n){var i,u,r,f,e,o;return n||(n={}),i=t.util.createCanvasElement(),u=this.getBoundingRect(),i.width=u.width,i.height=u.height,t.util.wrapElement(i,"div"),r=new t.StaticCanvas(i),n.format==="jpg"&&(n.format="jpeg"),n.format==="jpeg"&&(r.backgroundColor="#fff"),f={active:this.get("active"),left:this.getLeft(),top:this.getTop()},this.set("active",!1),this.setPositionByOrigin(new t.Point(i.width/2,i.height/2),"center","center"),e=this.canvas,r.add(this),o=r.toDataURL(n),this.set(f).setCoords(),this.canvas=e,r.dispose(),r=null,o},isType:function(n){return this.type===n},complexity:function(){return 0},toJSON:function(n){return this.toObject(n)},setGradient:function(n,i){var r,u,f;i||(i={});r={colorStops:[]};r.type=i.type||(i.r1||i.r2?"radial":"linear");r.coords={x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2};(i.r1||i.r2)&&(r.coords.r1=i.r1,r.coords.r2=i.r2);for(u in i.colorStops)f=new t.Color(i.colorStops[u]),r.colorStops.push({offset:u,color:f.toRgb(),opacity:f.getAlpha()});return this.set(n,t.Gradient.forObject(this,r))},setPatternFill:function(n){return this.set("fill",new t.Pattern(n))},setShadow:function(n){return this.set("shadow",n?new t.Shadow(n):null)},setColor:function(n){return this.set("fill",n),this},setAngle:function(n){var t=(this.originX!=="center"||this.originY!=="center")&&this.centeredRotation;return t&&this._setOriginToCenter(),this.set("angle",n),t&&this._resetOrigin(),this},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.canvas.centerObject(this),this},remove:function(){return this.canvas.remove(this),this},getLocalPointer:function(n,t){t=t||this.canvas.getPointer(n);var i=this.translateToOriginPoint(this.getCenterPoint(),"left","top");return{x:t.x-i.x,y:t.y-i.y}},_setupCompositeOperation:function(n){this.globalCompositeOperation&&(this._prevGlobalCompositeOperation=n.globalCompositeOperation,n.globalCompositeOperation=this.globalCompositeOperation)},_restoreCompositeOperation:function(n){this.globalCompositeOperation&&this._prevGlobalCompositeOperation&&(n.globalCompositeOperation=this._prevGlobalCompositeOperation)}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,u(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0)}(typeof exports!="undefined"?exports:this),function(){var n=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,i,r){var f=t.x,e=t.y,u=this.stroke?this.strokeWidth:0;return i==="left"?f=t.x+(this.getWidth()+u*this.scaleX)/2:i==="right"&&(f=t.x-(this.getWidth()+u*this.scaleX)/2),r==="top"?e=t.y+(this.getHeight()+u*this.scaleY)/2:r==="bottom"&&(e=t.y-(this.getHeight()+u*this.scaleY)/2),fabric.util.rotatePoint(new fabric.Point(f,e),t,n(this.angle))},translateToOriginPoint:function(t,i,r){var f=t.x,e=t.y,u=this.stroke?this.strokeWidth:0;return i==="left"?f=t.x-(this.getWidth()+u*this.scaleX)/2:i==="right"&&(f=t.x+(this.getWidth()+u*this.scaleX)/2),r==="top"?e=t.y-(this.getHeight()+u*this.scaleY)/2:r==="bottom"&&(e=t.y+(this.getHeight()+u*this.scaleY)/2),fabric.util.rotatePoint(new fabric.Point(f,e),t,n(this.angle))},getCenterPoint:function(){var n=new fabric.Point(this.left,this.top);return this.translateToCenterPoint(n,this.originX,this.originY)},getPointByOrigin:function(n,t){var i=this.getCenterPoint();return this.translateToOriginPoint(i,n,t)},toLocalPoint:function(t,i,r){var u=this.getCenterPoint(),f=this.stroke?this.strokeWidth:0,e,o;return i&&r?(e=i==="left"?u.x-(this.getWidth()+f*this.scaleX)/2:i==="right"?u.x+(this.getWidth()+f*this.scaleX)/2:u.x,o=r==="top"?u.y-(this.getHeight()+f*this.scaleY)/2:r==="bottom"?u.y+(this.getHeight()+f*this.scaleY)/2:u.y):(e=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),u,-n(this.angle)).subtractEquals(new fabric.Point(e,o))},setPositionByOrigin:function(n,t,i){var u=this.translateToCenterPoint(n,t,i),r=this.translateToOriginPoint(u,this.originX,this.originY);this.set("left",r.x);this.set("top",r.y)},adjustPosition:function(t){var i=n(this.angle),r=this.getWidth()/2,u=Math.cos(i)*r,f=Math.sin(i)*r,e=this.getWidth(),o=Math.cos(i)*e,s=Math.sin(i)*e;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=u,this.top-=f):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=u,this.top+=f):this.originX==="left"&&t==="right"?(this.left+=o,this.top+=s):this.originX==="right"&&t==="left"&&(this.left-=o,this.top-=s);this.setCoords();this.originX=t},_setOriginToCenter:function(){this._originalOriginX=this.originX;this._originalOriginY=this.originY;var n=this.getCenterPoint();this.originX="center";this.originY="center";this.left=n.x;this.top=n.y},_resetOrigin:function(){var n=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX;this.originY=this._originalOriginY;this.left=n.x;this.top=n.y;this._originalOriginX=null;this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","center")}})}(),function(){var n=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{oCoords:null,intersectsWithRect:function(n,t){var i=this.oCoords,r=new fabric.Point(i.tl.x,i.tl.y),u=new fabric.Point(i.tr.x,i.tr.y),f=new fabric.Point(i.bl.x,i.bl.y),e=new fabric.Point(i.br.x,i.br.y),o=fabric.Intersection.intersectPolygonRectangle([r,u,e,f],n,t);return o.status==="Intersection"},intersectsWithObject:function(n){function r(n){return{tl:new fabric.Point(n.tl.x,n.tl.y),tr:new fabric.Point(n.tr.x,n.tr.y),bl:new fabric.Point(n.bl.x,n.bl.y),br:new fabric.Point(n.br.x,n.br.y)}}var t=r(this.oCoords),i=r(n.oCoords),u=fabric.Intersection.intersectPolygonPolygon([t.tl,t.tr,t.br,t.bl],[i.tl,i.tr,i.br,i.bl]);return u.status==="Intersection"},isContainedWithinObject:function(n){var t=n.getBoundingRect(),i=new fabric.Point(t.left,t.top),r=new fabric.Point(t.left+t.width,t.top+t.height);return this.isContainedWithinRect(i,r)},isContainedWithinRect:function(n,t){var i=this.getBoundingRect();return i.left>=n.x&&i.left+i.width<=t.x&&i.top>=n.y&&i.top+i.height<=t.y},containsPoint:function(n){var i=this._getImageLines(this.oCoords),t=this._findCrossPoints(n,i);return t!==0&&t%2==1},_getImageLines:function(n){return{topline:{o:n.tl,d:n.tr},rightline:{o:n.tr,d:n.br},bottomline:{o:n.br,d:n.bl},leftline:{o:n.bl,d:n.tl}}},_findCrossPoints:function(n,t){var r,f,e,s,u,h,o=0,i;for(var c in t)if((i=t[c],!(i.o.y<n.y)||!(i.d.y<n.y))&&(!(i.o.y>=n.y)||!(i.d.y>=n.y))&&(i.o.x===i.d.x&&i.o.x>=n.x?(u=i.o.x,h=n.y):(r=0,f=(i.d.y-i.o.y)/(i.d.x-i.o.x),e=n.y-r*n.x,s=i.o.y-f*i.o.x,u=-(e-s)/(r-f),h=e+r*u),u>=n.x&&(o+=1),o===2))break;return o},getBoundingRectWidth:function(){return this.getBoundingRect().width},getBoundingRectHeight:function(){return this.getBoundingRect().height},getBoundingRect:function(){this.oCoords||this.setCoords();var n=[this.oCoords.tl.x,this.oCoords.tr.x,this.oCoords.br.x,this.oCoords.bl.x],t=fabric.util.array.min(n),u=fabric.util.array.max(n),f=Math.abs(t-u),i=[this.oCoords.tl.y,this.oCoords.tr.y,this.oCoords.br.y,this.oCoords.bl.y],r=fabric.util.array.min(i),e=fabric.util.array.max(i),o=Math.abs(r-e);return{left:t,top:r,width:f,height:o}},getWidth:function(){return this.width*this.scaleX},getHeight:function(){return this.height*this.scaleY},_constrainScale:function(n){return Math.abs(n)<this.minScaleLimit?n<0?-this.minScaleLimit:this.minScaleLimit:n},scale:function(n){return n=this._constrainScale(n),n<0&&(this.flipX=!this.flipX,this.flipY=!this.flipY,n*=-1),this.scaleX=n,this.scaleY=n,this.setCoords(),this},scaleToWidth:function(n){var t=this.getBoundingRectWidth()/this.getWidth();return this.scale(n/this.width/t)},scaleToHeight:function(n){var t=this.getBoundingRectHeight()/this.getHeight();return this.scale(n/this.height/t)},setCoords:function(){var s=n(this.angle),d=this.getViewportTransform(),h=function(n){return fabric.util.transformPoint(n,d)},p=this._calculateCurrentDimensions(!1),t=p.x,c=p.y;t<0&&(t=Math.abs(t));var w=Math.sqrt(Math.pow(t/2,2)+Math.pow(c/2,2)),b=Math.atan(isFinite(c/t)?c/t:0),g=Math.cos(b+s)*w,nt=Math.sin(b+s)*w,l=Math.sin(s),a=Math.cos(s),k=this.getCenterPoint(),i=new fabric.Point(t,c),r=new fabric.Point(k.x-g,k.y-nt),v=new fabric.Point(r.x+i.x*a,r.y+i.x*l),u=h(new fabric.Point(r.x-i.y*l,r.y+i.y*a)),f=h(new fabric.Point(v.x-i.y*l,v.y+i.y*a)),e=h(r),o=h(v),tt=new fabric.Point((e.x+u.x)/2,(e.y+u.y)/2),y=new fabric.Point((o.x+e.x)/2,(o.y+e.y)/2),it=new fabric.Point((f.x+o.x)/2,(f.y+o.y)/2),rt=new fabric.Point((f.x+u.x)/2,(f.y+u.y)/2),ut=new fabric.Point(y.x+l*this.rotatingPointOffset,y.y-a*this.rotatingPointOffset);return this.oCoords={tl:e,tr:o,br:f,bl:u,ml:tt,mt:y,mr:it,mb:rt,mtr:ut},this._setCornerCoords&&this._setCornerCoords(),this}})}();fabric.util.object.extend(fabric.Object.prototype,{sendToBack:function(){return this.group?fabric.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?fabric.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas.bringToFront(this),this},sendBackwards:function(n){return this.group?fabric.StaticCanvas.prototype.sendBackwards.call(this.group,this,n):this.canvas.sendBackwards(this,n),this},bringForward:function(n){return this.group?fabric.StaticCanvas.prototype.bringForward.call(this.group,this,n):this.canvas.bringForward(this,n),this},moveTo:function(n){return this.group?fabric.StaticCanvas.prototype.moveTo.call(this.group,this,n):this.canvas.moveTo(this,n),this}});fabric.util.object.extend(fabric.Object.prototype,{getSvgStyles:function(){var n=this.fill?this.fill.toLive?"url(#SVGID_"+this.fill.id+")":this.fill:"none",t=this.fillRule,i=this.stroke?this.stroke.toLive?"url(#SVGID_"+this.stroke.id+")":this.stroke:"none",r=this.strokeWidth?this.strokeWidth:"0",u=this.strokeDashArray?this.strokeDashArray.join(" "):"",f=this.strokeLineCap?this.strokeLineCap:"butt",e=this.strokeLineJoin?this.strokeLineJoin:"miter",o=this.strokeMiterLimit?this.strokeMiterLimit:"4",s=typeof this.opacity!="undefined"?this.opacity:"1",h=this.visible?"":" visibility: hidden;",c=this.shadow?"filter: url(#SVGID_"+this.shadow.id+");":"";return["stroke: ",i,"; ","stroke-width: ",r,"; ","stroke-dasharray: ",u,"; ","stroke-linecap: ",f,"; ","stroke-linejoin: ",e,"; ","stroke-miterlimit: ",o,"; ","fill: ",n,"; ","fill-rule: ",t,"; ","opacity: ",s,";",c,h].join("")},getSvgTransform:function(){if(this.group&&this.group.type==="path-group")return"";var t=fabric.util.toFixed,r=this.getAngle(),n=!this.canvas||this.canvas.svgViewportTransformation?this.getViewportTransform():[1,0,0,1,0,0],u=fabric.util.transformPoint(this.getCenterPoint(),n),i=fabric.Object.NUM_FRACTION_DIGITS,f=this.type==="path-group"?"":"translate("+t(u.x,i)+" "+t(u.y,i)+")",e=r!==0?" rotate("+t(r,i)+")":"",o=this.scaleX===1&&this.scaleY===1&&n[0]===1&&n[3]===1?"":" scale("+t(this.scaleX*n[0],i)+" "+t(this.scaleY*n[3],i)+")",s=this.type==="path-group"?this.width*n[0]:0,h=this.flipX?" matrix(-1 0 0 1 "+s+" 0) ":"",c=this.type==="path-group"?this.height*n[3]:0,l=this.flipY?" matrix(1 0 0 -1 0 "+c+")":"";return[f,e,o,h,l].join("")},getSvgTransformMatrix:function(){return this.transformMatrix?" matrix("+this.transformMatrix.join(" ")+") ":""},_createBaseSVGMarkup:function(){var n=[];return this.fill&&this.fill.toLive&&n.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&n.push(this.stroke.toSVG(this,!1)),this.shadow&&n.push(this.shadow.toSVG(this)),n}});fabric.util.object.extend(fabric.Object.prototype,{hasStateChanged:function(){return this.stateProperties.some(function(n){return this.get(n)!==this.originalState[n]},this)},saveState:function(n){return this.stateProperties.forEach(function(n){this.originalState[n]=this.get(n)},this),n&&n.stateProperties&&n.stateProperties.forEach(function(n){this.originalState[n]=this.get(n)},this),this},setupState:function(){return this.originalState={},this.saveState(),this}}),function(){var n=fabric.util.degreesToRadians,t=function(){return typeof G_vmlCanvasManager!="undefined"};fabric.util.object.extend(fabric.Object.prototype,{_controlsVisibility:null,_findTargetCorner:function(n){var r,u,i,f,t;if(!this.hasControls||!this.active)return!1;r=n.x;u=n.y;for(t in this.oCoords)if(this.isControlVisible(t)&&(t!=="mtr"||this.hasRotatingPoint)&&(!this.get("lockUniScaling")||t!=="mt"&&t!=="mr"&&t!=="mb"&&t!=="ml")&&(f=this._getImageLines(this.oCoords[t].corner),i=this._findCrossPoints({x:r,y:u},f),i!==0&&i%2==1))return this.__corner=t,t;return!1},_setCornerCoords:function(){var r=this.oCoords,o=n(45-this.angle),s=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,u=s*Math.cos(o),f=s*Math.sin(o),t,i;for(var e in r)t=r[e].x,i=r[e].y,r[e].corner={tl:{x:t-f,y:i-u},tr:{x:t+u,y:i-f},bl:{x:t-u,y:i+f},br:{x:t+f,y:i+u}}},_calculateCurrentDimensions:function(n){var s=this.getViewportTransform(),r=this.strokeWidth,t=this.width,i=this.height,e=this.strokeLineCap==="round"||this.strokeLineCap==="square",u=this.type==="line"&&this.width===0,f=this.type==="line"&&this.height===0,o=u||f,h=e&&f||!o,c=e&&u||!o;return(u?t=r:f&&(i=r),h&&(t+=t<0?-r:r),c&&(i+=i<0?-r:r),t=t*this.scaleX+2*this.padding,i=i*this.scaleY+2*this.padding,n)?fabric.util.transformPoint(new fabric.Point(t,i),s,!0):{x:t,y:i}},drawBorders:function(n){var r;if(!this.hasBorders)return this;n.save();n.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1;n.strokeStyle=this.borderColor;n.lineWidth=1/this.borderScaleFactor;var u=this._calculateCurrentDimensions(!0),i=u.x,t=u.y;return this.group&&(i=i*this.group.scaleX,t=t*this.group.scaleY),n.strokeRect(~~-(i/2)-.5,~~-(t/2)-.5,~~i+1,~~t+1),this.hasRotatingPoint&&this.isControlVisible("mtr")&&!this.get("lockRotation")&&this.hasControls&&(r=-t/2,n.beginPath(),n.moveTo(0,r),n.lineTo(0,r-this.rotatingPointOffset),n.closePath(),n.stroke()),n.restore(),this},drawControls:function(n){if(!this.hasControls)return this;var o=this._calculateCurrentDimensions(!0),f=o.x,e=o.y,i=-(f/2),r=-(e/2),t=this.cornerSize/2,u=this.transparentCorners?"strokeRect":"fillRect";return n.save(),n.lineWidth=1,n.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,n.strokeStyle=n.fillStyle=this.cornerColor,this._drawControl("tl",n,u,i-t,r-t),this._drawControl("tr",n,u,i+f-t,r-t),this._drawControl("bl",n,u,i-t,r+e-t),this._drawControl("br",n,u,i+f-t,r+e-t),this.get("lockUniScaling")||(this._drawControl("mt",n,u,i+f/2-t,r-t),this._drawControl("mb",n,u,i+f/2-t,r+e-t),this._drawControl("mr",n,u,i+f-t,r+e/2-t),this._drawControl("ml",n,u,i-t,r+e/2-t)),this.hasRotatingPoint&&this._drawControl("mtr",n,u,i+f/2-t,r-this.rotatingPointOffset-t),n.restore(),this},_drawControl:function(n,i,r,u,f){if(this.isControlVisible(n)){var e=this.cornerSize;t()||this.transparentCorners||i.clearRect(u,f,e,e);i[r](u,f,e,e)}},isControlVisible:function(n){return this._getControlsVisibility()[n]},setControlVisible:function(n,t){return this._getControlsVisibility()[n]=t,this},setControlsVisibility:function(n){n||(n={});for(var t in n)this.setControlVisible(t,n[t]);return this},_getControlsVisibility:function(){return this._controlsVisibility||(this._controlsVisibility={tl:!0,tr:!0,br:!0,bl:!0,ml:!0,mt:!0,mr:!0,mb:!0,mtr:!0}),this._controlsVisibility}})}();fabric.util.object.extend(fabric.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(n,t){t=t||{};var i=function(){},r=t.onComplete||i,u=t.onChange||i,f=this;return fabric.util.animate({startValue:n.get("left"),endValue:this.getCenter().left,duration:this.FX_DURATION,onChange:function(t){n.set("left",t);f.renderAll();u()},onComplete:function(){n.setCoords();r()}}),this},fxCenterObjectV:function(n,t){t=t||{};var i=function(){},r=t.onComplete||i,u=t.onChange||i,f=this;return fabric.util.animate({startValue:n.get("top"),endValue:this.getCenter().top,duration:this.FX_DURATION,onChange:function(t){n.set("top",t);f.renderAll();u()},onComplete:function(){n.setCoords();r()}}),this},fxRemove:function(n,t){t=t||{};var i=function(){},u=t.onComplete||i,f=t.onChange||i,r=this;return fabric.util.animate({startValue:n.get("opacity"),endValue:0,duration:this.FX_DURATION,onStart:function(){n.set("active",!1)},onChange:function(t){n.set("opacity",t);r.renderAll();f()},onComplete:function(){r.remove(n);u()}}),this}});fabric.util.object.extend(fabric.Object.prototype,{animate:function(){var i,n,u,t,r;if(arguments[0]&&typeof arguments[0]=="object"){i=[];for(n in arguments[0])i.push(n);for(t=0,r=i.length;t<r;t++)n=i[t],u=t!==r-1,this._animate(n,arguments[0][n],arguments[1],u)}else this._animate.apply(this,arguments);return this},_animate:function(n,t,i,r){var f=this,u,e;t=t.toString();i=i?fabric.util.object.clone(i):{};~n.indexOf(".")&&(u=n.split("."));e=u?this.get(u[0])[u[1]]:this.get(n);"from"in i||(i.from=e);t=~t.indexOf("=")?e+parseFloat(t.replace("=","")):parseFloat(t);fabric.util.animate({startValue:i.from,endValue:t,byValue:i.by,easing:i.easing,duration:i.duration,abort:i.abort&&function(){return i.abort.call(f)},onChange:function(t){(u?f[u[0]][u[1]]=t:f.set(n,t),r)||i.onChange&&i.onChange()},onComplete:function(){r||(f.setCoords(),i.onComplete&&i.onComplete())}})}}),function(n){"use strict";function r(n,t){var u=n.origin,i=n.axis1,r=n.axis2,f=n.dimension,e=t.nearest,o=t.center,s=t.farthest;return function(){switch(this.get(u)){case e:return Math.min(this.get(i),this.get(r));case o:return Math.min(this.get(i),this.get(r))+.5*this.get(f);case s:return Math.max(this.get(i),this.get(r))}}}var t=n.fabric||(n.fabric={}),i=t.util.object.extend,u={x1:1,x2:1,y1:1,y2:1},f=t.StaticCanvas.supports("setLineDash");if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",x1:0,y1:0,x2:0,y2:0,initialize:function(n,t){t=t||{};n||(n=[0,0,0,0]);this.callSuper("initialize",t);this.set("x1",n[0]);this.set("y1",n[1]);this.set("x2",n[2]);this.set("y2",n[3]);this._setWidthHeight(t)},_setWidthHeight:function(n){n||(n={});this.width=Math.abs(this.x2-this.x1);this.height=Math.abs(this.y2-this.y1);this.left="left"in n?n.left:this._getLeftToOriginX();this.top="top"in n?n.top:this._getTopToOriginY()},_set:function(n,t){return this.callSuper("_set",n,t),typeof u[n]!="undefined"&&this._setWidthHeight(),this},_getLeftToOriginX:r({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:r({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(n,t){var r,i,u;n.beginPath();t&&(r=this.getCenterPoint(),n.translate(r.x-this.strokeWidth/2,r.y-this.strokeWidth/2));(!this.strokeDashArray||this.strokeDashArray&&f)&&(i=this.calcLinePoints(),n.moveTo(i.x1,i.y1),n.lineTo(i.x2,i.y2));n.lineWidth=this.strokeWidth;u=n.strokeStyle;n.strokeStyle=this.stroke||n.fillStyle;this.stroke&&this._renderStroke(n);n.strokeStyle=u},_renderDashedStroke:function(n){var i=this.calcLinePoints();n.beginPath();t.util.drawDashedLine(n,i.x1,i.y1,i.x2,i.y2,this.strokeDashArray);n.closePath()},toObject:function(n){return i(this.callSuper("toObject",n),this.calcLinePoints())},calcLinePoints:function(){var n=this.x1<=this.x2?-1:1,t=this.y1<=this.y2?-1:1,i=n*this.width*.5,r=t*this.height*.5,u=n*this.width*-.5,f=t*this.height*-.5;return{x1:i,x2:u,y1:r,y2:f}},toSVG:function(n){var i=this._createBaseSVGMarkup(),t={x1:this.x1,x2:this.x2,y1:this.y1,y2:this.y2};return this.group&&this.group.type==="path-group"||(t=this.calcLinePoints()),i.push("<line ",'x1="',t.x1,'" y1="',t.y1,'" x2="',t.x2,'" y2="',t.y2,'" style="',this.getSvgStyles(),'" transform="',this.getSvgTransform(),this.getSvgTransformMatrix(),'"/>\n'),n?n(i.join("")):i.join("")},complexity:function(){return 1}});t.Line.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" "));t.Line.fromElement=function(n,r){var u=t.parseAttributes(n,t.Line.ATTRIBUTE_NAMES),f=[u.x1||0,u.y1||0,u.x2||0,u.y2||0];return new t.Line(f,i(u,r))};t.Line.fromObject=function(n){var i=[n.x1,n.y1,n.x2,n.y2];return new t.Line(i,n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";function u(n){return"radius"in n&&n.radius>=0}var t=n.fabric||(n.fabric={}),i=Math.PI,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",radius:0,startAngle:0,endAngle:i*2,initialize:function(n){n=n||{};this.callSuper("initialize",n);this.set("radius",n.radius||0);this.startAngle=n.startAngle||this.startAngle;this.endAngle=n.endAngle||this.endAngle},_set:function(n,t){return this.callSuper("_set",n,t),n==="radius"&&this.setRadius(t),this},toObject:function(n){return r(this.callSuper("toObject",n),{radius:this.get("radius"),startAngle:this.startAngle,endAngle:this.endAngle})},toSVG:function(n){var t=this._createBaseSVGMarkup(),r=0,u=0,f=(this.endAngle-this.startAngle)%(2*i);if(f===0)this.group&&this.group.type==="path-group"&&(r=this.left+this.radius,u=this.top+this.radius),t.push("<circle ",'cx="'+r+'" cy="'+u+'" ','r="',this.radius,'" style="',this.getSvgStyles(),'" transform="',this.getSvgTransform()," ",this.getSvgTransformMatrix(),'"/>\n');else{var e=Math.cos(this.startAngle)*this.radius,o=Math.sin(this.startAngle)*this.radius,s=Math.cos(this.endAngle)*this.radius,h=Math.sin(this.endAngle)*this.radius,c=f>i?"1":"0";t.push('<path d="M '+e+" "+o," A "+this.radius+" "+this.radius," 0 ",+c+" 1"," "+s+" "+h,'" style="',this.getSvgStyles(),'" transform="',this.getSvgTransform()," ",this.getSvgTransformMatrix(),'"/>\n')}return n?n(t.join("")):t.join("")},_render:function(n,t){n.beginPath();n.arc(t?this.left+this.radius:0,t?this.top+this.radius:0,this.radius,this.startAngle,this.endAngle,!1);this._renderFill(n);this._renderStroke(n)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(n){this.radius=n;this.set("width",n*2).set("height",n*2)},complexity:function(){return 1}});t.Circle.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("cx cy r".split(" "));t.Circle.fromElement=function(n,i){var f,e;if(i||(i={}),f=t.parseAttributes(n,t.Circle.ATTRIBUTE_NAMES),!u(f))throw new Error("value of `r` attribute is required and can not be negative");return f.left=f.left||0,f.top=f.top||0,e=new t.Circle(r(f,i)),e.left-=e.radius,e.top-=e.radius,e};t.Circle.fromObject=function(n){return new t.Circle(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(n){n=n||{};this.callSuper("initialize",n);this.set("width",n.width||100).set("height",n.height||100)},_render:function(n){var i=this.width/2,t=this.height/2;n.beginPath();n.moveTo(-i,t);n.lineTo(0,-t);n.lineTo(i,t);n.closePath();this._renderFill(n);this._renderStroke(n)},_renderDashedStroke:function(n){var r=this.width/2,i=this.height/2;n.beginPath();t.util.drawDashedLine(n,-r,i,0,-i,this.strokeDashArray);t.util.drawDashedLine(n,0,-i,r,i,this.strokeDashArray);t.util.drawDashedLine(n,r,i,-r,i,this.strokeDashArray);n.closePath()},toSVG:function(n){var t=this._createBaseSVGMarkup(),r=this.width/2,i=this.height/2,u=[-r+" "+i,"0 "+-i,r+" "+i].join(",");return t.push("<polygon ",'points="',u,'" style="',this.getSvgStyles(),'" transform="',this.getSvgTransform(),'"/>'),n?n(t.join("")):t.join("")},complexity:function(){return 1}});t.Triangle.fromObject=function(n){return new t.Triangle(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),r=Math.PI*2,i=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,initialize:function(n){n=n||{};this.callSuper("initialize",n);this.set("rx",n.rx||0);this.set("ry",n.ry||0)},_set:function(n,t){this.callSuper("_set",n,t);switch(n){case"rx":this.rx=t;this.set("width",t*2);break;case"ry":this.ry=t;this.set("height",t*2)}return this},getRx:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(n){return i(this.callSuper("toObject",n),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(n){var t=this._createBaseSVGMarkup(),i=0,r=0;return this.group&&this.group.type==="path-group"&&(i=this.left+this.rx,r=this.top+this.ry),t.push("<ellipse ",'cx="',i,'" cy="',r,'" ','rx="',this.rx,'" ry="',this.ry,'" style="',this.getSvgStyles(),'" transform="',this.getSvgTransform(),this.getSvgTransformMatrix(),'"/>\n'),n?n(t.join("")):t.join("")},_render:function(n,t){n.beginPath();n.save();n.transform(1,0,0,this.ry/this.rx,0,0);n.arc(t?this.left+this.rx:0,t?(this.top+this.ry)*this.rx/this.ry:0,this.rx,0,r,!1);n.restore();this._renderFill(n);this._renderStroke(n)},complexity:function(){return 1}});t.Ellipse.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" "));t.Ellipse.fromElement=function(n,r){var u,f;return r||(r={}),u=t.parseAttributes(n,t.Ellipse.ATTRIBUTE_NAMES),u.left=u.left||0,u.top=u.top||0,f=new t.Ellipse(i(u,r)),f.top-=f.ry,f.left-=f.rx,f};t.Ellipse.fromObject=function(n){return new t.Ellipse(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),r=t.util.object.extend,i;if(t.Rect){console.warn("fabric.Rect is already defined");return}i=t.Object.prototype.stateProperties.concat();i.push("rx","ry","x","y");t.Rect=t.util.createClass(t.Object,{stateProperties:i,type:"rect",rx:0,ry:0,strokeDashArray:null,initialize:function(n){n=n||{};this.callSuper("initialize",n);this._initRxRy()},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(n,t){if(this.width===1&&this.height===1){n.fillRect(0,0,1,1);return}var u=this.rx?Math.min(this.rx,this.width/2):0,f=this.ry?Math.min(this.ry,this.height/2):0,e=this.width,o=this.height,i=t?this.left:-this.width/2,r=t?this.top:-this.height/2,h=u!==0||f!==0,s=1-.5522847498;n.beginPath();n.moveTo(i+u,r);n.lineTo(i+e-u,r);h&&n.bezierCurveTo(i+e-s*u,r,i+e,r+s*f,i+e,r+f);n.lineTo(i+e,r+o-f);h&&n.bezierCurveTo(i+e,r+o-s*f,i+e-s*u,r+o,i+e-u,r+o);n.lineTo(i+u,r+o);h&&n.bezierCurveTo(i+s*u,r+o,i,r+o-s*f,i,r+o-f);n.lineTo(i,r+f);h&&n.bezierCurveTo(i,r+s*f,i+s*u,r,i+u,r);n.closePath();this._renderFill(n);this._renderStroke(n)},_renderDashedStroke:function(n){var i=-this.width/2,r=-this.height/2,u=this.width,f=this.height;n.beginPath();t.util.drawDashedLine(n,i,r,i+u,r,this.strokeDashArray);t.util.drawDashedLine(n,i+u,r,i+u,r+f,this.strokeDashArray);t.util.drawDashedLine(n,i+u,r+f,i,r+f,this.strokeDashArray);t.util.drawDashedLine(n,i,r+f,i,r,this.strokeDashArray);n.closePath()},toObject:function(n){var t=r(this.callSuper("toObject",n),{rx:this.get("rx")||0,ry:this.get("ry")||0});return this.includeDefaultValues||this._removeDefaultValues(t),t},toSVG:function(n){var t=this._createBaseSVGMarkup(),i=this.left,r=this.top;return this.group&&this.group.type==="path-group"||(i=-this.width/2,r=-this.height/2),t.push("<rect ",'x="',i,'" y="',r,'" rx="',this.get("rx"),'" ry="',this.get("ry"),'" width="',this.width,'" height="',this.height,'" style="',this.getSvgStyles(),'" transform="',this.getSvgTransform(),this.getSvgTransformMatrix(),'"/>\n'),n?n(t.join("")):t.join("")},complexity:function(){return 1}});t.Rect.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" "));t.Rect.fromElement=function(n,i){var u,f;return n?(i=i||{},u=t.parseAttributes(n,t.Rect.ATTRIBUTE_NAMES),u.left=u.left||0,u.top=u.top||0,f=new t.Rect(r(i?t.util.object.clone(i):{},u)),f.visible=f.width>0&&f.height>0,f):null};t.Rect.fromObject=function(n){return new t.Rect(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={});if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",points:null,minX:0,minY:0,initialize:function(n,i){return t.Polygon.prototype.initialize.call(this,n,i)},_calcDimensions:function(){return t.Polygon.prototype._calcDimensions.call(this)},_applyPointOffset:function(){return t.Polygon.prototype._applyPointOffset.call(this)},toObject:function(n){return t.Polygon.prototype.toObject.call(this,n)},toSVG:function(n){return t.Polygon.prototype.toSVG.call(this,n)},_render:function(n){t.Polygon.prototype.commonRender.call(this,n)&&(this._renderFill(n),this._renderStroke(n))},_renderDashedStroke:function(n){var r,u,i,f;for(n.beginPath(),i=0,f=this.points.length;i<f;i++)r=this.points[i],u=this.points[i+1]||r,t.util.drawDashedLine(n,r.x,r.y,u.x,u.y,this.strokeDashArray)},complexity:function(){return this.get("points").length}});t.Polyline.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat();t.Polyline.fromElement=function(n,i){if(!n)return null;i||(i={});var r=t.parsePointsAttribute(n.getAttribute("points")),u=t.parseAttributes(n,t.Polyline.ATTRIBUTE_NAMES);return new t.Polyline(r,t.util.object.extend(u,i))};t.Polyline.fromObject=function(n){var i=n.points;return new t.Polyline(i,n,!0)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend,r=t.util.array.min,u=t.util.array.max,f=t.util.toFixed;if(t.Polygon){t.warn("fabric.Polygon is already defined");return}t.Polygon=t.util.createClass(t.Object,{type:"polygon",points:null,minX:0,minY:0,initialize:function(n,t){t=t||{};this.points=n||[];this.callSuper("initialize",t);this._calcDimensions();"top"in t||(this.top=this.minY);"left"in t||(this.left=this.minX)},_calcDimensions:function(){var n=this.points,t=r(n,"x"),i=r(n,"y"),f=u(n,"x"),e=u(n,"y");this.width=f-t||0;this.height=e-i||0;this.minX=t||0;this.minY=i||0},_applyPointOffset:function(){this.points.forEach(function(n){n.x-=this.minX+this.width/2;n.y-=this.minY+this.height/2},this)},toObject:function(n){return i(this.callSuper("toObject",n),{points:this.points.concat()})},toSVG:function(n){for(var r=[],i=this._createBaseSVGMarkup(),t=0,u=this.points.length;t<u;t++)r.push(f(this.points[t].x,2),",",f(this.points[t].y,2)," ");return i.push("<",this.type," ",'points="',r.join(""),'" style="',this.getSvgStyles(),'" transform="',this.getSvgTransform()," ",this.getSvgTransformMatrix(),'"/>\n'),n?n(i.join("")):i.join("")},_render:function(n){this.commonRender(n)&&(this._renderFill(n),(this.stroke||this.strokeDashArray)&&(n.closePath(),this._renderStroke(n)))},commonRender:function(n){var i,r=this.points.length,t;if(!r||isNaN(this.points[r-1].y))return!1;for(n.beginPath(),this._applyPointOffset&&(this.group&&this.group.type==="path-group"||this._applyPointOffset(),this._applyPointOffset=null),n.moveTo(this.points[0].x,this.points[0].y),t=0;t<r;t++)i=this.points[t],n.lineTo(i.x,i.y);return!0},_renderDashedStroke:function(n){t.Polyline.prototype._renderDashedStroke.call(this,n);n.closePath()},complexity:function(){return this.points.length}});t.Polygon.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat();t.Polygon.fromElement=function(n,r){if(!n)return null;r||(r={});var u=t.parsePointsAttribute(n.getAttribute("points")),f=t.parseAttributes(n,t.Polygon.ATTRIBUTE_NAMES);return new t.Polygon(u,i(f,r))};t.Polygon.fromObject=function(n){return new t.Polygon(n.points,n,!0)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.array.min,r=t.util.array.max,u=t.util.object.extend,e=Object.prototype.toString,f=t.util.drawArc,o={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},s={m:"l",M:"L"};if(t.Path){t.warn("fabric.Path is already defined");return}t.Path=t.util.createClass(t.Object,{type:"path",path:null,minX:0,minY:0,initialize:function(n,t){if(t=t||{},this.setOptions(t),!n)throw new Error("`path` argument is required");var i=e.call(n)==="[object Array]";(this.path=i?n:n.match&&n.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi),this.path)&&(i||(this.path=this._parsePath()),this._setPositionDimensions(),t.sourcePath&&this.setSourcePath(t.sourcePath))},_setPositionDimensions:function(){var n=this._parseDimensions();this.minX=n.left;this.minY=n.top;this.width=n.width;this.height=n.height;n.left+=this.originX==="center"?this.width/2:this.originX==="right"?this.width:0;n.top+=this.originY==="center"?this.height/2:this.originY==="bottom"?this.height:0;this.top=this.top||n.top;this.left=this.left||n.left;this.pathOffset=this.pathOffset||{x:this.minX+this.width/2,y:this.minY+this.height/2}},_render:function(n){var t,l=null,v=0,y=0,i=0,r=0,o=0,s=0,h,c,u=-this.pathOffset.x,e=-this.pathOffset.y,a,p;for(this.group&&this.group.type==="path-group"&&(u=0,e=0),n.beginPath(),a=0,p=this.path.length;a<p;++a){t=this.path[a];switch(t[0]){case"l":i+=t[1];r+=t[2];n.lineTo(i+u,r+e);break;case"L":i=t[1];r=t[2];n.lineTo(i+u,r+e);break;case"h":i+=t[1];n.lineTo(i+u,r+e);break;case"H":i=t[1];n.lineTo(i+u,r+e);break;case"v":r+=t[1];n.lineTo(i+u,r+e);break;case"V":r=t[1];n.lineTo(i+u,r+e);break;case"m":i+=t[1];r+=t[2];v=i;y=r;n.moveTo(i+u,r+e);break;case"M":i=t[1];r=t[2];v=i;y=r;n.moveTo(i+u,r+e);break;case"c":h=i+t[5];c=r+t[6];o=i+t[3];s=r+t[4];n.bezierCurveTo(i+t[1]+u,r+t[2]+e,o+u,s+e,h+u,c+e);i=h;r=c;break;case"C":i=t[5];r=t[6];o=t[3];s=t[4];n.bezierCurveTo(t[1]+u,t[2]+e,o+u,s+e,i+u,r+e);break;case"s":h=i+t[3];c=r+t[4];l[0].match(/[CcSs]/)===null?(o=i,s=r):(o=2*i-o,s=2*r-s);n.bezierCurveTo(o+u,s+e,i+t[1]+u,r+t[2]+e,h+u,c+e);o=i+t[1];s=r+t[2];i=h;r=c;break;case"S":h=t[3];c=t[4];l[0].match(/[CcSs]/)===null?(o=i,s=r):(o=2*i-o,s=2*r-s);n.bezierCurveTo(o+u,s+e,t[1]+u,t[2]+e,h+u,c+e);i=h;r=c;o=t[1];s=t[2];break;case"q":h=i+t[3];c=r+t[4];o=i+t[1];s=r+t[2];n.quadraticCurveTo(o+u,s+e,h+u,c+e);i=h;r=c;break;case"Q":h=t[3];c=t[4];n.quadraticCurveTo(t[1]+u,t[2]+e,h+u,c+e);i=h;r=c;o=t[1];s=t[2];break;case"t":h=i+t[1];c=r+t[2];l[0].match(/[QqTt]/)===null?(o=i,s=r):(o=2*i-o,s=2*r-s);n.quadraticCurveTo(o+u,s+e,h+u,c+e);i=h;r=c;break;case"T":h=t[1];c=t[2];l[0].match(/[QqTt]/)===null?(o=i,s=r):(o=2*i-o,s=2*r-s);n.quadraticCurveTo(o+u,s+e,h+u,c+e);i=h;r=c;break;case"a":f(n,i+u,r+e,[t[1],t[2],t[3],t[4],t[5],t[6]+i+u,t[7]+r+e]);i+=t[6];r+=t[7];break;case"A":f(n,i+u,r+e,[t[1],t[2],t[3],t[4],t[5],t[6]+u,t[7]+e]);i=t[6];r=t[7];break;case"z":case"Z":i=v;r=y;n.closePath()}l=t}this._renderFill(n);this._renderStroke(n)},toString:function(){return"#<fabric.Path ("+this.complexity()+'): { "top": '+this.top+', "left": '+this.left+" }>"},toObject:function(n){var t=u(this.callSuper("toObject",n),{path:this.path.map(function(n){return n.slice()}),pathOffset:this.pathOffset});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(n){var t=this.toObject(n);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(n){for(var f,r=[],t=this._createBaseSVGMarkup(),u="",i=0,e=this.path.length;i<e;i++)r.push(this.path[i].join(" "));return f=r.join(" "),this.group&&this.group.type==="path-group"||(u=" translate("+-this.pathOffset.x+", "+-this.pathOffset.y+") "),t.push("<path ",'d="',f,'" style="',this.getSvgStyles(),'" transform="',this.getSvgTransform(),u,this.getSvgTransformMatrix(),'" stroke-linecap="round" ',"/>\n"),n?n(t.join("")):t.join("")},complexity:function(){return this.path.length},_parsePath:function(){for(var u,y,i,p,f=[],r=[],e,h,w=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:e[-+]?\d+)?)/gi,a,v,c=0,n,b=this.path.length;c<b;c++){for(e=this.path[c],v=e.slice(1).trim(),r.length=0;a=w.exec(v);)r.push(a[0]);for(n=[e.charAt(0)],u=0,y=r.length;u<y;u++)h=parseFloat(r[u]),isNaN(h)||n.push(h);var t=n[0],l=o[t.toLowerCase()],k=s[t]||t;if(n.length-1>l)for(i=1,p=n.length;i<p;i+=l)f.push([t].concat(n.slice(i,i+l))),t=k;else f.push(n)}return f},_parseDimensions:function(){for(var a=[],v=[],n,l=null,y=0,p=0,u=0,f=0,e=0,o=0,h,c,s,w=0,d=this.path.length;w<d;++w){n=this.path[w];switch(n[0]){case"l":u+=n[1];f+=n[2];s=[];break;case"L":u=n[1];f=n[2];s=[];break;case"h":u+=n[1];s=[];break;case"H":u=n[1];s=[];break;case"v":f+=n[1];s=[];break;case"V":f=n[1];s=[];break;case"m":u+=n[1];f+=n[2];y=u;p=f;s=[];break;case"M":u=n[1];f=n[2];y=u;p=f;s=[];break;case"c":h=u+n[5];c=f+n[6];e=u+n[3];o=f+n[4];s=t.util.getBoundsOfCurve(u,f,u+n[1],f+n[2],e,o,h,c);u=h;f=c;break;case"C":u=n[5];f=n[6];e=n[3];o=n[4];s=t.util.getBoundsOfCurve(u,f,n[1],n[2],e,o,u,f);break;case"s":h=u+n[3];c=f+n[4];l[0].match(/[CcSs]/)===null?(e=u,o=f):(e=2*u-e,o=2*f-o);s=t.util.getBoundsOfCurve(u,f,e,o,u+n[1],f+n[2],h,c);e=u+n[1];o=f+n[2];u=h;f=c;break;case"S":h=n[3];c=n[4];l[0].match(/[CcSs]/)===null?(e=u,o=f):(e=2*u-e,o=2*f-o);s=t.util.getBoundsOfCurve(u,f,e,o,n[1],n[2],h,c);u=h;f=c;e=n[1];o=n[2];break;case"q":h=u+n[3];c=f+n[4];e=u+n[1];o=f+n[2];s=t.util.getBoundsOfCurve(u,f,e,o,e,o,h,c);u=h;f=c;break;case"Q":e=n[1];o=n[2];s=t.util.getBoundsOfCurve(u,f,e,o,e,o,n[3],n[4]);u=n[3];f=n[4];break;case"t":h=u+n[1];c=f+n[2];l[0].match(/[QqTt]/)===null?(e=u,o=f):(e=2*u-e,o=2*f-o);s=t.util.getBoundsOfCurve(u,f,e,o,e,o,h,c);u=h;f=c;break;case"T":h=n[1];c=n[2];l[0].match(/[QqTt]/)===null?(e=u,o=f):(e=2*u-e,o=2*f-o);s=t.util.getBoundsOfCurve(u,f,e,o,e,o,h,c);u=h;f=c;break;case"a":s=t.util.getBoundsOfArc(u,f,n[1],n[2],n[3],n[4],n[5],n[6]+u,n[7]+f);u+=n[6];f+=n[7];break;case"A":s=t.util.getBoundsOfArc(u,f,n[1],n[2],n[3],n[4],n[5],n[6],n[7]);u=n[6];f=n[7];break;case"z":case"Z":u=y;f=p}l=n;s.forEach(function(n){a.push(n.x);v.push(n.y)});a.push(u);v.push(f)}var b=i(a),k=i(v),g=r(a),nt=r(v),tt=g-b,it=nt-k;return{left:b,top:k,width:tt,height:it}}});t.Path.fromObject=function(n,i){typeof n.path=="string"?t.loadSVGFromURL(n.path,function(r){var u=r[0],f=n.path;delete n.path;t.util.object.extend(u,n);u.setSourcePath(f);i(u)}):i(new t.Path(n.path,n))};t.Path.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat(["d"]);t.Path.fromElement=function(n,i,r){var f=t.parseAttributes(n,t.Path.ATTRIBUTE_NAMES);i&&i(new t.Path(f.d,u(f,r)))};t.Path.async=!0}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend,r=t.util.array.invoke,u=t.Object.prototype.toObject;if(t.PathGroup){t.warn("fabric.PathGroup is already defined");return}t.PathGroup=t.util.createClass(t.Path,{type:"path-group",fill:"",initialize:function(n,t){t=t||{};this.paths=n||[];for(var i=this.paths.length;i--;)this.paths[i].group=this;t.toBeParsed&&(this.parseDimensionsFromPaths(t),delete t.toBeParsed);this.setOptions(t);this.setCoords();t.sourcePath&&this.setSourcePath(t.sourcePath)},parseDimensionsFromPaths:function(n){for(var u,f,r,s=[],h=[],i,e,o,c=this.transformMatrix,l=this.paths.length;l--;)for(i=this.paths[l],e=i.height+i.strokeWidth,o=i.width+i.strokeWidth,f=[{x:i.left,y:i.top},{x:i.left+o,y:i.top},{x:i.left,y:i.top+e},{x:i.left+o,y:i.top+e}],u=0;u<f.length;u++)r=f[u],c&&(r=t.util.transformPoint(r,c,!1)),s.push(r.x),h.push(r.y);n.width=Math.max.apply(null,s);n.height=Math.max.apply(null,h)},render:function(n){if(this.visible){n.save();this.transformMatrix&&n.transform.apply(n,this.transformMatrix);this.transform(n);this._setShadow(n);this.clipTo&&t.util.clipContext(this,n);n.translate(-this.width/2,-this.height/2);for(var i=0,r=this.paths.length;i<r;++i)this.paths[i].render(n,!0);this.clipTo&&n.restore();this._removeShadow(n);n.restore()}},_set:function(n,t){if(n==="fill"&&t&&this.isSameColor())for(var i=this.paths.length;i--;)this.paths[i]._set(n,t);return this.callSuper("_set",n,t)},toObject:function(n){var t=i(u.call(this,n),{paths:r(this.getObjects(),"toObject",n)});return this.sourcePath&&(t.sourcePath=this.sourcePath),t},toDatalessObject:function(n){var t=this.toObject(n);return this.sourcePath&&(t.paths=this.sourcePath),t},toSVG:function(n){for(var r=this.getObjects(),u=this.getPointByOrigin("left","top"),f="translate("+u.x+" "+u.y+")",t=["<g ",'style="',this.getSvgStyles(),'" ','transform="',this.getSvgTransformMatrix(),f,this.getSvgTransform(),'" ',">\n"],i=0,e=r.length;i<e;i++)t.push(r[i].toSVG(n));return t.push("<\/g>\n"),n?n(t.join("")):t.join("")},toString:function(){return"#<fabric.PathGroup ("+this.complexity()+"): { top: "+this.top+", left: "+this.left+" }>"},isSameColor:function(){var n=(this.getObjects()[0].get("fill")||"").toLowerCase();return this.getObjects().every(function(t){return(t.get("fill")||"").toLowerCase()===n})},complexity:function(){return this.paths.reduce(function(n,t){return n+(t&&t.complexity?t.complexity():0)},0)},getObjects:function(){return this.paths}});t.PathGroup.fromObject=function(n,i){typeof n.paths=="string"?t.loadSVGFromURL(n.paths,function(r){var f=n.paths,u;delete n.paths;u=t.util.groupSVGElements(r,n,f);i(u)}):t.util.enlivenObjects(n.paths,function(r){delete n.paths;i(new t.PathGroup(r,n))})};t.PathGroup.async=!0}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),f=t.util.object.extend,i=t.util.array.min,r=t.util.array.max,e=t.util.array.invoke,u;t.Group||(u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0},t.Group=t.util.createClass(t.Object,t.Collection,{type:"group",initialize:function(n,t){t=t||{};this._objects=n||[];for(var i=this._objects.length;i--;)this._objects[i].group=this;this.originalState={};this.callSuper("initialize");t.originX&&(this.originX=t.originX);t.originY&&(this.originY=t.originY);this._calcBounds();this._updateObjectsCoords();this.callSuper("initialize",t);this.setCoords();this.saveCoords()},_updateObjectsCoords:function(){this.forEachObject(this._updateObjectCoords,this)},_updateObjectCoords:function(n){var t=n.getLeft(),i=n.getTop(),r=this.getCenterPoint();n.set({originalLeft:t,originalTop:i,left:t-r.x,top:i-r.y});n.setCoords();n.__origHasControls=n.hasControls;n.hasControls=!1},toString:function(){return"#<fabric.Group: ("+this.complexity()+")>"},addWithUpdate:function(n){return this._restoreObjectsState(),n&&(this._objects.push(n),n.group=this),this.forEachObject(this._setObjectActive,this),this._calcBounds(),this._updateObjectsCoords(),this},_setObjectActive:function(n){n.set("active",!0);n.group=this},removeWithUpdate:function(n){return this._moveFlippedObject(n),this._restoreObjectsState(),this.forEachObject(this._setObjectActive,this),this.remove(n),this._calcBounds(),this._updateObjectsCoords(),this},_onObjectAdded:function(n){n.group=this},_onObjectRemoved:function(n){delete n.group;n.set("active",!1)},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textAlign:!0,backgroundColor:!0},_set:function(n,t){if(n in this.delegatedProperties)for(var i=this._objects.length;i--;)this._objects[i].set(n,t);this.callSuper("_set",n,t)},toObject:function(n){return f(this.callSuper("toObject",n),{objects:e(this._objects,"toObject",n)})},render:function(n){if(this.visible){n.save();this.clipTo&&t.util.clipContext(this,n);this.transform(n);for(var i=0,r=this._objects.length;i<r;i++)this._renderObject(this._objects[i],n);this.clipTo&&n.restore();n.restore()}},_renderControls:function(n,t){this.callSuper("_renderControls",n,t);for(var i=0,r=this._objects.length;i<r;i++)this._objects[i]._renderControls(n)},_renderObject:function(n,t){var i=n.hasRotatingPoint;n.visible&&(n.hasRotatingPoint=!1,n.render(t),n.hasRotatingPoint=i)},_restoreObjectsState:function(){return this._objects.forEach(this._restoreObjectState,this),this},realizeTransform:function(n){return this._moveFlippedObject(n),this._setObjectPosition(n),n},_moveFlippedObject:function(n){var i=n.get("originX"),r=n.get("originY"),u=n.getCenterPoint(),t;return n.set({originX:"center",originY:"center",left:u.x,top:u.y}),this._toggleFlipping(n),t=n.getPointByOrigin(i,r),n.set({originX:i,originY:r,left:t.x,top:t.y}),this},_toggleFlipping:function(n){this.flipX&&(n.toggle("flipX"),n.set("left",-n.get("left")),n.setAngle(-n.getAngle()));this.flipY&&(n.toggle("flipY"),n.set("top",-n.get("top")),n.setAngle(-n.getAngle()))},_restoreObjectState:function(n){return this._setObjectPosition(n),n.setCoords(),n.hasControls=n.__origHasControls,delete n.__origHasControls,n.set("active",!1),n.setCoords(),delete n.group,this},_setObjectPosition:function(n){var t=this.getCenterPoint(),i=this._getRotatedLeftTop(n);n.set({angle:n.getAngle()+this.getAngle(),left:t.x+i.left,top:t.y+i.top,scaleX:n.get("scaleX")*this.get("scaleX"),scaleY:n.get("scaleY")*this.get("scaleY")})},_getRotatedLeftTop:function(n){var t=this.getAngle()*(Math.PI/180);return{left:-Math.sin(t)*n.getTop()*this.get("scaleY")+Math.cos(t)*n.getLeft()*this.get("scaleX"),top:Math.cos(t)*n.getTop()*this.get("scaleY")+Math.sin(t)*n.getLeft()*this.get("scaleX")}},destroy:function(){return this._objects.forEach(this._moveFlippedObject,this),this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(n){n.setCoords()}),this},_calcBounds:function(n){for(var i,f=[],e=[],t,r,o=["tr","br","bl","tl"],u=0,s=this._objects.length;u<s;++u)for(t=this._objects[u],t.setCoords(),i=0;i<o.length;i++)r=o[i],f.push(t.oCoords[r].x),e.push(t.oCoords[r].y);this.set(this._getBounds(f,e,n))},_getBounds:function(n,u,f){var s=t.util.invertTransform(this.getViewportTransform()),o=t.util.transformPoint(new t.Point(i(n),i(u)),s),h=t.util.transformPoint(new t.Point(r(n),r(u)),s),e={width:h.x-o.x||0,height:h.y-o.y||0};return f||(e.left=o.x||0,e.top=o.y||0,this.originX==="center"&&(e.left+=e.width/2),this.originX==="right"&&(e.left+=e.width),this.originY==="center"&&(e.top+=e.height/2),this.originY==="bottom"&&(e.top+=e.height)),e},toSVG:function(n){for(var t=["<g ",'transform="',this.getSvgTransform(),'">\n'],i=0,r=this._objects.length;i<r;i++)t.push(this._objects[i].toSVG(n));return t.push("<\/g>\n"),n?n(t.join("")):t.join("")},get:function(n){if(n in u){if(this[n])return this[n];for(var t=0,i=this._objects.length;t<i;t++)if(this._objects[t][n])return!0;return!1}return n in this.delegatedProperties?this._objects[0]&&this._objects[0].get(n):this[n]}}),t.Group.fromObject=function(n,i){t.util.enlivenObjects(n.objects,function(r){delete n.objects;i&&i(new t.Group(r,n))})},t.Group.async=!0)}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=fabric.util.object.extend;if(n.fabric||(n.fabric={}),n.fabric.Image){fabric.warn("fabric.Image is already defined.");return}fabric.Image=fabric.util.createClass(fabric.Object,{type:"image",crossOrigin:"",alignX:"none",alignY:"none",meetOrSlice:"meet",_lastScaleX:1,_lastScaleY:1,initialize:function(n,t){t||(t={});this.filters=[];this.resizeFilters=[];this.callSuper("initialize",t);this._initElement(n,t);this._initConfig(t);t.filters&&(this.filters=t.filters,this.applyFilters())},getElement:function(){return this._element},setElement:function(n,t,i){return this._element=n,this._originalElement=n,this._initConfig(i),this.filters.length!==0?this.applyFilters(t):t&&t(),this},setCrossOrigin:function(n){return this.crossOrigin=n,this._element.crossOrigin=n,this},getOriginalSize:function(){var n=this.getElement();return{width:n.width,height:n.height}},_stroke:function(n){n.save();this._setStrokeStyles(n);n.beginPath();n.strokeRect(-this.width/2,-this.height/2,this.width,this.height);n.closePath();n.restore()},_renderDashedStroke:function(n){var t=-this.width/2,i=-this.height/2,r=this.width,u=this.height;n.save();this._setStrokeStyles(n);n.beginPath();fabric.util.drawDashedLine(n,t,i,t+r,i,this.strokeDashArray);fabric.util.drawDashedLine(n,t+r,i,t+r,i+u,this.strokeDashArray);fabric.util.drawDashedLine(n,t+r,i+u,t,i+u,this.strokeDashArray);fabric.util.drawDashedLine(n,t,i+u,t,i,this.strokeDashArray);n.closePath();n.restore()},toObject:function(n){return t(this.callSuper("toObject",n),{src:this._originalElement.src||this._originalElement._src,filters:this.filters.map(function(n){return n&&n.toObject()}),crossOrigin:this.crossOrigin,alignX:this.alignX,alignY:this.alignY,meetOrSlice:this.meetOrSlice})},toSVG:function(n){var t=[],i=-this.width/2,r=-this.height/2,u="none",f;return this.group&&this.group.type==="path-group"&&(i=this.left,r=this.top),this.alignX!=="none"&&this.alignY!=="none"&&(u="x"+this.alignX+"Y"+this.alignY+" "+this.meetOrSlice),t.push('<g transform="',this.getSvgTransform(),this.getSvgTransformMatrix(),'">\n','<image xlink:href="',this.getSvgSrc(),'" x="',i,'" y="',r,'" style="',this.getSvgStyles(),'" width="',this.width,'" height="',this.height,'" preserveAspectRatio="',u,'"',"><\/image>\n"),(this.stroke||this.strokeDashArray)&&(f=this.fill,this.fill=null,t.push("<rect ",'x="',i,'" y="',r,'" width="',this.width,'" height="',this.height,'" style="',this.getSvgStyles(),'"/>\n'),this.fill=f),t.push("<\/g>\n"),n?n(t.join("")):t.join("")},getSrc:function(){if(this.getElement())return this.getElement().src||this.getElement()._src},setSrc:function(n,t,i){fabric.util.loadImage(n,function(n){return this.setElement(n,t,i)},this,i&&i.crossOrigin)},toString:function(){return'#<fabric.Image: { src: "'+this.getSrc()+'" }>'},clone:function(n,t){this.constructor.fromObject(this.toObject(t),n)},applyFilters:function(n,t,i,r){if(t=t||this.filters,i=i||this._originalElement,i){var o=i,u=fabric.util.createCanvasElement(),f=fabric.util.createImage(),e=this;return(u.width=o.width,u.height=o.height,u.getContext("2d").drawImage(o,0,0,o.width,o.height),t.length===0)?(this._element=i,n&&n(),u):(t.forEach(function(n){n&&n.applyTo(u,n.scaleX||e.scaleX,n.scaleY||e.scaleY);!r&&n&&n.type==="Resize"&&(e.width*=n.scaleX,e.height*=n.scaleY)}),f.width=u.width,f.height=u.height,fabric.isLikelyNode?(f.src=u.toBuffer(undefined,fabric.Image.pngCompression),e._element=f,r||(e._filteredEl=f),n&&n()):(f.onload=function(){e._element=f;r||(e._filteredEl=f);n&&n();f.onload=u=o=null},f.src=u.toDataURL("image/png")),u)}},_render:function(n,t){var u,f,i=this._findMargins(),r;u=t?this.left:-this.width/2;f=t?this.top:-this.height/2;this.meetOrSlice==="slice"&&(n.beginPath(),n.rect(u,f,this.width,this.height),n.clip());this.isMoving===!1&&this.resizeFilters.length&&this._needsResize()?(this._lastScaleX=this.scaleX,this._lastScaleY=this.scaleY,r=this.applyFilters(null,this.resizeFilters,this._filteredEl||this._originalElement,!0)):r=this._element;r&&n.drawImage(r,u+i.marginX,f+i.marginY,i.width,i.height);this._renderStroke(n)},_needsResize:function(){return this.scaleX!==this._lastScaleX||this.scaleY!==this._lastScaleY},_findMargins:function(){var n=this.width,t=this.height,i,r,u=0,f=0;return(this.alignX!=="none"||this.alignY!=="none")&&(i=[this.width/this._element.width,this.height/this._element.height],r=this.meetOrSlice==="meet"?Math.min.apply(null,i):Math.max.apply(null,i),n=this._element.width*r,t=this._element.height*r,this.alignX==="Mid"&&(u=(this.width-n)/2),this.alignX==="Max"&&(u=this.width-n),this.alignY==="Mid"&&(f=(this.height-t)/2),this.alignY==="Max"&&(f=this.height-t)),{width:n,height:t,marginX:u,marginY:f}},_resetWidthHeight:function(){var n=this.getElement();this.set("width",n.width);this.set("height",n.height)},_initElement:function(n){this.setElement(fabric.util.getById(n));fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(n){n||(n={});this.setOptions(n);this._setWidthHeight(n);this._element&&this.crossOrigin&&(this._element.crossOrigin=this.crossOrigin)},_initFilters:function(n,t){n.filters&&n.filters.length?fabric.util.enlivenObjects(n.filters,function(n){t&&t(n)},"fabric.Image.filters"):t&&t()},_setWidthHeight:function(n){this.width="width"in n?n.width:this.getElement()?this.getElement().width||0:0;this.height="height"in n?n.height:this.getElement()?this.getElement().height||0:0},complexity:function(){return 1}});fabric.Image.CSS_CANVAS="canvas-img";fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc;fabric.Image.fromObject=function(n,t){fabric.util.loadImage(n.src,function(i){fabric.Image.prototype._initFilters.call(n,n,function(r){n.filters=r||[];var u=new fabric.Image(i,n);t&&t(u)})},null,n.crossOrigin)};fabric.Image.fromURL=function(n,t,i){fabric.util.loadImage(n,function(n){t&&t(new fabric.Image(n,i))},null,i&&i.crossOrigin)};fabric.Image.ATTRIBUTE_NAMES=fabric.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href".split(" "));fabric.Image.fromElement=function(n,i,r){var u=fabric.parseAttributes(n,fabric.Image.ATTRIBUTE_NAMES),f="xMidYMid",e="meet",s,h,o;u.preserveAspectRatio&&(o=u.preserveAspectRatio.split(" "));o&&o.length&&(e=o.pop(),e!=="meet"&&e!=="slice"?(f=e,e="meet"):o.length&&(f=o.pop()));s=f!=="none"?f.slice(1,4):"none";h=f!=="none"?f.slice(5,8):"none";u.alignX=s;u.alignY=h;u.meetOrSlice=e;fabric.Image.fromURL(u["xlink:href"],i,t(r?fabric.util.object.clone(r):{},u))};fabric.Image.async=!0;fabric.Image.pngCompression=1}(typeof exports!="undefined"?exports:this);fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var n=this.getAngle()%360;return n>0?Math.round((n-1)/90)*90:Math.round(n/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(n){n=n||{};var i=function(){},r=n.onComplete||i,u=n.onChange||i,t=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(n){t.setAngle(n);u()},onComplete:function(){t.setCoords();r()},onStart:function(){t.set("active",!1)}}),this}});fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(n){return n.straighten(),this.renderAll(),this},fxStraightenObject:function(n){return n.fxStraighten({onChange:this.renderAll.bind(this)}),this}});fabric.Image.filters=fabric.Image.filters||{};fabric.Image.filters.BaseFilter=fabric.util.createClass({type:"BaseFilter",initialize:function(n){n&&this.setOptions(n)},setOptions:function(n){for(var t in n)this[t]=n[t]},toObject:function(){return{type:this.type}},toJSON:function(){return this.toObject()}}),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend;t.Image.filters.Brightness=t.util.createClass(t.Image.filters.BaseFilter,{type:"Brightness",initialize:function(n){n=n||{};this.brightness=n.brightness||0},applyTo:function(n){for(var u=n.getContext("2d"),f=u.getImageData(0,0,n.width,n.height),i=f.data,r=this.brightness,t=0,e=i.length;t<e;t+=4)i[t]+=r,i[t+1]+=r,i[t+2]+=r;u.putImageData(f,0,0)},toObject:function(){return i(this.callSuper("toObject"),{brightness:this.brightness})}});t.Image.filters.Brightness.fromObject=function(n){return new t.Image.filters.Brightness(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend;t.Image.filters.Convolute=t.util.createClass(t.Image.filters.BaseFilter,{type:"Convolute",initialize:function(n){n=n||{};this.opaque=n.opaque;this.matrix=n.matrix||[0,0,0,0,1,0,0,0,0];var i=t.util.createCanvasElement();this.tmpCtx=i.getContext("2d")},_createImageData:function(n,t){return this.tmpCtx.createImageData(n,t)},applyTo:function(n){for(var t,i,r,l,a,u,f,b=this.matrix,k=n.getContext("2d"),v=k.getImageData(0,0,n.width,n.height),e=Math.round(Math.sqrt(b.length)),d=Math.floor(e/2),o=v.data,y=v.width,g=v.height,p=y,nt=g,tt=this._createImageData(p,nt),s=tt.data,ft=this.opaque?1:0,h=0;h<nt;h++)for(t=0;t<p;t++){var et=h,ot=t,c=(h*p+t)*4,it=0,rt=0,ut=0,w=0;for(i=0;i<e;i++)for(r=0;r<e;r++)(l=et+i-d,a=ot+r-d,l<0||l>g||a<0||a>y)||(u=(l*y+a)*4,f=b[i*e+r],it+=o[u]*f,rt+=o[u+1]*f,ut+=o[u+2]*f,w+=o[u+3]*f);s[c]=it;s[c+1]=rt;s[c+2]=ut;s[c+3]=w+ft*(255-w)}k.putImageData(tt,0,0)},toObject:function(){return i(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}});t.Image.filters.Convolute.fromObject=function(n){return new t.Image.filters.Convolute(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend;t.Image.filters.GradientTransparency=t.util.createClass(t.Image.filters.BaseFilter,{type:"GradientTransparency",initialize:function(n){n=n||{};this.threshold=n.threshold||100},applyTo:function(n){for(var r=n.getContext("2d"),u=r.getImageData(0,0,n.width,n.height),i=u.data,e=this.threshold,f=i.length,t=0,o=i.length;t<o;t+=4)i[t+3]=e+255*(f-t)/f;r.putImageData(u,0,0)},toObject:function(){return i(this.callSuper("toObject"),{threshold:this.threshold})}});t.Image.filters.GradientTransparency.fromObject=function(n){return new t.Image.filters.GradientTransparency(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={});t.Image.filters.Grayscale=t.util.createClass(t.Image.filters.BaseFilter,{type:"Grayscale",applyTo:function(n){for(var f=n.getContext("2d"),r=f.getImageData(0,0,n.width,n.height),i=r.data,e=r.width*r.height*4,t=0,u;t<e;)u=(i[t]+i[t+1]+i[t+2])/3,i[t]=u,i[t+1]=u,i[t+2]=u,t+=4;f.putImageData(r,0,0)}});t.Image.filters.Grayscale.fromObject=function(){return new t.Image.filters.Grayscale}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={});t.Image.filters.Invert=t.util.createClass(t.Image.filters.BaseFilter,{type:"Invert",applyTo:function(n){for(var r=n.getContext("2d"),u=r.getImageData(0,0,n.width,n.height),i=u.data,f=i.length,t=0;t<f;t+=4)i[t]=255-i[t],i[t+1]=255-i[t+1],i[t+2]=255-i[t+2];r.putImageData(u,0,0)}});t.Image.filters.Invert.fromObject=function(){return new t.Image.filters.Invert}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend;t.Image.filters.Mask=t.util.createClass(t.Image.filters.BaseFilter,{type:"Mask",initialize:function(n){n=n||{};this.mask=n.mask;this.channel=[0,1,2,3].indexOf(n.channel)>-1?n.channel:0},applyTo:function(n){var o,s;if(this.mask){var e=n.getContext("2d"),u=e.getImageData(0,0,n.width,n.height),h=u.data,i=this.mask.getElement(),f=t.util.createCanvasElement(),c=this.channel,r,l=u.width*u.height*4;for(f.width=i.width,f.height=i.height,f.getContext("2d").drawImage(i,0,0,i.width,i.height),o=f.getContext("2d").getImageData(0,0,i.width,i.height),s=o.data,r=0;r<l;r+=4)h[r+3]=s[r+c];e.putImageData(u,0,0)}},toObject:function(){return i(this.callSuper("toObject"),{mask:this.mask.toObject(),channel:this.channel})}});t.Image.filters.Mask.fromObject=function(n,i){t.util.loadImage(n.mask.src,function(r){n.mask=new t.Image(r,n.mask);i&&i(new t.Image.filters.Mask(n))})};t.Image.filters.Mask.async=!0}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend;t.Image.filters.Noise=t.util.createClass(t.Image.filters.BaseFilter,{type:"Noise",initialize:function(n){n=n||{};this.noise=n.noise||0},applyTo:function(n){for(var u=n.getContext("2d"),f=u.getImageData(0,0,n.width,n.height),i=f.data,e=this.noise,r,t=0,o=i.length;t<o;t+=4)r=(.5-Math.random())*e,i[t]+=r,i[t+1]+=r,i[t+2]+=r;u.putImageData(f,0,0)},toObject:function(){return i(this.callSuper("toObject"),{noise:this.noise})}});t.Image.filters.Noise.fromObject=function(n){return new t.Image.filters.Noise(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend;t.Image.filters.Pixelate=t.util.createClass(t.Image.filters.BaseFilter,{type:"Pixelate",initialize:function(n){n=n||{};this.blocksize=n.blocksize||4},applyTo:function(n){for(var h=n.getContext("2d"),f=h.getImageData(0,0,n.width,n.height),i=f.data,w=f.height,s=f.width,t,u,c,l,a,v,e,y,o,p,r=0;r<w;r+=this.blocksize)for(u=0;u<s;u+=this.blocksize)for(t=r*4*s+u*4,c=i[t],l=i[t+1],a=i[t+2],v=i[t+3],e=r,y=r+this.blocksize;e<y;e++)for(o=u,p=u+this.blocksize;o<p;o++)t=e*4*s+o*4,i[t]=c,i[t+1]=l,i[t+2]=a,i[t+3]=v;h.putImageData(f,0,0)},toObject:function(){return i(this.callSuper("toObject"),{blocksize:this.blocksize})}});t.Image.filters.Pixelate.fromObject=function(n){return new t.Image.filters.Pixelate(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend;t.Image.filters.RemoveWhite=t.util.createClass(t.Image.filters.BaseFilter,{type:"RemoveWhite",initialize:function(n){n=n||{};this.threshold=n.threshold||30;this.distance=n.distance||20},applyTo:function(n){for(var h=n.getContext("2d"),c=h.getImageData(0,0,n.width,n.height),i=c.data,l=this.threshold,e=this.distance,o=255-l,s=Math.abs,r,u,f,t=0,a=i.length;t<a;t+=4)r=i[t],u=i[t+1],f=i[t+2],r>o&&u>o&&f>o&&s(r-u)<e&&s(r-f)<e&&s(u-f)<e&&(i[t+3]=1);h.putImageData(c,0,0)},toObject:function(){return i(this.callSuper("toObject"),{threshold:this.threshold,distance:this.distance})}});t.Image.filters.RemoveWhite.fromObject=function(n){return new t.Image.filters.RemoveWhite(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={});t.Image.filters.Sepia=t.util.createClass(t.Image.filters.BaseFilter,{type:"Sepia",applyTo:function(n){for(var u=n.getContext("2d"),f=u.getImageData(0,0,n.width,n.height),i=f.data,e=i.length,r,t=0;t<e;t+=4)r=.3*i[t]+.59*i[t+1]+.11*i[t+2],i[t]=r+100,i[t+1]=r+50,i[t+2]=r+255;u.putImageData(f,0,0)}});t.Image.filters.Sepia.fromObject=function(){return new t.Image.filters.Sepia}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={});t.Image.filters.Sepia2=t.util.createClass(t.Image.filters.BaseFilter,{type:"Sepia2",applyTo:function(n){for(var e=n.getContext("2d"),o=e.getImageData(0,0,n.width,n.height),i=o.data,s=i.length,r,u,f,t=0;t<s;t+=4)r=i[t],u=i[t+1],f=i[t+2],i[t]=(r*.393+u*.769+f*.189)/1.351,i[t+1]=(r*.349+u*.686+f*.168)/1.203,i[t+2]=(r*.272+u*.534+f*.131)/2.14;e.putImageData(o,0,0)}});t.Image.filters.Sepia2.fromObject=function(){return new t.Image.filters.Sepia2}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend;t.Image.filters.Tint=t.util.createClass(t.Image.filters.BaseFilter,{type:"Tint",initialize:function(n){n=n||{};this.color=n.color||"#000000";this.opacity=typeof n.opacity!="undefined"?n.opacity:new t.Color(this.color).getAlpha()},applyTo:function(n){var e=n.getContext("2d"),o=e.getImageData(0,0,n.width,n.height),r=o.data,y=r.length,i,s,h,c,l,a,v,u,f;for(f=new t.Color(this.color).getSource(),s=f[0]*this.opacity,h=f[1]*this.opacity,c=f[2]*this.opacity,u=1-this.opacity,i=0;i<y;i+=4)l=r[i],a=r[i+1],v=r[i+2],r[i]=s+l*u,r[i+1]=h+a*u,r[i+2]=c+v*u;e.putImageData(o,0,0)},toObject:function(){return i(this.callSuper("toObject"),{color:this.color,opacity:this.opacity})}});t.Image.filters.Tint.fromObject=function(n){return new t.Image.filters.Tint(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),i=t.util.object.extend;t.Image.filters.Multiply=t.util.createClass(t.Image.filters.BaseFilter,{type:"Multiply",initialize:function(n){n=n||{};this.color=n.color||"#000000"},applyTo:function(n){for(var f=n.getContext("2d"),e=f.getImageData(0,0,n.width,n.height),r=e.data,o=r.length,u=new t.Color(this.color).getSource(),i=0;i<o;i+=4)r[i]*=u[0]/255,r[i+1]*=u[1]/255,r[i+2]*=u[2]/255;f.putImageData(e,0,0)},toObject:function(){return i(this.callSuper("toObject"),{color:this.color})}});t.Image.filters.Multiply.fromObject=function(n){return new t.Image.filters.Multiply(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric;t.Image.filters.Blend=t.util.createClass({type:"Blend",initialize:function(n){n=n||{};this.color=n.color||"#000";this.image=n.image||!1;this.mode=n.mode||"multiply";this.alpha=n.alpha||1},applyTo:function(n){var w=n.getContext("2d"),b=w.getImageData(0,0,n.width,n.height),r=b.data,u,f,e,o,s,h,v,y,p,c,k=!1,a,l,d,i,g;for(this.image?(k=!0,a=t.util.createCanvasElement(),a.width=this.image.width,a.height=this.image.height,l=new t.StaticCanvas(a),l.add(this.image),d=l.getContext("2d"),c=d.getImageData(0,0,l.width,l.height).data):(c=new t.Color(this.color).getSource(),u=c[0]*this.alpha,f=c[1]*this.alpha,e=c[2]*this.alpha),i=0,g=r.length;i<g;i+=4){o=r[i];s=r[i+1];h=r[i+2];k&&(u=c[i]*this.alpha,f=c[i+1]*this.alpha,e=c[i+2]*this.alpha);switch(this.mode){case"multiply":r[i]=o*u/255;r[i+1]=s*f/255;r[i+2]=h*e/255;break;case"screen":r[i]=1-(1-o)*(1-u);r[i+1]=1-(1-s)*(1-f);r[i+2]=1-(1-h)*(1-e);break;case"add":r[i]=Math.min(255,o+u);r[i+1]=Math.min(255,s+f);r[i+2]=Math.min(255,h+e);break;case"diff":case"difference":r[i]=Math.abs(o-u);r[i+1]=Math.abs(s-f);r[i+2]=Math.abs(h-e);break;case"subtract":v=o-u;y=s-f;p=h-e;r[i]=v<0?0:v;r[i+1]=y<0?0:y;r[i+2]=p<0?0:p;break;case"darken":r[i]=Math.min(o,u);r[i+1]=Math.min(s,f);r[i+2]=Math.min(h,e);break;case"lighten":r[i]=Math.max(o,u);r[i+1]=Math.max(s,f);r[i+2]=Math.max(h,e)}}w.putImageData(b,0,0)},toObject:function(){return{color:this.color,image:this.image,mode:this.mode,alpha:this.alpha}}});t.Image.filters.Blend.fromObject=function(n){return new t.Image.filters.Blend(n)}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var i=n.fabric||(n.fabric={}),e=Math.pow,t=Math.floor,o=Math.sqrt,r=Math.abs,u=Math.max,s=Math.round,h=Math.sin,f=Math.ceil;i.Image.filters.Resize=i.util.createClass(i.Image.filters.BaseFilter,{type:"Resize",resizeType:"hermite",scaleX:0,scaleY:0,lanczosLobes:3,applyTo:function(n,t,i){this.rcpScaleX=1/t;this.rcpScaleY=1/i;var r=n.width,u=n.height,f=s(r*t),e=s(u*i),o;this.resizeType==="sliceHack"&&(o=this.sliceByTwo(n,r,u,f,e));this.resizeType==="hermite"&&(o=this.hermiteFastResize(n,r,u,f,e));this.resizeType==="bilinear"&&(o=this.bilinearFiltering(n,r,u,f,e));this.resizeType==="lanczos"&&(o=this.lanczosResize(n,r,u,f,e));n.width=f;n.height=e;n.getContext("2d").putImageData(o,0,0)},sliceByTwo:function(n,r,f,e,o){var c=n.getContext("2d"),l,v=.5,y=.5,p=1,w=1,b=!1,k=!1,s=r,h=f,a=i.util.createCanvasElement(),d=a.getContext("2d");for(e=t(e),o=t(o),a.width=u(e,r),a.height=u(o,f),e>r&&(v=2,p=-1),o>f&&(y=2,w=-1),l=c.getImageData(0,0,r,f),n.width=u(e,r),n.height=u(o,f),c.putImageData(l,0,0);!b||!k;)r=s,f=h,e*p<t(s*v*p)?s=t(s*v):(s=e,b=!0),o*w<t(h*y*w)?h=t(h*y):(h=o,k=!0),l=c.getImageData(0,0,r,f),d.putImageData(l,0,0),c.clearRect(0,0,s,h),c.drawImage(a,0,0,r,f,0,0,s,h);return c.getImageData(0,0,e,o)},lanczosResize:function(n,i,u,s,c){function it(n){return function(t){if(t>n)return 0;if(t*=Math.PI,r(t)<1e-16)return 1;var i=t/n;return h(t)*h(i)/t/i}}function w(n){var st,h,b,f,ot,ct,lt,at,vt,it,ht,rt;for(l.x=(n+.5)*d,a.x=t(l.x),st=0;st<c;st++){for(l.y=(st+.5)*g,a.y=t(l.y),ot=0,ct=0,lt=0,at=0,vt=0,h=a.x-nt;h<=a.x+nt;h++)if(!(h<0)&&!(h>=i))for(it=t(1e3*r(h-l.x)),v[it]||(v[it]={}),rt=a.y-tt;rt<=a.y+tt;rt++)rt<0||rt>=u||(ht=t(1e3*r(rt-l.y)),v[it][ht]||(v[it][ht]=ut(o(e(it*ft,2)+e(ht*et,2))/1e3)),b=v[it][ht],b>0&&(f=(rt*i+h)*4,ot+=b,ct+=b*y[f],lt+=b*y[f+1],at+=b*y[f+2],vt+=b*y[f+3]));f=(st*s+n)*4;p[f]=ct/ot;p[f+1]=lt/ot;p[f+2]=at/ot;p[f+3]=vt/ot}return++n<s?w(n):k}var b=n.getContext("2d"),rt=b.getImageData(0,0,i,u),k=b.getImageData(0,0,s,c),y=rt.data,p=k.data,ut=it(this.lanczosLobes),d=this.rcpScaleX,g=this.rcpScaleY,ft=2/this.rcpScaleX,et=2/this.rcpScaleY,nt=f(d*this.lanczosLobes/2),tt=f(g*this.lanczosLobes/2),v={},l={},a={};return w(0)},bilinearFiltering:function(n,i,r,u,f){for(var p,w,b,k,v,y,s,h,c,e,d,ut=0,l,g=this.rcpScaleX,nt=this.rcpScaleY,tt=n.getContext("2d"),it=4*(i-1),ft=tt.getImageData(0,0,i,r),a=ft.data,rt=tt.getImageData(0,0,u,f),et=rt.data,o=0;o<f;o++)for(s=0;s<u;s++)for(v=t(g*s),y=t(nt*o),h=g*s-v,c=nt*o-y,l=4*(y*i+v),e=0;e<4;e++)p=a[l+e],w=a[l+4+e],b=a[l+it+e],k=a[l+it+4+e],d=p*(1-h)*(1-c)+w*h*(1-c)+b*c*(1-h)+k*h*c,et[ut++]=d;return rt},hermiteFastResize:function(n,i,u,e,s){for(var a,p,w,c,l,b=this.rcpScaleX,k=this.rcpScaleY,ht=f(b/2),ct=f(k/2),tt=n.getContext("2d"),lt=tt.getImageData(0,0,i,u),v=lt.data,it=tt.getImageData(0,0,e,s),d=it.data,y=0;y<s;y++)for(a=0;a<e;a++){var g=(a+y*e)*4,h=0,nt=0,rt=0,ut=0,ft=0,et=0,ot=0,at=(y+.5)*k;for(p=t(y*k);p<(y+1)*k;p++){var st=r(at-(p+.5))/ct,vt=(a+.5)*b,yt=st*st;for(w=t(a*b);w<(a+1)*b;w++)(c=r(vt-(w+.5))/ht,l=o(yt+c*c),l>1&&l<-1)||(h=2*l*l*l-3*l*l+1,h>0&&(c=4*(w+p*i),ot+=h*v[c+3],rt+=h,v[c+3]<255&&(h=h*v[c+3]/250),ut+=h*v[c],ft+=h*v[c+1],et+=h*v[c+2],nt+=h))}d[g]=ut/nt;d[g+1]=ft/nt;d[g+2]=et/nt;d[g+3]=ot/rt}return it},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaley:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}});i.Image.filters.Resize.fromObject=function(){return new i.Image.filters.Resize}}(typeof exports!="undefined"?exports:this),function(n){"use strict";var t=n.fabric||(n.fabric={}),u=t.util.object.extend,f=t.util.object.clone,i=t.util.toFixed,e=t.StaticCanvas.supports("setLineDash"),r;if(t.Text){t.warn("fabric.Text is already defined");return}r=t.Object.prototype.stateProperties.concat();r.push("fontFamily","fontWeight","fontSize","text","textDecoration","textAlign","fontStyle","lineHeight","textBackgroundColor");t.Text=t.util.createClass(t.Object,{_dimensionAffectingProps:{fontSize:!0,fontWeight:!0,fontFamily:!0,fontStyle:!0,lineHeight:!0,stroke:!0,strokeWidth:!0,text:!0,textAlign:!0},_reNewline:/\r?\n/,type:"text",fontSize:40,fontWeight:"normal",fontFamily:"Times New Roman",textDecoration:"",textAlign:"left",fontStyle:"",lineHeight:1.16,textBackgroundColor:"",stateProperties:r,stroke:null,shadow:null,_fontSizeFraction:.25,_fontSizeMult:1.13,initialize:function(n,t){t=t||{};this.text=n;this.__skipDimension=!0;this.setOptions(t);this.__skipDimension=!1;this._initDimensions()},_initDimensions:function(n){if(!this.__skipDimension){n||(n=t.util.createCanvasElement().getContext("2d"),this._setTextStyles(n));this._textLines=this.text.split(this._reNewline);this._clearCache();var i=this.textAlign;this.textAlign="left";this.width=this._getTextWidth(n);this.textAlign=i;this.height=this._getTextHeight(n)}},toString:function(){return"#<fabric.Text ("+this.complexity()+'): { "text": "'+this.text+'", "fontFamily": "'+this.fontFamily+'" }>'},_render:function(n){this.clipTo&&t.util.clipContext(this,n);this._renderTextBackground(n);this._renderText(n);this._renderTextDecoration(n);this.clipTo&&n.restore()},_renderText:function(n){n.save();this._translateForTextAlign(n);this._setOpacity(n);this._setShadow(n);this._setupCompositeOperation(n);this._renderTextFill(n);this._renderTextStroke(n);this._restoreCompositeOperation(n);this._removeShadow(n);n.restore()},_translateForTextAlign:function(n){this.textAlign!=="left"&&this.textAlign!=="justify"&&n.translate(this.textAlign==="center"?this.width/2:this.width,0)},_setTextStyles:function(n){n.textBaseline="alphabetic";this.skipTextAlign||(n.textAlign=this.textAlign);n.font=this._getFontDeclaration()},_getTextHeight:function(){return this._textLines.length*this._getHeightOfLine()},_getTextWidth:function(n){for(var r,t=this._getLineWidth(n,0),i=1,u=this._textLines.length;i<u;i++)r=this._getLineWidth(n,i),r>t&&(t=r);return t},_renderChars:function(n,t,i,r,u){t[n](i,r,u)},_renderTextLine:function(n,t,i,r,u,f){var h,s,e,l;if(u-=this.fontSize*this._fontSizeFraction,this.textAlign!=="justify"){this._renderChars(n,t,i,r,u,f);return}if(h=this._getLineWidth(t,f),s=this.width,s>=h){var o=i.split(/\s+/),a=this._getWidthOfWords(t,i,f),v=s-a,y=o.length-1,p=v/y,c=0;for(e=0,l=o.length;e<l;e++)this._renderChars(n,t,o[e],r+c,u,f),c+=t.measureText(o[e]).width+p}else this._renderChars(n,t,i,r,u,f)},_getWidthOfWords:function(n,t){return n.measureText(t.replace(/\s+/g,"")).width},_getLeftOffset:function(){return-this.width/2},_getTopOffset:function(){return-this.height/2},_renderTextFill:function(n){var i,t,u,r,f;if(this.fill||this._skipFillStrokeCheck){for(i=0,t=0,u=this._textLines.length;t<u;t++)r=this._getHeightOfLine(n,t),f=r/this.lineHeight,this._renderTextLine("fillText",n,this._textLines[t],this._getLeftOffset(),this._getTopOffset()+i+f,t),i+=r;this.shadow&&!this.shadow.affectStroke&&this._removeShadow(n)}},_renderTextStroke:function(n){var i,t,u,r,f;if(this.stroke&&this.strokeWidth!==0||this._skipFillStrokeCheck){for(i=0,n.save(),this.strokeDashArray&&(1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray),e&&n.setLineDash(this.strokeDashArray)),n.beginPath(),t=0,u=this._textLines.length;t<u;t++)r=this._getHeightOfLine(n,t),f=r/this.lineHeight,this._renderTextLine("strokeText",n,this._textLines[t],this._getLeftOffset(),this._getTopOffset()+i+f,t),i+=r;n.closePath();n.restore()}},_getHeightOfLine:function(){return this.fontSize*this._fontSizeMult*this.lineHeight},_renderTextBackground:function(n){this._renderTextBoxBackground(n);this._renderTextLinesBackground(n)},_renderTextBoxBackground:function(n){this.backgroundColor&&(n.save(),n.fillStyle=this.backgroundColor,n.fillRect(this._getLeftOffset(),this._getTopOffset(),this.width,this.height),n.restore())},_renderTextLinesBackground:function(n){var r=0,e=this._getHeightOfLine(),t,u,i,f;if(this.textBackgroundColor){for(n.save(),n.fillStyle=this.textBackgroundColor,t=0,u=this._textLines.length;t<u;t++)this._textLines[t]!==""&&(i=this._getLineWidth(n,t),f=this._getLineLeftOffset(i),n.fillRect(this._getLeftOffset()+f,this._getTopOffset()+r,i,this.fontSize*this._fontSizeMult)),r+=e;n.restore()}},_getLineLeftOffset:function(n){return this.textAlign==="center"?(this.width-n)/2:this.textAlign==="right"?this.width-n:0},_clearCache:function(){this.__lineWidths=[];this.__lineHeights=[];this.__lineOffsets=[]},_shouldClearCache:function(){var t=!1;for(var n in this._dimensionAffectingProps)this["__"+n]!==this[n]&&(this["__"+n]=this[n],t=!0);return t},_getLineWidth:function(n,t){return this.__lineWidths[t]?this.__lineWidths[t]:(this.__lineWidths[t]=n.measureText(this._textLines[t]).width,this.__lineWidths[t])},_renderTextDecoration:function(n){function u(i){for(var e=0,f,s,u=0,o=t._textLines.length;u<o;u++){var h=t._getLineWidth(n,u),c=t._getLineLeftOffset(h),l=t._getHeightOfLine(n,u);for(f=0,s=i.length;f<s;f++)n.fillRect(t._getLeftOffset()+c,e+(t._fontSizeMult-1+i[f])*t.fontSize-r,h,t.fontSize/15);e+=l}}if(this.textDecoration){var r=this.height/2,t=this,i=[];this.textDecoration.indexOf("underline")>-1&&i.push(.85);this.textDecoration.indexOf("line-through")>-1&&i.push(.43);this.textDecoration.indexOf("overline")>-1&&i.push(-.12);i.length>0&&u(i)}},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},render:function(n,t){this.visible&&(n.save(),this._setTextStyles(n),this._shouldClearCache()&&this._initDimensions(n),t||this.transform(n),this._setStrokeStyles(n),this._setFillStyles(n),this.transformMatrix&&n.transform.apply(n,this.transformMatrix),this.group&&this.group.type==="path-group"&&n.translate(this.left,this.top),this._render(n),n.restore())},toObject:function(n){var t=u(this.callSuper("toObject",n),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textAlign:this.textAlign,textBackgroundColor:this.textBackgroundColor});return this.includeDefaultValues||this._removeDefaultValues(t),t},toSVG:function(n){var t=this._createBaseSVGMarkup(),i=this._getSVGLeftTopOffsets(this.ctx),r=this._getSVGTextAndBg(i.textTop,i.textLeft);return this._wrapSVGTextAndBg(t,r),n?n(t.join("")):t.join("")},_getSVGLeftTopOffsets:function(n){var t=this._getHeightOfLine(n,0),i=-this.width/2;return{textLeft:i+(this.group&&this.group.type==="path-group"?this.left:0),textTop:0+(this.group&&this.group.type==="path-group"?-this.top:0),lineTop:t}},_wrapSVGTextAndBg:function(n,t){n.push('\t<g transform="',this.getSvgTransform(),this.getSvgTransformMatrix(),'">\n',t.textBgRects.join(""),"\t\t<text ",this.fontFamily?'font-family="'+this.fontFamily.replace(/"/g,"'")+'" ':"",this.fontSize?'font-size="'+this.fontSize+'" ':"",this.fontStyle?'font-style="'+this.fontStyle+'" ':"",this.fontWeight?'font-weight="'+this.fontWeight+'" ':"",this.textDecoration?'text-decoration="'+this.textDecoration+'" ':"",'style="',this.getSvgStyles(),'" >',t.textSpans.join(""),"<\/text>\n","\t<\/g>\n")},_getSVGTextAndBg:function(n,t){var f=[],r=[],u=0,i,e;for(this._setSVGBg(r),i=0,e=this._textLines.length;i<e;i++)this.textBackgroundColor&&this._setSVGTextLineBg(r,i,t,n,u),this._setSVGTextLineText(i,f,u,t,n,r),u+=this._getHeightOfLine(this.ctx,i);return{textSpans:f,textBgRects:r}},_setSVGTextLineText:function(n,r,u,f,e){var o=this.fontSize*(this._fontSizeMult-this._fontSizeFraction)-e+u-this.height/2;r.push('<tspan x="',i(f+this._getLineLeftOffset(this.__lineWidths[n]),4),'" ','y="',i(o,4),'" ',this._getFillAttributes(this.fill),">",t.util.string.escapeXml(this._textLines[n]),"<\/tspan>")},_setSVGTextLineBg:function(n,t,r,u,f){n.push("\t\t<rect ",this._getFillAttributes(this.textBackgroundColor),' x="',i(r+this._getLineLeftOffset(this.__lineWidths[t]),4),'" y="',i(f-this.height/2,4),'" width="',i(this.__lineWidths[t],4),'" height="',i(this._getHeightOfLine(this.ctx,t)/this.lineHeight,4),'"><\/rect>\n')},_setSVGBg:function(n){this.backgroundColor&&n.push("\t\t<rect ",this._getFillAttributes(this.backgroundColor),' x="',i(-this.width/2,4),'" y="',i(-this.height/2,4),'" width="',i(this.width,4),'" height="',i(this.height,4),'"><\/rect>\n')},_getFillAttributes:function(n){var i=n&&typeof n=="string"?new t.Color(n):"";return!i||!i.getSource()||i.getAlpha()===1?'fill="'+n+'"':'opacity="'+i.getAlpha()+'" fill="'+i.setAlpha(1).toRgb()+'"'},_set:function(n,t){this.callSuper("_set",n,t);n in this._dimensionAffectingProps&&(this._initDimensions(),this.setCoords())},complexity:function(){return 1}});t.Text.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x y dx dy font-family font-style font-weight font-size text-decoration text-anchor".split(" "));t.Text.DEFAULT_SVG_FONT_SIZE=16;t.Text.fromElement=function(n,i){var u;if(!n)return null;u=t.parseAttributes(n,t.Text.ATTRIBUTE_NAMES);i=t.util.object.extend(i?t.util.object.clone(i):{},u);i.top=i.top||0;i.left=i.left||0;"dx"in u&&(i.left+=u.dx);"dy"in u&&(i.top+=u.dy);"fontSize"in i||(i.fontSize=t.Text.DEFAULT_SVG_FONT_SIZE);i.originX||(i.originX="left");var e=n.textContent.replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," "),r=new t.Text(e,i),f=0;return r.originX==="left"&&(f=r.getWidth()/2),r.originX==="right"&&(f=-r.getWidth()/2),r.set({left:r.getLeft()+f,top:r.getTop()-r.getHeight()/2+r.fontSize*(.18+r._fontSizeFraction)}),r};t.Text.fromObject=function(n){return new t.Text(n.text,f(n))};t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){var n=fabric.util.object.clone;fabric.IText=fabric.util.createClass(fabric.Text,fabric.Observable,{type:"i-text",selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:!1,editable:!0,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"#333",cursorDelay:1e3,cursorDuration:600,styles:null,caching:!0,_skipFillStrokeCheck:!1,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:!1,_charWidthsCache:{},initialize:function(n,t){this.styles=t?t.styles||{}:{};this.callSuper("initialize",n,t);this.initBehavior()},_clearCache:function(){this.callSuper("_clearCache");this.__maxFontHeights=[];this.__widthOfSpace=[]},isEmptyStyles:function(){var n,t,i,r;if(!this.styles)return!0;n=this.styles;for(t in n)for(i in n[t])for(r in n[t][i])return!1;return!0},setSelectionStart:function(n){n=Math.max(n,0);this.selectionStart!==n&&(this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this}),this.selectionStart=n);this._updateTextarea()},setSelectionEnd:function(n){n=Math.min(n,this.text.length);this.selectionEnd!==n&&(this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this}),this.selectionEnd=n);this._updateTextarea()},getSelectionStyles:function(n,t){var u,i,r;if(arguments.length===2){for(u=[],i=n;i<t;i++)u.push(this.getSelectionStyles(i));return u}return(r=this.get2DCursorLocation(n),this.styles[r.lineIndex])?this.styles[r.lineIndex][r.charIndex]||{}:{}},setSelectionStyles:function(n){if(this.selectionStart===this.selectionEnd)this._extendStyles(this.selectionStart,n);else for(var t=this.selectionStart;t<this.selectionEnd;t++)this._extendStyles(t,n);return this._clearCache(),this},_extendStyles:function(n,t){var i=this.get2DCursorLocation(n);this.styles[i.lineIndex]||(this.styles[i.lineIndex]={});this.styles[i.lineIndex][i.charIndex]||(this.styles[i.lineIndex][i.charIndex]={});fabric.util.object.extend(this.styles[i.lineIndex][i.charIndex],t)},_render:function(n){this.callSuper("_render",n);this.ctx=n;this.isEditing&&this.renderCursorOrSelection()},renderCursorOrSelection:function(){if(this.active){var i=this.text.split(""),t,n;this.canvas.contextTop?(n=this.canvas.contextTop,n.save(),n.transform.apply(n,this.canvas.viewportTransform),this.transform(n)):(n=this.ctx,n.save());this.selectionStart===this.selectionEnd?(t=this._getCursorBoundaries(i,"cursor"),this.renderCursor(t,n)):(t=this._getCursorBoundaries(i,"selection"),this.renderSelection(i,t,n));n.restore()}},get2DCursorLocation:function(n){typeof n=="undefined"&&(n=this.selectionStart);var i=this.text.slice(0,n),t=i.split(this._reNewline);return{lineIndex:t.length-1,charIndex:t[t.length-1].length}},getCurrentCharStyle:function(n,t){var i=this.styles[n]&&this.styles[n][t===0?0:t-1];return{fontSize:i&&i.fontSize||this.fontSize,fill:i&&i.fill||this.fill,textBackgroundColor:i&&i.textBackgroundColor||this.textBackgroundColor,textDecoration:i&&i.textDecoration||this.textDecoration,fontFamily:i&&i.fontFamily||this.fontFamily,fontWeight:i&&i.fontWeight||this.fontWeight,fontStyle:i&&i.fontStyle||this.fontStyle,stroke:i&&i.stroke||this.stroke,strokeWidth:i&&i.strokeWidth||this.strokeWidth}},getCurrentCharFontSize:function(n,t){return this.styles[n]&&this.styles[n][t===0?0:t-1]&&this.styles[n][t===0?0:t-1].fontSize||this.fontSize},getCurrentCharColor:function(n,t){return this.styles[n]&&this.styles[n][t===0?0:t-1]&&this.styles[n][t===0?0:t-1].fill||this.cursorColor},_getCursorBoundaries:function(n,t){var r=Math.round(this._getLeftOffset()),u=this._getTopOffset(),i=this._getCursorBoundariesOffsets(n,t);return{left:r,top:u,leftOffset:i.left+i.lineLeft,topOffset:i.top}},_getCursorBoundariesOffsets:function(n,t){for(var o=0,i=0,r=0,f=0,e=0,u=0;u<this.selectionStart;u++)n[u]==="\n"?(e=0,f+=this._getHeightOfLine(this.ctx,i),i++,r=0):(e+=this._getWidthOfChar(this.ctx,n[u],i,r),r++),o=this._getCachedLineOffset(i);return t==="cursor"&&(f+=(1-this._fontSizeFraction)*this._getHeightOfLine(this.ctx,i)/this.lineHeight-this.getCurrentCharFontSize(i,r)*(1-this._fontSizeFraction)),{top:f,left:e,lineLeft:o}},_getCachedLineOffset:function(n){var t=this._getLineWidth(this.ctx,n);return this.__lineOffsets[n]||(this.__lineOffsets[n]=this._getLineLeftOffset(t))},renderCursor:function(n,t){var u=this.get2DCursorLocation(),i=u.lineIndex,r=u.charIndex,f=this.getCurrentCharFontSize(i,r),e=i===0&&r===0?this._getCachedLineOffset(i):n.leftOffset;t.fillStyle=this.getCurrentCharColor(i,r);t.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity;t.fillRect(n.left+e,n.top+n.topOffset,this.cursorWidth/this.scaleX,f)},renderSelection:function(n,t,i){var r,u,y,f,p;i.fillStyle=this.selectionColor;var h=this.get2DCursorLocation(this.selectionStart),c=this.get2DCursorLocation(this.selectionEnd),l=h.lineIndex,e=c.lineIndex;for(r=l;r<=e;r++){var a=this._getCachedLineOffset(r)||0,v=this._getHeightOfLine(this.ctx,r),o=0,s=this._textLines[r];if(r===l)for(u=0,y=s.length;u<y;u++)u>=h.charIndex&&(r!==e||u<c.charIndex)&&(o+=this._getWidthOfChar(i,s[u],r,u)),u<h.charIndex&&(a+=this._getWidthOfChar(i,s[u],r,u));else if(r>l&&r<e)o+=this._getLineWidth(i,r)||5;else if(r===e)for(f=0,p=c.charIndex;f<p;f++)o+=this._getWidthOfChar(i,s[f],r,f);i.fillRect(t.left+a,t.top+t.topOffset,o,v);t.topOffset+=v}},_renderChars:function(n,t,i,r,u,f){var e,h,c;if(this.isEmptyStyles())return this._renderCharsFast(n,t,i,r,u);this.skipTextAlign=!0;r-=this.textAlign==="center"?this.width/2:this.textAlign==="right"?this.width:0;var l=this._getHeightOfLine(t,f),v=this._getCachedLineOffset(f),a=i.split(""),o,s="";for(r+=v||0,t.save(),u-=l/this.lineHeight*this._fontSizeFraction,e=0,h=a.length;e<=h;e++)o=o||this.getCurrentCharStyle(f,e),c=this.getCurrentCharStyle(f,e+1),(this._hasStyleChanged(o,c)||e===h)&&(this._renderChar(n,t,f,e-1,s,r,u,l),s="",o=c),s+=a[e];t.restore()},_renderCharsFast:function(n,t,i,r,u){this.skipTextAlign=!1;n==="fillText"&&this.fill&&this.callSuper("_renderChars",n,t,i,r,u);n==="strokeText"&&(this.stroke&&this.strokeWidth>0||this.skipFillStrokeCheck)&&this.callSuper("_renderChars",n,t,i,r,u)},_renderChar:function(n,t,i,r,u,f,e,o){var s,h,c,l=this._fontSizeFraction*o/this.lineHeight,a,v;this.styles&&this.styles[i]&&(s=this.styles[i][r])?(a=s.stroke||this.stroke,v=s.fill||this.fill,t.save(),h=this._applyCharStylesGetWidth(t,u,i,r,s),c=this._getHeightOfChar(t,u,i,r),v&&t.fillText(u,f,e),a&&t.strokeText(u,f,e),this._renderCharDecoration(t,s,f,e,l,h,c),t.restore(),t.translate(h,0)):(n==="strokeText"&&this.stroke&&t[n](u,f,e),n==="fillText"&&this.fill&&t[n](u,f,e),h=this._applyCharStylesGetWidth(t,u,i,r),this._renderCharDecoration(t,null,f,e,l,h,this.fontSize),t.translate(t.measureText(u).width,0))},_hasStyleChanged:function(n,t){return n.fill!==t.fill||n.fontSize!==t.fontSize||n.textBackgroundColor!==t.textBackgroundColor||n.textDecoration!==t.textDecoration||n.fontFamily!==t.fontFamily||n.fontWeight!==t.fontWeight||n.fontStyle!==t.fontStyle||n.stroke!==t.stroke||n.strokeWidth!==t.strokeWidth},_renderCharDecoration:function(n,t,i,r,u,f,e){var o=t?t.textDecoration||this.textDecoration:this.textDecoration;o&&(o.indexOf("underline")>-1&&n.fillRect(i,r+e/10,f,e/15),o.indexOf("line-through")>-1&&n.fillRect(i,r-e*(this._fontSizeFraction+this._fontSizeMult-1)+e/15,f,e/15),o.indexOf("overline")>-1&&n.fillRect(i,r-(this._fontSizeMult-this._fontSizeFraction)*e,f,e/15))},_renderTextLine:function(n,t,i,r,u,f){this.isEmptyStyles()||(u+=this.fontSize*(this._fontSizeFraction+.03));this.callSuper("_renderTextLine",n,t,i,r,u,f)},_renderTextDecoration:function(n){if(this.isEmptyStyles())return this.callSuper("_renderTextDecoration",n)},_renderTextLinesBackground:function(n){var r,t,e,u,o,f,i,s,h;if(this.textBackgroundColor||this.styles){for(n.save(),this.textBackgroundColor&&(n.fillStyle=this.textBackgroundColor),r=0,t=0,e=this._textLines.length;t<e;t++){if(u=this._getHeightOfLine(n,t),this._textLines[t]===""){r+=u;continue}if(o=this._getLineWidth(n,t),f=this._getCachedLineOffset(t),this.textBackgroundColor&&(n.fillStyle=this.textBackgroundColor,n.fillRect(this._getLeftOffset()+f,this._getTopOffset()+r,o,u/this.lineHeight)),this.styles[t])for(i=0,s=this._textLines[t].length;i<s;i++)this.styles[t]&&this.styles[t][i]&&this.styles[t][i].textBackgroundColor&&(h=this._textLines[t][i],n.fillStyle=this.styles[t][i].textBackgroundColor,n.fillRect(this._getLeftOffset()+f+this._getWidthOfCharsAt(n,t,i),this._getTopOffset()+r,this._getWidthOfChar(n,h,t,i)+1,u/this.lineHeight));r+=u}n.restore()}},_getCacheProp:function(n,t){return n+t.fontFamily+t.fontSize+t.fontWeight+t.fontStyle+t.shadow},_applyCharStylesGetWidth:function(t,i,r,u,f){var e=f||this.styles[r]&&this.styles[r][u],o,s;return(e=e?n(e):{},this._applyFontStyles(e),o=this._getCacheProp(i,e),this.isEmptyStyles()&&this._charWidthsCache[o]&&this.caching)?this._charWidthsCache[o]:(typeof e.shadow=="string"&&(e.shadow=new fabric.Shadow(e.shadow)),s=e.fill||this.fill,t.fillStyle=s.toLive?s.toLive(t,this):s,e.stroke&&(t.strokeStyle=e.stroke&&e.stroke.toLive?e.stroke.toLive(t,this):e.stroke),t.lineWidth=e.strokeWidth||this.strokeWidth,t.font=this._getFontDeclaration.call(e),this._setShadow.call(e,t),!this.caching)?t.measureText(i).width:(this._charWidthsCache[o]||(this._charWidthsCache[o]=t.measureText(i).width),this._charWidthsCache[o])},_applyFontStyles:function(n){n.fontFamily||(n.fontFamily=this.fontFamily);n.fontSize||(n.fontSize=this.fontSize);n.fontWeight||(n.fontWeight=this.fontWeight);n.fontStyle||(n.fontStyle=this.fontStyle)},_getStyleDeclaration:function(t,i){return this.styles[t]&&this.styles[t][i]?n(this.styles[t][i]):{}},_getWidthOfChar:function(n,t,i,r){var u,f,e;return this.textAlign==="justify"&&/\s/.test(t)?this._getWidthOfSpace(n,i):(u=this._getStyleDeclaration(i,r),this._applyFontStyles(u),f=this._getCacheProp(t,u),this._charWidthsCache[f]&&this.caching)?this._charWidthsCache[f]:n?(n.save(),e=this._applyCharStylesGetWidth(n,t,i,r),n.restore(),e):void 0},_getHeightOfChar:function(n,t,i,r){return this.styles[i]&&this.styles[i][r]?this.styles[i][r].fontSize||this.fontSize:this.fontSize},_getHeightOfCharAt:function(n,t,i){var r=this._textLines[t][i];return this._getHeightOfChar(n,r,t,i)},_getWidthOfCharsAt:function(n,t,i){for(var u=0,f,r=0;r<i;r++)f=this._textLines[t][r],u+=this._getWidthOfChar(n,f,t,r);return u},_getLineWidth:function(n,t){return this.__lineWidths[t]?this.__lineWidths[t]:(this.__lineWidths[t]=this._getWidthOfCharsAt(n,t,this._textLines[t].length),this.__lineWidths[t])},_getWidthOfSpace:function(n,t){if(this.__widthOfSpace[t])return this.__widthOfSpace[t];var i=this._textLines[t],u=this._getWidthOfWords(n,i,t),f=this.width-u,e=i.length-i.replace(/\s+/g,"").length,r=f/e;return this.__widthOfSpace[t]=r,r},_getWidthOfWords:function(n,t,i){for(var u,f=0,r=0;r<t.length;r++)u=t[r],u.match(/\s/)||(f+=this._getWidthOfChar(n,u,i,r));return f},_getHeightOfLine:function(n,t){var u,i,r,e,f;if(this.__lineHeights[t])return this.__lineHeights[t];for(u=this._textLines[t],i=this._getHeightOfChar(n,u[0],t,0),r=1,e=u.length;r<e;r++)f=this._getHeightOfChar(n,u[r],t,r),f>i&&(i=f);return this.__maxFontHeights[t]=i,this.__lineHeights[t]=i*this.lineHeight*this._fontSizeMult,this.__lineHeights[t]},_getTextHeight:function(n){for(var i=0,t=0,r=this._textLines.length;t<r;t++)i+=this._getHeightOfLine(n,t);return i},_renderTextBoxBackground:function(n){this.backgroundColor&&(n.save(),n.fillStyle=this.backgroundColor,n.fillRect(this._getLeftOffset(),this._getTopOffset(),this.width,this.height),n.restore())},toObject:function(t){return fabric.util.object.extend(this.callSuper("toObject",t),{styles:n(this.styles)})}});fabric.IText.fromObject=function(t){return new fabric.IText(t.text,n(t))}}(),function(){var n=fabric.util.object.clone;fabric.util.object.extend(fabric.IText.prototype,{initBehavior:function(){this.initAddedHandler();this.initRemovedHandler();this.initCursorSelectionHandlers();this.initDoubleClickSimulation()},initSelectedHandler:function(){this.on("selected",function(){var n=this;setTimeout(function(){n.selected=!0},100)})},initAddedHandler:function(){var n=this;this.on("added",function(){this.canvas&&!this.canvas._hasITextHandlers&&(this.canvas._hasITextHandlers=!0,this._initCanvasHandlers());n.canvas&&(n.canvas._iTextInstances=n.canvas._iTextInstances||[],n.canvas._iTextInstances.push(n))})},initRemovedHandler:function(){var n=this;this.on("removed",function(){n.canvas&&(n.canvas._iTextInstances=n.canvas._iTextInstances||[],fabric.util.removeFromArray(n.canvas._iTextInstances,n))})},_initCanvasHandlers:function(){var n=this;this.canvas.on("selection:cleared",function(){fabric.IText.prototype.exitEditingOnOthers(n.canvas)});this.canvas.on("mouse:up",function(){n.canvas._iTextInstances&&n.canvas._iTextInstances.forEach(function(n){n.__isMousedown=!1})});this.canvas.on("object:selected",function(){fabric.IText.prototype.exitEditingOnOthers(n.canvas)})},_tick:function(){this._currentTickState=this._animateCursor(this,1,this.cursorDuration,"_onTickComplete")},_animateCursor:function(n,t,i,r){var u;return u={isAborted:!1,abort:function(){this.isAborted=!0}},n.animate("_currentCursorOpacity",t,{duration:i,onComplete:function(){u.isAborted||n[r]()},onChange:function(){n.canvas&&(n.canvas.clearContext(n.canvas.contextTop||n.ctx),n.renderCursorOrSelection())},abort:function(){return u.isAborted}}),u},_onTickComplete:function(){var n=this;this._cursorTimeout1&&clearTimeout(this._cursorTimeout1);this._cursorTimeout1=setTimeout(function(){n._currentTickCompleteState=n._animateCursor(n,0,this.cursorDuration/2,"_tick")},100)},initDelayedCursor:function(n){var t=this,i=n?0:this.cursorDelay;this._currentTickState&&this._currentTickState.abort();this._currentTickCompleteState&&this._currentTickCompleteState.abort();clearTimeout(this._cursorTimeout1);this._currentCursorOpacity=1;this.canvas&&(this.canvas.clearContext(this.canvas.contextTop||this.ctx),this.renderCursorOrSelection());this._cursorTimeout2&&clearTimeout(this._cursorTimeout2);this._cursorTimeout2=setTimeout(function(){t._tick()},i)},abortCursorAnimation:function(){this._currentTickState&&this._currentTickState.abort();this._currentTickCompleteState&&this._currentTickCompleteState.abort();clearTimeout(this._cursorTimeout1);clearTimeout(this._cursorTimeout2);this._currentCursorOpacity=0;this.canvas&&this.canvas.clearContext(this.canvas.contextTop||this.ctx)},selectAll:function(){this.setSelectionStart(0);this.setSelectionEnd(this.text.length)},getSelectedText:function(){return this.text.slice(this.selectionStart,this.selectionEnd)},findWordBoundaryLeft:function(n){var i=0,t=n-1;if(this._reSpace.test(this.text.charAt(t)))while(this._reSpace.test(this.text.charAt(t)))i++,t--;while(/\S/.test(this.text.charAt(t))&&t>-1)i++,t--;return n-i},findWordBoundaryRight:function(n){var i=0,t=n;if(this._reSpace.test(this.text.charAt(t)))while(this._reSpace.test(this.text.charAt(t)))i++,t++;while(/\S/.test(this.text.charAt(t))&&t<this.text.length)i++,t++;return n+i},findLineBoundaryLeft:function(n){for(var i=0,t=n-1;!/\n/.test(this.text.charAt(t))&&t>-1;)i++,t--;return n-i},findLineBoundaryRight:function(n){for(var i=0,t=n;!/\n/.test(this.text.charAt(t))&&t<this.text.length;)i++,t++;return n+i},getNumNewLinesInSelectedText:function(){for(var r=this.getSelectedText(),t=0,n=0,i=r.split(""),u=i.length;n<u;n++)i[n]==="\n"&&t++;return t},searchWordBoundary:function(n,t){for(var i=this._reSpace.test(this.text.charAt(n))?n-1:n,r=this.text.charAt(i),u=/[ \n\.,;!\?\-]/;!u.test(r)&&i>0&&i<this.text.length;)i+=t,r=this.text.charAt(i);return u.test(r)&&r!=="\n"&&(i+=t===1?0:1),i},selectWord:function(n){var t=this.searchWordBoundary(n,-1),i=this.searchWordBoundary(n,1);this.setSelectionStart(t);this.setSelectionEnd(i)},selectLine:function(n){var t=this.findLineBoundaryLeft(n),i=this.findLineBoundaryRight(n);this.setSelectionStart(t);this.setSelectionEnd(i)},enterEditing:function(){if(!this.isEditing&&this.editable)return(this.canvas&&this.exitEditingOnOthers(this.canvas),this.isEditing=!0,this.initHiddenTextarea(),this.hiddenTextarea.focus(),this._updateTextarea(),this._saveEditingProps(),this._setEditingProps(),this._tick(),this.fire("editing:entered"),!this.canvas)?this:(this.canvas.renderAll(),this.canvas.fire("text:editing:entered",{target:this}),this.initMouseMoveHandler(),this)},exitEditingOnOthers:function(n){n._iTextInstances&&n._iTextInstances.forEach(function(n){n.selected=!1;n.isEditing&&n.exitEditing()})},initMouseMoveHandler:function(){var n=this;this.canvas.on("mouse:move",function(t){if(n.__isMousedown&&n.isEditing){var i=n.getSelectionStartFromPointer(t.e);i>=n.__selectionStartOnMouseDown?(n.setSelectionStart(n.__selectionStartOnMouseDown),n.setSelectionEnd(i)):(n.setSelectionStart(i),n.setSelectionEnd(n.__selectionStartOnMouseDown))}})},_setEditingProps:function(){this.hoverCursor="text";this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text");this.borderColor=this.editingBorderColor;this.hasControls=this.selectable=!1;this.lockMovementX=this.lockMovementY=!0},_updateTextarea:function(){this.hiddenTextarea&&(this.hiddenTextarea.value=this.text,this.hiddenTextarea.selectionStart=this.selectionStart,this.hiddenTextarea.selectionEnd=this.selectionEnd)},_saveEditingProps:function(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}},_restoreEditingProps:function(){this._savedProps&&(this.hoverCursor=this._savedProps.overCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor))},exitEditing:function(){return this.selected=!1,this.isEditing=!1,this.selectable=!0,this.selectionEnd=this.selectionStart,this.hiddenTextarea&&this.canvas&&this.hiddenTextarea.parentNode.removeChild(this.hiddenTextarea),this.hiddenTextarea=null,this.abortCursorAnimation(),this._restoreEditingProps(),this._currentCursorOpacity=0,this.fire("editing:exited"),this.canvas&&this.canvas.fire("text:editing:exited",{target:this}),this},_removeExtraneousStyles:function(){for(var n in this.styles)this._textLines[n]||delete this.styles[n]},_removeCharsFromTo:function(n,t){for(var i=t,u,f,r;i!==n;)u=this.get2DCursorLocation(i).charIndex,i--,f=this.get2DCursorLocation(i).charIndex,r=f>u,r?this.removeStyleObject(r,i+1):this.removeStyleObject(this.get2DCursorLocation(i).charIndex===0,i);this.text=this.text.slice(0,n)+this.text.slice(t);this._clearCache()},insertChars:function(n,t){var i=this.text.slice(this.selectionStart,this.selectionStart+1)==="\n";this.text=this.text.slice(0,this.selectionStart)+n+this.text.slice(this.selectionEnd);this.selectionStart===this.selectionEnd&&this.insertStyleObjects(n,i,t);this.setSelectionStart(this.selectionStart+n.length);this.setSelectionEnd(this.selectionStart);this._clearCache();this.canvas&&this.canvas.renderAll();this.setCoords();this.fire("changed");this.canvas&&this.canvas.fire("text:changed",{target:this})},insertNewlineStyleObject:function(t,i,r){var e,u,f;if(this.shiftLineStyles(t,1),this.styles[t+1]||(this.styles[t+1]={}),e=this.styles[t][i-1],u={},r)u[0]=n(e),this.styles[t+1]=u;else{for(f in this.styles[t])parseInt(f,10)>=i&&(u[parseInt(f,10)-i]=this.styles[t][f],delete this.styles[t][f]);this.styles[t+1]=u}this._clearCache()},insertCharStyleObject:function(t,i,r){var f=this.styles[t],e=n(f),o,u;i!==0||r||(i=1);for(o in e)u=parseInt(o,10),u>=i&&(f[u+1]=e[u]);this.styles[t][i]=r||n(f[i-1]);this._clearCache()},insertStyleObjects:function(n,t,i){var u=this.get2DCursorLocation(),r=u.lineIndex,f=u.charIndex;this.styles[r]||(this.styles[r]={});n==="\n"?this.insertNewlineStyleObject(r,f,t):i?this._insertStyles(this.copiedStyles):this.insertCharStyleObject(r,f)},_insertStyles:function(n){for(var t=0,i=n.length;t<i;t++){var r=this.get2DCursorLocation(this.selectionStart+t),u=r.lineIndex,f=r.charIndex;this.insertCharStyleObject(u,f,n[t])}},shiftLineStyles:function(t,i){var f=n(this.styles),u,r;for(u in this.styles)r=parseInt(u,10),r>t&&(this.styles[r+i]=f[r])},removeStyleObject:function(t,i){var h=this.get2DCursorLocation(i),r=h.lineIndex,e=h.charIndex,o,c,u,l,s,a,f;if(t){o=this._textLines[r-1];c=o?o.length:0;this.styles[r-1]||(this.styles[r-1]={});for(e in this.styles[r])this.styles[r-1][parseInt(e,10)+c]=this.styles[r][e];this.shiftLineStyles(r,-1)}else{u=this.styles[r];u&&(l=this.selectionStart===this.selectionEnd?-1:0,delete u[e+l]);s=n(u);for(a in s)f=parseInt(a,10),f>=e&&f!==0&&(u[f-1]=s[f],delete u[f])}},insertNewline:function(){this.insertChars("\n")}})}();fabric.util.object.extend(fabric.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date;this.__lastLastClickTime=+new Date;this.__lastPointer={};this.on("mousedown",this.onMouseDown.bind(this))},onMouseDown:function(n){this.__newClickTime=+new Date;var t=this.canvas.getPointer(n.e);this.isTripleClick(t)?(this.fire("tripleclick",n),this._stopEvent(n.e)):this.isDoubleClick(t)&&(this.fire("dblclick",n),this._stopEvent(n.e));this.__lastLastClickTime=this.__lastClickTime;this.__lastClickTime=this.__newClickTime;this.__lastPointer=t;this.__lastIsEditing=this.isEditing;this.__lastSelected=this.selected},isDoubleClick:function(n){return this.__newClickTime-this.__lastClickTime<500&&this.__lastPointer.x===n.x&&this.__lastPointer.y===n.y&&this.__lastIsEditing},isTripleClick:function(n){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===n.x&&this.__lastPointer.y===n.y},_stopEvent:function(n){n.preventDefault&&n.preventDefault();n.stopPropagation&&n.stopPropagation()},initCursorSelectionHandlers:function(){this.initSelectedHandler();this.initMousedownHandler();this.initMouseupHandler();this.initClicks()},initClicks:function(){this.on("dblclick",function(n){this.selectWord(this.getSelectionStartFromPointer(n.e))});this.on("tripleclick",function(n){this.selectLine(this.getSelectionStartFromPointer(n.e))})},initMousedownHandler:function(){this.on("mousedown",function(n){var t=this.canvas.getPointer(n.e);this.__mousedownX=t.x;this.__mousedownY=t.y;this.__isMousedown=!0;this.hiddenTextarea&&this.canvas&&this.canvas.wrapperEl.appendChild(this.hiddenTextarea);this.selected&&this.setCursorByClick(n.e);this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.initDelayedCursor(!0))})},_isObjectMoved:function(n){var t=this.canvas.getPointer(n);return this.__mousedownX!==t.x||this.__mousedownY!==t.y},initMouseupHandler:function(){this.on("mouseup",function(n){(this.__isMousedown=!1,this._isObjectMoved(n.e))||(this.__lastSelected&&(this.enterEditing(),this.initDelayedCursor(!0)),this.selected=!0)})},setCursorByClick:function(n){var t=this.getSelectionStartFromPointer(n);n.shiftKey?t<this.selectionStart?(this.setSelectionEnd(this.selectionStart),this.setSelectionStart(t)):this.setSelectionEnd(t):(this.setSelectionStart(t),this.setSelectionEnd(t))},_getLocalRotatedPointer:function(n){var t=this.canvas.getPointer(n),i=new fabric.Point(t.x,t.y),r=new fabric.Point(this.left,this.top),u=fabric.util.rotatePoint(i,r,fabric.util.degreesToRadians(-this.angle));return this.getLocalPointer(n,u)},getSelectionStartFromPointer:function(n){for(var c,l,r,f,a,u=this._getLocalRotatedPointer(n),o=0,i=0,s=0,h=0,v,e,t=0,y=this._textLines.length;t<y;t++){for(e=this._textLines[t].split(""),s+=this._getHeightOfLine(this.ctx,t)*this.scaleY,c=this._getLineWidth(this.ctx,t),l=this._getLineLeftOffset(c),i=l*this.scaleX,this.flipX&&(this._textLines[t]=e.reverse().join("")),r=0,f=e.length;r<f;r++){if(a=e[r],o=i,i+=this._getWidthOfChar(this.ctx,a,t,this.flipX?f-r:r)*this.scaleX,s<=u.y||i<=u.x){h++;continue}return this._getNewSelectionStartFromOffset(u,o,i,h+t,f)}if(u.y<s)return this._getNewSelectionStartFromOffset(u,o,i,h+t,f)}if(typeof v=="undefined")return this.text.length},_getNewSelectionStartFromOffset:function(n,t,i,r,u){var e=n.x-t,o=i-n.x,s=o>e?0:1,f=r+s;return this.flipX&&(f=u-f),f>this.text.length&&(f=this.text.length),f}});fabric.util.object.extend(fabric.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=fabric.document.createElement("textarea");this.hiddenTextarea.setAttribute("autocapitalize","off");this.hiddenTextarea.style.cssText="position: fixed; bottom: 20px; left: 0px; opacity: 0; width: 0px; height: 0px; z-index: -999;";fabric.document.body.appendChild(this.hiddenTextarea);fabric.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this));fabric.util.addListener(this.hiddenTextarea,"keypress",this.onKeyPress.bind(this));fabric.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this));fabric.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this));!this._clickHandlerInitialized&&this.canvas&&(fabric.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},_keysMap:{8:"removeChars",9:"exitEditing",27:"exitEditing",13:"insertNewline",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown",46:"forwardDelete"},_ctrlKeysMap:{65:"selectAll",88:"cut"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(n){if(this.isEditing){if(n.keyCode in this._keysMap)this[this._keysMap[n.keyCode]](n);else if(n.keyCode in this._ctrlKeysMap&&(n.ctrlKey||n.metaKey))this[this._ctrlKeysMap[n.keyCode]](n);else return;n.stopImmediatePropagation();n.preventDefault();this.canvas&&this.canvas.renderAll()}},forwardDelete:function(n){this.selectionStart===this.selectionEnd&&this.moveCursorRight(n);this.removeChars(n)},copy:function(n){var t=this.getSelectedText(),i=this._getClipboardData(n);i&&i.setData("text",t);this.copiedText=t;this.copiedStyles=this.getSelectionStyles(this.selectionStart,this.selectionEnd)},paste:function(n){var t=null,i=this._getClipboardData(n);t=i?i.getData("text"):this.copiedText;t&&this.insertChars(t,!0)},cut:function(n){this.selectionStart!==this.selectionEnd&&(this.copy(),this.removeChars(n))},_getClipboardData:function(n){return n&&(n.clipboardData||fabric.window.clipboardData)},onKeyPress:function(n){!this.isEditing||n.metaKey||n.ctrlKey||(n.which!==0&&this.insertChars(String.fromCharCode(n.which)),n.stopPropagation())},getDownCursorOffset:function(n,t){var r=t?this.selectionEnd:this.selectionStart,e,o,s=this.text.slice(0,r),h=this.text.slice(r),c=s.slice(s.lastIndexOf("\n")+1),p=h.match(/(.*)\n?/)[1],w=(h.match(/.*\n(.*)\n?/)||{})[1]||"",u=this.get2DCursorLocation(r),l,f,a,i,v,y;if(u.lineIndex===this._textLines.length-1||n.metaKey||n.keyCode===34)return this.text.length-r;for(l=this._getLineWidth(this.ctx,u.lineIndex),o=this._getLineLeftOffset(l),f=o,a=u.lineIndex,i=0,v=c.length;i<v;i++)e=c[i],f+=this._getWidthOfChar(this.ctx,e,a,i);return y=this._getIndexOnNextLine(u,w,f),p.length+1+y},_getIndexOnNextLine:function(n,t,i){for(var h,e,o=n.lineIndex+1,c=this._getLineWidth(this.ctx,o),l=this._getLineLeftOffset(c),u=l,f=0,s,r=0,a=t.length;r<a;r++)if(h=t[r],e=this._getWidthOfChar(this.ctx,h,o,r),u+=e,u>i){s=!0;var v=u-e,y=u,p=Math.abs(v-i),w=Math.abs(y-i);f=w<p?r+1:r;break}return s||(f=t.length),f},moveCursorDown:function(n){this.abortCursorAnimation();this._currentCursorOpacity=1;var t=this.getDownCursorOffset(n,this._selectionDirection==="right");n.shiftKey?this.moveCursorDownWithShift(t):this.moveCursorDownWithoutShift(t);this.initDelayedCursor()},moveCursorDownWithoutShift:function(n){this._selectionDirection="right";this.setSelectionStart(this.selectionStart+n);this.setSelectionEnd(this.selectionStart)},swapSelectionPoints:function(){var n=this.selectionEnd;this.setSelectionEnd(this.selectionStart);this.setSelectionStart(n)},moveCursorDownWithShift:function(n){this.selectionEnd===this.selectionStart&&(this._selectionDirection="right");this._selectionDirection==="right"?this.setSelectionEnd(this.selectionEnd+n):this.setSelectionStart(this.selectionStart+n);this.selectionEnd<this.selectionStart&&this._selectionDirection==="left"&&(this.swapSelectionPoints(),this._selectionDirection="right");this.selectionEnd>this.text.length&&this.setSelectionEnd(this.text.length)},getUpCursorOffset:function(n,t){var u=t?this.selectionEnd:this.selectionStart,r=this.get2DCursorLocation(u),i,c,l;if(r.lineIndex===0||n.metaKey||n.keyCode===33)return u;var f=this.text.slice(0,u),e=f.slice(f.lastIndexOf("\n")+1),o=(f.match(/\n?(.*)\n.*$/)||{})[1]||"",s,a=this._getLineWidth(this.ctx,r.lineIndex),v=this._getLineLeftOffset(a),h=v,y=r.lineIndex;for(i=0,c=e.length;i<c;i++)s=e[i],h+=this._getWidthOfChar(this.ctx,s,y,i);return l=this._getIndexOnPrevLine(r,o,h),o.length-l+e.length},_getIndexOnPrevLine:function(n,t,i){for(var h,e,o=n.lineIndex-1,c=this._getLineWidth(this.ctx,o),l=this._getLineLeftOffset(c),u=l,f=0,s,r=0,a=t.length;r<a;r++)if(h=t[r],e=this._getWidthOfChar(this.ctx,h,o,r),u+=e,u>i){s=!0;var v=u-e,y=u,p=Math.abs(v-i),w=Math.abs(y-i);f=w<p?r:r-1;break}return s||(f=t.length-1),f},moveCursorUp:function(n){this.abortCursorAnimation();this._currentCursorOpacity=1;var t=this.getUpCursorOffset(n,this._selectionDirection==="right");n.shiftKey?this.moveCursorUpWithShift(t):this.moveCursorUpWithoutShift(t);this.initDelayedCursor()},moveCursorUpWithShift:function(n){this.selectionEnd===this.selectionStart&&(this._selectionDirection="left");this._selectionDirection==="right"?this.setSelectionEnd(this.selectionEnd-n):this.setSelectionStart(this.selectionStart-n);this.selectionEnd<this.selectionStart&&this._selectionDirection==="right"&&(this.swapSelectionPoints(),this._selectionDirection="left")},moveCursorUpWithoutShift:function(n){this.selectionStart===this.selectionEnd&&this.setSelectionStart(this.selectionStart-n);this.setSelectionEnd(this.selectionStart);this._selectionDirection="left"},moveCursorLeft:function(n){(this.selectionStart!==0||this.selectionEnd!==0)&&(this.abortCursorAnimation(),this._currentCursorOpacity=1,n.shiftKey?this.moveCursorLeftWithShift(n):this.moveCursorLeftWithoutShift(n),this.initDelayedCursor())},_move:function(n,t,i){var r=t==="selectionStart"?"setSelectionStart":"setSelectionEnd";n.altKey?this[r](this["findWordBoundary"+i](this[t])):n.metaKey||n.keyCode===35||n.keyCode===36?this[r](this["findLineBoundary"+i](this[t])):this[r](this[t]+(i==="Left"?-1:1))},_moveLeft:function(n,t){this._move(n,t,"Left")},_moveRight:function(n,t){this._move(n,t,"Right")},moveCursorLeftWithoutShift:function(n){this._selectionDirection="left";this.selectionEnd===this.selectionStart&&this._moveLeft(n,"selectionStart");this.setSelectionEnd(this.selectionStart)},moveCursorLeftWithShift:function(n){this._selectionDirection==="right"&&this.selectionStart!==this.selectionEnd?this._moveLeft(n,"selectionEnd"):(this._selectionDirection="left",this._moveLeft(n,"selectionStart"),this.text.charAt(this.selectionStart)==="\n"&&this.setSelectionStart(this.selectionStart-1))},moveCursorRight:function(n){this.selectionStart>=this.text.length&&this.selectionEnd>=this.text.length||(this.abortCursorAnimation(),this._currentCursorOpacity=1,n.shiftKey?this.moveCursorRightWithShift(n):this.moveCursorRightWithoutShift(n),this.initDelayedCursor())},moveCursorRightWithShift:function(n){this._selectionDirection==="left"&&this.selectionStart!==this.selectionEnd?this._moveRight(n,"selectionStart"):(this._selectionDirection="right",this._moveRight(n,"selectionEnd"),this.text.charAt(this.selectionEnd-1)==="\n"&&this.setSelectionEnd(this.selectionEnd+1))},moveCursorRightWithoutShift:function(n){this._selectionDirection="right";this.selectionStart===this.selectionEnd?(this._moveRight(n,"selectionStart"),this.setSelectionEnd(this.selectionStart)):(this.setSelectionEnd(this.selectionEnd+this.getNumNewLinesInSelectedText()),this.setSelectionStart(this.selectionEnd))},removeChars:function(n){this.selectionStart===this.selectionEnd?this._removeCharsNearCursor(n):this._removeCharsFromTo(this.selectionStart,this.selectionEnd);this.setSelectionEnd(this.selectionStart);this._removeExtraneousStyles();this._clearCache();this.canvas&&this.canvas.renderAll();this.setCoords();this.fire("changed");this.canvas&&this.canvas.fire("text:changed",{target:this})},_removeCharsNearCursor:function(n){var t,i,r;this.selectionStart!==0&&(n.metaKey?(t=this.findLineBoundaryLeft(this.selectionStart),this._removeCharsFromTo(t,this.selectionStart),this.setSelectionStart(t)):n.altKey?(i=this.findWordBoundaryLeft(this.selectionStart),this._removeCharsFromTo(i,this.selectionStart),this.setSelectionStart(i)):(r=this.text.slice(this.selectionStart-1,this.selectionStart)==="\n",this.removeStyleObject(r),this.setSelectionStart(this.selectionStart-1),this.text=this.text.slice(0,this.selectionStart)+this.text.slice(this.selectionStart+1)))}});fabric.util.object.extend(fabric.IText.prototype,{_setSVGTextLineText:function(n,t,i,r,u,f){this.styles[n]?this._setSVGTextLineChars(n,t,i,r,f):this.callSuper("_setSVGTextLineText",n,t,i,r,u)},_setSVGTextLineChars:function(n,t,i,r,u){for(var e,c,o=this._textLines[n].split(""),s=0,l=this._getSVGLineLeftOffset(n)-this.width/2,h=this._getSVGLineTopOffset(n),a=this._getHeightOfLine(this.ctx,n),f=0,v=o.length;f<v;f++)e=this.styles[n][f]||{},t.push(this._createTextCharSpan(o[f],e,l,h.lineTop+h.offset,s)),c=this._getWidthOfChar(this.ctx,o[f],n,f),e.textBackgroundColor&&u.push(this._createTextCharBg(e,l,h.lineTop,a,c,s)),s+=c},_getSVGLineLeftOffset:function(n){return fabric.util.toFixed(this._getLineLeftOffset(this.__lineWidths[n]),2)},_getSVGLineTopOffset:function(n){for(var i=0,r=0,t=0;t<n;t++)i+=this._getHeightOfLine(this.ctx,t);return r=this._getHeightOfLine(this.ctx,t),{lineTop:i,offset:(this._fontSizeMult-this._fontSizeFraction)*r/(this.lineHeight*this._fontSizeMult)}},_createTextCharBg:function(n,t,i,r,u,f){return['<rect fill="',n.textBackgroundColor,'" x="',t+f,'" y="',i-this.height/2,'" width="',u,'" height="',r/this.lineHeight,'"><\/rect>'].join("")},_createTextCharSpan:function(n,t,i,r,u){var f=this.getSvgStyles.call(fabric.util.object.extend({visible:!0,fill:this.fill,stroke:this.stroke,type:"text"},t));return['<tspan x="',i+u,'" y="',r-this.height/2,'" ',t.fontFamily?'font-family="'+t.fontFamily.replace(/"/g,"'")+'" ':"",t.fontSize?'font-size="'+t.fontSize+'" ':"",t.fontStyle?'font-style="'+t.fontStyle+'" ':"",t.fontWeight?'font-weight="'+t.fontWeight+'" ':"",t.textDecoration?'text-decoration="'+t.textDecoration+'" ':"",'style="',f,'">',fabric.util.string.escapeXml(n),"<\/tspan>"].join("")}}),function(){function n(n,t,i){var r=e.parse(n),f,u;r.port||(r.port=r.protocol.indexOf("https:")===0?443:80);f=r.protocol.indexOf("https:")===0?s:o;u=f.request({hostname:r.hostname,port:r.port,path:r.path,method:"GET"},function(n){var r="";t&&n.setEncoding(t);n.on("end",function(){i(r)});n.on("data",function(t){n.statusCode===200&&(r+=t)})});u.on("error",function(n){n.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(n.message)});u.end()}function i(n,t){var i=require("fs");i.readFile(n,function(n,i){if(n){fabric.log(n);throw n;}else t(i)})}var r,u;if(typeof document=="undefined"||typeof window=="undefined"){var f=require("xmldom").DOMParser,e=require("url"),o=require("http"),s=require("https"),t=require("canvas"),h=require("canvas").Image;fabric.util.loadImage=function(t,r,u){function e(n){f.src=new Buffer(n,"binary");f._src=t;r&&r.call(u,f)}var f=new h;t&&(t instanceof Buffer||t.indexOf("data")===0)?(f.src=f._src=t,r&&r.call(u,f)):t&&t.indexOf("http")!==0?i(t,e):t?n(t,"binary",e):r&&r.call(u,t)};fabric.loadSVGFromURL=function(t,r,u){t=t.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim();t.indexOf("http")!==0?i(t,function(n){fabric.loadSVGFromString(n.toString(),r,u)}):n(t,"",function(n){fabric.loadSVGFromString(n,r,u)})};fabric.loadSVGFromString=function(n,t,i){var r=(new f).parseFromString(n);fabric.parseSVGDocument(r.documentElement,function(n,i){t&&t(n,i)},i)};fabric.util.getScript=function(t,i){n(t,"",function(body){eval(body);i&&i()})};fabric.Image.fromObject=function(n,t){fabric.util.loadImage(n.src,function(i){var r=new fabric.Image(i);r._initConfig(n);r._initFilters(n,function(n){r.filters=n||[];t&&t(r)})})};fabric.createCanvasForNode=function(n,i,r,u){var f,e,s,o;return u=u||r,f=fabric.document.createElement("canvas"),e=new t(n||600,i||600,u),f.style={},f.width=e.width,f.height=e.height,s=fabric.Canvas||fabric.StaticCanvas,o=new s(f,r),o.contextContainer=e.getContext("2d"),o.nodeCanvas=e,o.Font=t.Font,o};fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()};fabric.StaticCanvas.prototype.createJPEGStream=function(n){return this.nodeCanvas.createJPEGStream(n)};r=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(n,t){return r.call(this,n,t),this.nodeCanvas.width=n,this};fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);u=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(n,t){return u.call(this,n,t),this.nodeCanvas.height=n,this};fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}}();saveAs=saveAs||function(n){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var s=n.document,r=function(){return n.URL||n.webkitURL||n},i=s.createElementNS("http://www.w3.org/1999/xhtml","a"),v="download"in i,y=function(t){var i=s.createEvent("MouseEvents");i.initMouseEvent("click",!0,!1,n,0,0,0,0,0,!1,!1,!1,!1,0,null);t.dispatchEvent(i)},u=n.webkitRequestFileSystem,h=n.requestFileSystem||u||n.mozRequestFileSystem,p=function(t){(n.setImmediate||n.setTimeout)(function(){throw t;},0)},f="application/octet-stream",c=0,w=500,e=function(t){var i=function(){"string"==typeof t?r().revokeObjectURL(t):t.remove()};n.chrome?i():setTimeout(i,w)},o=function(n,t,i){var r,u;for(t=[].concat(t),r=t.length;r--;)if(u=n["on"+t[r]],"function"==typeof u)try{u.call(n,i||n)}catch(f){p(f)}},l=function(n){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(n.type)?new Blob(["﻿",n],{type:n.type}):n},a=function(t,s){t=l(t);var p,k,g,a=this,d=t.type,nt=!1,tt=function(){o(a,"writestart progress write writeend".split(" "))},w=function(){if((nt||!p)&&(p=r().createObjectURL(t)),k)k.location.href=p;else{var i=n.open(p,"_blank");void 0==i&&"undefined"!=typeof safari&&(n.location.href=p)}a.readyState=a.DONE;tt();e(p)},b=function(n){return function(){if(a.readyState!==a.DONE)return n.apply(this,arguments)}},it={create:!0,exclusive:!1};return a.readyState=a.INIT,s||(s="download"),v?(p=r().createObjectURL(t),i.href=p,i.download=s,y(i),a.readyState=a.DONE,tt(),void e(p)):(n.chrome&&d&&d!==f&&(g=t.slice||t.webkitSlice,t=g.call(t,0,t.size,f),nt=!0),u&&"download"!==s&&(s+=".download"),(d===f||u)&&(k=n),h?(c+=t.size,void h(n.TEMPORARY,c,b(function(n){n.root.getDirectory("saved",it,b(function(n){var i=function(){n.getFile(s,it,b(function(n){n.createWriter(b(function(i){i.onwriteend=function(t){k.location.href=n.toURL();a.readyState=a.DONE;o(a,"writeend",t);e(n)};i.onerror=function(){var n=i.error;n.code!==n.ABORT_ERR&&w()};"writestart progress write abort".split(" ").forEach(function(n){i["on"+n]=a["on"+n]});i.write(t);a.abort=function(){i.abort();a.readyState=a.DONE};a.readyState=a.WRITING}),w)}),w)};n.getFile(s,{create:!1},b(function(n){n.remove();i()}),b(function(n){n.code===n.NOT_FOUND_ERR?i():w()}))}),w)}),w)):void w())},t=a.prototype,b=function(n,t){return new a(n,t)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(n,t){return navigator.msSaveOrOpenBlob(l(n),t)}:(t.abort=function(){var n=this;n.readyState=n.DONE;o(n,"abort")},t.readyState=t.INIT=0,t.WRITING=1,t.DONE=2,t.error=t.onwritestart=t.onprogress=t.onwrite=t.onabort=t.onerror=t.onwriteend=null,b)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs}),function(){var n=window.AmCharts;n.AmMap=n.Class({inherits:n.AmChart,construct:function(t){this.cname="AmMap";this.type="map";this.theme=t;this.svgNotSupported="This browser doesn't support SVG. Use Chrome, Firefox, Internet Explorer 9 or later.";this.createEvents("rollOverMapObject","rollOutMapObject","clickMapObject","mouseDownMapObject","selectedObjectChanged","homeButtonClicked","zoomCompleted","dragCompleted","positionChanged","writeDevInfo","click");this.zoomDuration=1;this.zoomControl=new n.ZoomControl(t);this.fitMapToContainer=!0;this.mouseWheelZoomEnabled=this.backgroundZoomsToTop=!1;this.allowClickOnSelectedObject=this.useHandCursorOnClickableOjects=this.showBalloonOnSelectedObject=!0;this.showObjectsAfterZoom=this.wheelBusy=!1;this.zoomOnDoubleClick=this.useObjectColorForBalloon=!0;this.allowMultipleDescriptionWindows=!1;this.dragMap=this.centerMap=this.linesAboveImages=!0;this.colorSteps=5;this.showAreasInList=!0;this.showLinesInList=this.showImagesInList=!1;this.areasProcessor=new n.AreasProcessor(this);this.areasSettings=new n.AreasSettings(t);this.imagesProcessor=new n.ImagesProcessor(this);this.imagesSettings=new n.ImagesSettings(t);this.linesProcessor=new n.LinesProcessor(this);this.linesSettings=new n.LinesSettings(t);this.initialTouchZoom=1;this.showDescriptionOnHover=!1;n.AmMap.base.construct.call(this,t);this.creditsPosition="bottom-left";this.product="ammap";this.areasClasses={};n.applyTheme(this,t,this.cname)},initChart:function(){var t,i;this.zoomInstantly=!0;t=this.container;this.panRequired=!0;this.sizeChanged&&n.hasSVG&&this.chartCreated?(this.freeLabelsSet&&this.freeLabelsSet.remove(),this.freeLabelsSet=t.set(),this.container.setSize(this.realWidth,this.realHeight),this.resizeMap(),this.drawBackground(),this.redrawLabels(),this.drawTitles(),this.processObjects(),this.rescaleObjects(),this.zoomControl.init(this,t),this.drawBg(),i=this.smallMap,i&&i.init(this,t),(i=this.valueLegend)&&i.init(this,t),this.sizeChanged=!1,this.zoomToLongLat(this.zLevelTemp,this.zLongTemp,this.zLatTemp,!0),this.previousWidth=this.realWidth,this.previousHeight=this.realHeight,this.updateSmallMap(),this.linkSet.toFront(),this.zoomControl.update&&this.zoomControl.update()):(n.AmMap.base.initChart.call(this),n.hasSVG)?(this.dataChanged&&(this.parseData(),this.dispatchDataUpdated=!0,this.dataChanged=!1,t=this.legend)&&(t.position="absolute",t.invalidateSize()),this.createDescriptionsDiv(),this.svgAreas=[],this.svgAreasById={},this.drawChart()):(this.chartDiv.style.textAlign="",this.chartDiv.setAttribute("class","ammapAlert"),this.chartDiv.innerHTML=this.svgNotSupported,this.fire("failed",{type:"failed",chart:this}))},storeTemp:function(){var n=this.zoomLongitude();isNaN(n)||(this.zLongTemp=n);n=this.zoomLatitude();isNaN(n)||(this.zLatTemp=n);n=this.zoomLevel();isNaN(n)||(this.zLevelTemp=n)},invalidateSize:function(){this.storeTemp();n.AmMap.base.invalidateSize.call(this)},validateSize:function(){n.hasSVG&&0<this.realWidth&&0<this.realHeight&&this.storeTemp();n.AmMap.base.validateSize.call(this)},handleWheelReal:function(t){if(!this.wheelBusy){this.stopAnimation();var r=this.zoomLevel(),u=this.zoomControl,i=u.zoomFactor;this.wheelBusy=!0;t=n.fitToBounds(0<t?r*i:r/i,u.minZoomLevel,u.maxZoomLevel);i=this.mouseX/this.mapWidth;u=this.mouseY/this.mapHeight;i=(this.zoomX()-i)*(t/r)+i;r=(this.zoomY()-u)*(t/r)+u;this.zoomTo(t,i,r)}},addLegend:function(t,i){return t.position="absolute",t.autoMargins=!1,t.valueWidth=0,t.switchable=!1,n.AmMap.base.addLegend.call(this,t,i),void 0===t.enabled&&(t.enabled=!0),t},handleLegendEvent:function(){},createDescriptionsDiv:function(){if(!this.descriptionsDiv){var t=document.createElement("div"),n=t.style;n.position="absolute";n.left="0px";n.top="0px";this.descriptionsDiv=t}this.containerDiv.appendChild(this.descriptionsDiv)},drawChart:function(){var t,r,i;n.AmMap.base.drawChart.call(this);t=this.dataProvider;this.dataProvider=t=n.extend(t,new n.MapData,!0);this.areasSettings=n.processObject(this.areasSettings,n.AreasSettings,this.theme);this.imagesSettings=n.processObject(this.imagesSettings,n.ImagesSettings,this.theme);this.linesSettings=n.processObject(this.linesSettings,n.LinesSettings,this.theme);r=this.container;this.mapContainer&&this.mapContainer.remove();this.mapContainer=r.set();this.graphsSet.push(this.mapContainer);t.map&&(i=n.maps[t.map]);t.mapVar&&(i=t.mapVar);i?(this.svgData=i.svg,this.getBounds(),this.buildEverything()):(t=t.mapURL)&&this.loadXml(t);this.balloonsSet.toFront()},drawBg:function(){var n=this;n.background.click(function(){n.handleBackgroundClick()})},buildEverything:function(){var i,t;0<this.realWidth&&0<this.realHeight?(i=this.container,this.zoomControl=n.processObject(this.zoomControl,n.ZoomControl,this.theme),this.zoomControl.init(this,i),this.drawBg(),this.buildSVGMap(),t=this.smallMap,t&&(t=this.smallMap=n.processObject(this.smallMap,n.SmallMap,this.theme),t.init(this,i)),t=this.dataProvider,isNaN(t.zoomX)&&isNaN(t.zoomY)&&isNaN(t.zoomLatitude)&&isNaN(t.zoomLongitude)&&(this.centerMap?(t.zoomLatitude=this.coordinateToLatitude(this.mapHeight/2),t.zoomLongitude=this.coordinateToLongitude(this.mapWidth/2)):(t.zoomX=0,t.zoomY=0),this.zoomInstantly=!0),this.selectObject(this.dataProvider),this.processAreas(),(t=this.valueLegend)&&(this.valueLegend=t=n.processObject(t,n.ValueLegend,this.theme),t.init(this,i)),this.objectList&&(i=this.objectList=n.processObject(this.objectList,n.ObjectList))&&(this.clearObjectList(),i.init(this)),this.dispDUpd(),this.linkSet.toFront()):this.cleanChart()},hideGroup:function(n){this.showHideGroup(n,!1)},showGroup:function(n){this.showHideGroup(n,!0)},showHideGroup:function(n,t){this.showHideReal(this.imagesProcessor.allObjects,n,t);this.showHideReal(this.areasProcessor.allObjects,n,t);this.showHideReal(this.linesProcessor.allObjects,n,t)},showHideReal:function(n,t,i){for(var r,f,u=0;u<n.length;u++)r=n[u],r.groupId==t&&(f=r.displayObject,f&&(i?(r.hidden=!1,f.show()):(r.hidden=!0,f.hide())))},update:function(){n.hasSVG&&(n.AmMap.base.update.call(this),this.zoomControl&&this.zoomControl.update&&this.zoomControl.update())},animateMap:function(){var t=this;t.totalFrames=1e3*t.zoomDuration/n.updateRate;t.totalFrames+=1;t.frame=0;t.tweenPercent=0;t.balloon.hide(0);setTimeout(function(){t.updateSize.call(t)},n.updateRate)},updateSize:function(){var t=this,i=t.totalFrames;t.preventHover=!0;t.frame<=i?(t.frame++,i=n.easeOutSine(0,t.frame,0,1,i),1<=i?(i=1,t.preventHover=!1,t.wheelBusy=!1):setTimeout(function(){t.updateSize.call(t)},n.updateRate),.8<i&&(t.preventHover=!1)):(i=1,t.preventHover=!1,t.wheelBusy=!1);t.tweenPercent=i;t.rescaleMapAndObjects()},rescaleMapAndObjects:function(){var u=this.initialScale,t=this.initialX,i=this.initialY,r=this.tweenPercent,u=u+(this.finalScale-u)*r,n,f;if(this.mapContainer.translate(t+(this.finalX-t)*r,i+(this.finalY-i)*r,u,!0),this.areasSettings.adjustOutlineThickness){for(t=this.svgAreas,n=0;n<t.length;n++)(i=t[n])&&i.setAttr("stroke-width",this.areasSettings.outlineThickness/u);for(n=0;n<t.length;n++)i=t[n],f=i.displayObject,f&&f.setAttr("stroke-width",i.outlineThicknessReal/u)}this.rescaleObjects();this.positionChanged();this.updateSmallMap();1==r&&(r={type:"zoomCompleted",chart:this},this.fire(r.type,r))},updateSmallMap:function(){this.smallMap&&this.smallMap.update()},rescaleObjects:function(){for(var r=this.mapContainer.scale,i=this.imagesProcessor.objectsToResize,t,u,n=0;n<i.length;n++)t=i[n].image,t.translate(t.x,t.y,i[n].scale/r,!0);for(i=this.imagesProcessor.labelsToReposition,n=0;n<i.length;n++)t=i[n],t.imageLabel&&this.imagesProcessor.positionLabel(t.imageLabel,t,t.labelPositionReal);if(i=this.linesProcessor,t=i.linesToResize)for(n=0;n<t.length;n++)u=t[n],u.line.setAttr("stroke-width",u.thickness/r);for(i=i.objectsToResize,n=0;n<i.length;n++)t=i[n],t.translate(t.x,t.y,1/r,!0)},handleTouchEnd:function(t){this.initialDistance=NaN;this.mouseIsDown=this.isDragging=!1;n.AmMap.base.handleTouchEnd.call(this,t)},handleMouseDown:function(t){if(n.resetMouseOver(),this.mouseIsDown=this.mouseIsOver=!0,this.balloon.hide(0),t&&this.mouseIsOver&&t.preventDefault&&this.panEventsEnabled&&t.preventDefault(),this.chartCreated&&!this.preventHover&&(this.initialTouchZoom=this.zoomLevel(),this.dragMap&&(this.stopAnimation(),this.mapContainerClickX=this.mapContainer.x,this.mapContainerClickY=this.mapContainer.y),t||(t=window.event),t.shiftKey&&!0===this.developerMode&&this.getDevInfo(),t&&t.touches)){var r=this.mouseX,u=this.mouseY,i=t.touches.item(1);i&&this.panEventsEnabled&&this.boundingRect&&(t=i.clientX-this.boundingRect.left,i=i.clientY-this.boundingRect.top,this.middleXP=(r+(t-r)/2)/this.realWidth,this.middleYP=(u+(i-u)/2)/this.realHeight,this.initialDistance=Math.sqrt(Math.pow(t-r,2)+Math.pow(i-u,2)))}},stopDrag:function(){this.isDragging=!1},handleReleaseOutside:function(){var t,i;if(n.isModern){if(t=this,t.mouseIsDown=!1,setTimeout(function(){t.resetPinch.call(t)},100),!t.preventHover){t.stopDrag();i=t.zoomControl;i&&i.draggerUp&&i.draggerUp();t.mapWasDragged=!1;var i=t.mapContainer,r=t.mapContainerClickX,u=t.mapContainerClickY;!isNaN(r)&&!isNaN(u)&&(2<Math.abs(i.x-r)||Math.abs(i.y-u))&&(t.mapWasDragged=!0,i={type:"dragCompleted",zoomX:t.zoomX(),zoomY:t.zoomY(),zoomLevel:t.zoomLevel(),chart:t},t.fire(i.type,i));(t.mouseIsOver&&!t.mapWasDragged&&!t.skipClick||t.wasTouched&&4>Math.abs(t.mouseX-t.tmx)&&4>Math.abs(t.mouseY-t.tmy))&&(i={type:"click",x:t.mouseX,y:t.mouseY,chart:t},t.fire(i.type,i));t.mapContainerClickX=NaN;t.mapContainerClickY=NaN;t.objectWasClicked=!1;t.zoomOnDoubleClick&&t.mouseIsOver&&(i=(new Date).getTime(),200>i-t.previousClickTime&&40<i-t.previousClickTime&&t.doDoubleClickZoom(),t.previousClickTime=i)}t.wasTouched=!1}},resetPinch:function(){this.mapWasPinched=!1},handleMouseMove:function(t){var i=this,r,o,v,u;if(n.AmMap.base.handleMouseMove.call(i,t),!t||!t.touches||!i.tapToActivate||i.tapped){i.panEventsEnabled&&i.mouseIsOver&&t&&t.preventDefault&&t.preventDefault();var f=i.previuosMouseX,e=i.previuosMouseY,s=i.mouseX,h=i.mouseY,c=i.zoomControl;if(isNaN(f)&&(f=s),isNaN(e)&&(e=h),i.mouse2X=NaN,i.mouse2Y=NaN,t&&t.touches&&(t=t.touches.item(1))&&i.panEventsEnabled&&i.boundingRect&&(i.mouse2X=t.clientX-i.boundingRect.left,i.mouse2Y=t.clientY-i.boundingRect.top),t=i.mapContainer){r=i.mouse2X;o=i.mouse2Y;i.pinchTO&&clearTimeout(i.pinchTO);i.pinchTO=setTimeout(function(){i.resetPinch.call(i)},1e3);var l=i.realHeight,y=i.realWidth,p=i.mapWidth,a=i.mapHeight;if(i.mouseIsDown&&i.dragMap&&(5<Math.abs(i.previuosMouseX-i.mouseX)||5<Math.abs(i.previuosMouseY-i.mouseY))&&(i.isDragging=!0),!isNaN(r)&&(i.stopDrag(),v=Math.sqrt(Math.pow(r-s,2)+Math.pow(o-h,2)),u=i.initialDistance,isNaN(u)&&(u=Math.sqrt(Math.pow(r-s,2)+Math.pow(o-h,2))),!isNaN(u))){var r=i.initialTouchZoom*v/u,r=n.fitToBounds(r,c.minZoomLevel,c.maxZoomLevel),c=i.zoomLevel(),u=i.middleXP,o=i.middleYP,v=l/a,w=y/p,u=(i.zoomX()-u*w)*(r/c)+u*w,o=(i.zoomY()-o*v)*(r/c)+o*v;.1<Math.abs(r-c)&&(i.zoomTo(r,u,o,!0),i.mapWasPinched=!0,clearTimeout(i.pinchTO))}r=t.scale;i.isDragging&&(i.balloon.hide(0),i.positionChanged(),f=t.x+(s-f),e=t.y+(h-e),i.preventDragOut&&(a=-a*r+l/2,l/=2,f=n.fitToBounds(f,-p*r+y/2,y/2),e=n.fitToBounds(e,a,l)),t.translate(f,e,r,!0),i.updateSmallMap());i.previuosMouseX=s;i.previuosMouseY=h}}},selectObject:function(t,i){var u=this,r,s,e,c,l,f,h,o,a;if((new Date).getTime(),t||(t=u.dataProvider),t.isOver=!1,r=t.linkToObject,"string"==typeof r&&(r=u.getObjectById(r)),t.useTargetsZoomValues&&r&&(t.zoomX=r.zoomX,t.zoomY=r.zoomY,t.zoomLatitude=r.zoomLatitude,t.zoomLongitude=r.zoomLongitude,t.zoomLevel=r.zoomLevel),s=u.selectedObject,s&&u.returnInitialColor(s),u.selectedObject=t,e=!1,"MapArea"==t.objectType&&(t.autoZoomReal&&(e=!0),c=u.areasSettings.selectedOutlineColor,l=u.areasSettings.selectedOutlineThickness),r&&!e&&("string"==typeof r&&(r=u.getObjectById(r)),isNaN(t.zoomLevel)&&isNaN(t.zoomX)&&isNaN(t.zoomY))){if(u.extendMapData(r))return;u.selectObject(r);return}if(u.allowMultipleDescriptionWindows||u.closeAllDescriptions(),clearTimeout(u.selectedObjectTimeOut),clearTimeout(u.processObjectsTimeOut),r=u.zoomDuration,!e&&isNaN(t.zoomLevel)&&isNaN(t.zoomX)&&isNaN(t.zoomY)?(u.showDescriptionAndGetUrl(),i||u.processObjects()):(u.selectedObjectTimeOut=setTimeout(function(){u.showDescriptionAndGetUrl.call(u)},1e3*r+200),u.showObjectsAfterZoom)?i||(u.processObjectsTimeOut=setTimeout(function(){u.processObjects.call(u)},1e3*r+200)):i||u.processObjects(),r=t.displayObject,e=t.selectedColorReal,"MapImage"==t.objectType&&(c=u.imagesSettings.selectedOutlineColor,l=u.imagesSettings.selectedOutlineThickness,r=t.image),r?(n.setCN(u,r,"selected-object"),t.bringForwardOnHover&&r.toFront(),t.preserveOriginalAttributes)||(r.setAttr("stroke",t.outlineColorReal),void 0!==e&&r.setAttr("fill",e),void 0!==c&&r.setAttr("stroke",c),void 0!==l&&r.setAttr("stroke-width",l),"MapLine"==t.objectType&&(f=t.lineSvg,f&&f.setAttr("stroke",e),(f=t.arrowSvg)&&(f.setAttr("fill",e),f.setAttr("stroke",e))),(f=t.imageLabel)&&(h=t.selectedLabelColorReal,void 0!==h&&f.setAttr("fill",h)),t.selectable||(r.setAttr("cursor","default"),f&&f.setAttr("cursor","default"))):u.returnInitialColorReal(t),r=t.groupId)for(f=t.groupArray,f||(f=u.getGroupById(r),t.groupArray=f),h=0;h<f.length;h++)o=f[h],o.isOver=!1,r=o.displayObject,"MapImage"==o.objectType&&(r=o.image),r&&(a=o.selectedColorReal,void 0!==a&&r.setAttr("fill",a),void 0!==c&&r.setAttr("stroke",c),void 0!==l&&r.setAttr("stroke-width",l),"MapLine"==o.objectType&&((r=o.lineSvg)&&r.setAttr("stroke",e),r=o.arrowSvg)&&(r.setAttr("fill",e),r.setAttr("stroke",e)));u.zoomToSelectedObject();s!=t&&(s={type:"selectedObjectChanged",chart:u},u.fire(s.type,s))},returnInitialColor:function(n,t){var i,r;if(this.returnInitialColorReal(n),t&&(n.isFirst=!1),this.selectedObject.bringForwardOnHover&&(i=this.selectedObject.displayObject,i&&i.toFront()),i=n.groupId)for(i=this.getGroupById(i),r=0;r<i.length;r++)this.returnInitialColorReal(i[r]),t&&(i[r].isFirst=!1)},closeAllDescriptions:function(){this.descriptionsDiv.innerHTML=""},returnInitialColorReal:function(n){var i,u,t,r,f;if(n.isOver=!1,i=n.displayObject,i){i.toPrevious();"MapImage"==n.objectType&&(t=n.tempScale,isNaN(t)||i.translate(i.x,i.y,t,!0),n.tempScale=NaN,i=n.image);t=n.colorReal;"MapLine"==n.objectType&&(u=n.lineSvg,u&&u.setAttr("stroke",t),(u=n.arrowSvg)&&(u.setAttr("fill",t),u.setAttr("stroke",t)));var u=n.alphaReal,s=n.outlineAlphaReal,e=n.outlineThicknessReal,o=n.outlineColorReal;n.showAsSelected&&(t=n.selectedColorReal,"MapImage"==n.objectType&&(r=this.imagesSettings.selectedOutlineColor,f=this.imagesSettings.selectedOutlineThickness),"MapArea"==n.objectType&&(r=this.areasSettings.selectedOutlineColor,f=this.areasSettings.selectedOutlineThickness),void 0!==r&&(o=r),void 0!==f&&(e=f));"bubble"==n.type&&(t=void 0);void 0!==t&&i.setAttr("fill",t);(r=n.image)&&(r.setAttr("fill",t),r.setAttr("stroke",o),r.setAttr("stroke-width",e),r.setAttr("fill-opacity",u),r.setAttr("stroke-opacity",s));"MapArea"==n.objectType&&(t=1,this.areasSettings.adjustOutlineThickness&&(t=this.zoomLevel()),i.setAttr("stroke",o),i.setAttr("stroke-width",e/t),i.setAttr("fill-opacity",u),i.setAttr("stroke-opacity",s));(t=n.pattern)&&i.pattern(t,this.mapScale,this.path);(i=n.imageLabel)&&!n.labelInactive&&(n.showAsSelected&&void 0!==n.selectedLabelColor?i.setAttr("fill",n.selectedLabelColor):i.setAttr("fill",n.labelColorReal))}},zoomToRectangle:function(t,i,r,u){var e=this.realWidth,o=this.realHeight,f=this.mapSet.scale,s=this.zoomControl,e=n.fitToBounds(r/e>u/o?.8*e/(r*f):.8*o/(u*f),s.minZoomLevel,s.maxZoomLevel);this.zoomToMapXY(e,(t+r/2)*f,(i+u/2)*f)},zoomToLatLongRectangle:function(t,i,r,u){var f=this.dataProvider,e=this.zoomControl,o=Math.abs(r-t),s=Math.abs(i-u),h=Math.abs(f.rightLongitude-f.leftLongitude),f=Math.abs(f.topLatitude-f.bottomLatitude),e=n.fitToBounds(o/h>s/f?.8*h/o:.8*f/s,e.minZoomLevel,e.maxZoomLevel);this.zoomToLongLat(e,t+(r-t)/2,u+(i-u)/2)},getGroupById:function(n){var t=[];return this.getGroup(this.imagesProcessor.allObjects,n,t),this.getGroup(this.linesProcessor.allObjects,n,t),this.getGroup(this.areasProcessor.allObjects,n,t),t},zoomToGroup:function(n){var i,r,u,f,o,e;for(n="object"==typeof n?n:this.getGroupById(n),o=0;o<n.length;o++)if(e=n[o].displayObject,e){var t=e.getBBox(),e=t.y,s=t.y+t.height,h=t.x,t=t.x+t.width;(e<i||isNaN(i))&&(i=e);(s>f||isNaN(f))&&(f=s);(h<r||isNaN(r))&&(r=h);(t>u||isNaN(u))&&(u=t)}n=this.mapSet.getBBox();r-=n.x;u-=n.x;f-=n.y;i-=n.y;this.zoomToRectangle(r,i,u-r,f-i)},getGroup:function(n,t,i){var r,u;if(n)for(r=0;r<n.length;r++)u=n[r],u.groupId==t&&i.push(u)},zoomToStageXY:function(t,i,r,u){if(!this.objectWasClicked){var f=this.zoomControl;t=n.fitToBounds(t,f.minZoomLevel,f.maxZoomLevel);f=this.zoomLevel();r=this.coordinateToLatitude((r-this.mapContainer.y)/f);i=this.coordinateToLongitude((i-this.mapContainer.x)/f);this.zoomToLongLat(t,i,r,u)}},zoomToLongLat:function(n,t,i,r){t=this.longitudeToCoordinate(t);i=this.latitudeToCoordinate(i);this.zoomToMapXY(n,t,i,r)},zoomToMapXY:function(n,t,i,r){var u=this.mapWidth,f=this.mapHeight;this.zoomTo(n,-(t/u)*n+this.realWidth/u/2,-(i/f)*n+this.realHeight/f/2,r)},zoomToObject:function(t){if(t){var r=t.zoomLatitude,s=t.zoomLongitude,e=t.zoomLevel,u=this.zoomInstantly,i=t.zoomX,h=t.zoomY,f=this.realWidth,o=this.realHeight;isNaN(e)||(isNaN(r)||isNaN(s)?this.zoomTo(e,i,h,u):this.zoomToLongLat(e,s,r,u));this.zoomInstantly=!1;"MapImage"==t.objectType&&isNaN(t.zoomX)&&isNaN(t.zoomY)&&isNaN(t.zoomLatitude)&&isNaN(t.zoomLongitude)&&!isNaN(t.latitude)&&!isNaN(t.longitude)&&this.zoomToLongLat(t.zoomLevel,t.longitude,t.latitude);"MapArea"==t.objectType&&(i=t.displayObject.getBBox(),r=this.mapScale,s=i.x*r,e=i.y*r,u=i.width*r,i=i.height*r,f=t.autoZoomReal&&isNaN(t.zoomLevel)?u/f>i/o?.8*f/u:.8*o/i:t.zoomLevel,o=this.zoomControl,f=n.fitToBounds(f,o.minZoomLevel,o.maxZoomLevel),isNaN(t.zoomX)&&isNaN(t.zoomY)&&isNaN(t.zoomLatitude)&&isNaN(t.zoomLongitude)&&(t=this.mapSet.getBBox(),this.zoomToMapXY(f,-t.x*r+s+u/2,-t.y*r+e+i/2)));this.zoomControl.update()}},zoomToSelectedObject:function(){this.zoomToObject(this.selectedObject)},zoomTo:function(t,i,r,u){var f=this.zoomControl;t=n.fitToBounds(t,f.minZoomLevel,f.maxZoomLevel);f=this.zoomLevel();isNaN(i)&&(i=this.realWidth/this.mapWidth,i=(this.zoomX()-.5*i)*(t/f)+.5*i);isNaN(r)&&(r=this.realHeight/this.mapHeight,r=(this.zoomY()-.5*r)*(t/f)+.5*r);this.stopAnimation();isNaN(t)||(f=this.mapContainer,this.initialX=f.x,this.initialY=f.y,this.initialScale=f.scale,this.finalX=this.mapWidth*i,this.finalY=this.mapHeight*r,this.finalScale=t,this.finalX!=this.initialX||this.finalY!=this.initialY||this.finalScale!=this.initialScale?u?(this.tweenPercent=1,this.rescaleMapAndObjects(),this.wheelBusy=!1):this.animateMap():this.wheelBusy=!1)},loadXml:function(n){var t;window.XMLHttpRequest&&(t=new XMLHttpRequest);t.overrideMimeType&&t.overrideMimeType("text/xml");t.open("GET",n,!1);t.send();this.parseXMLObject(t.responseXML);this.svgData&&this.buildEverything()},stopAnimation:function(){this.frame=this.totalFrames},processObjects:function(){var n=this.selectedObject,f,t,i,r,u;(0<n.images.length||0<n.areas.length||0<n.lines.length||n==this.dataProvider)&&(f=this.container,t=this.stageImagesContainer,t&&t.remove(),this.stageImagesContainer=t=f.set(),this.trendLinesSet.push(t),i=this.stageLinesContainer,i&&i.remove(),this.stageLinesContainer=i=f.set(),this.trendLinesSet.push(i),r=this.mapImagesContainer,r&&r.remove(),this.mapImagesContainer=r=f.set(),this.mapContainer.push(r),u=this.mapLinesContainer,u&&u.remove(),this.mapLinesContainer=u=f.set(),this.mapContainer.push(u),this.linesAboveImages?(r.toFront(),t.toFront(),u.toFront(),i.toFront()):(u.toFront(),i.toFront(),r.toFront(),t.toFront()),n&&(this.imagesProcessor.reset(),this.linesProcessor.reset(),this.linesAboveImages?(this.imagesProcessor.process(n),this.linesProcessor.process(n)):(this.linesProcessor.process(n),this.imagesProcessor.process(n))),this.rescaleObjects())},processAreas:function(){this.areasProcessor.process(this.dataProvider)},buildSVGMap:function(){var r=this.svgData.g.path,e=this.container,f=e.set(),u,i;for(void 0===r.length&&(r=[r]),u=0;u<r.length;u++){var n=r[u],t=n.d,o=n.title;if(n.titleTr&&(o=n.titleTr),t=e.path(t),t.id=n.id,this.areasSettings.preserveOriginalAttributes){t.customAttr={};for(i in n)"d"!=i&&"id"!=i&&"title"!=i&&(t.customAttr[i]=n[i])}this.svgAreasById[n.id]={area:t,title:o,className:n["class"]};this.svgAreas.push(t);f.push(t)}this.mapSet=f;this.mapContainer.push(f);this.resizeMap()},addObjectEventListeners:function(n,t){var i=this;n.mousedown(function(n){i.mouseDownMapObject(t,n)}).mouseup(function(n){i.clickMapObject(t,n)}).mouseover(function(n){i.balloonX=NaN;i.rollOverMapObject(t,!0,n)}).mouseout(function(n){i.balloonX=NaN;i.rollOutMapObject(t,n)}).touchend(function(n){i.tapToActivate&&!i.tapped||i.mapWasDragged||i.mapWasPinched||(i.balloonX=NaN,i.rollOverMapObject(t,!0,n),i.clickMapObject(t,n))}).touchstart(function(n){i.mouseDownMapObject(t,n)})},checkIfSelected:function(n){var t=this.selectedObject,i;if(t==n)return!0;if(t=t.groupId)for(t=this.getGroupById(t),i=0;i<t.length;i++)if(t[i]==n)return!0;return!1},clearMap:function(){this.chartDiv.innerHTML="";this.clearObjectList()},clearObjectList:function(){var n=this.objectList;n&&n.div&&(n.div.innerHTML="")},checkIfLast:function(n){if(n){var t=n.parentNode;if(t&&t.lastChild==n)return!0}return!1},showAsRolledOver:function(t){var u=t.displayObject,i,r,f;t.showAsSelected||!u||t.isOver||(u.node.onmouseout=function(){},u.node.onmouseover=function(){},u.node.onclick=function(){},!t.isFirst&&t.bringForwardOnHover&&(u.toFront(),t.isFirst=!0),i=t.rollOverColorReal,t.preserveOriginalAttributes&&(i=void 0),void 0==i&&(isNaN(t.rollOverBrightnessReal)||(i=n.adjustLuminosity(t.colorReal,t.rollOverBrightnessReal/100))),void 0!=i&&("MapImage"==t.objectType?(r=t.image)&&r.setAttr("fill",i):"MapLine"==t.objectType?((r=t.lineSvg)&&r.setAttr("stroke",i),r=t.arrowSvg)&&(r.setAttr("fill",i),r.setAttr("stroke",i)):u.setAttr("fill",i)),(i=t.imageLabel)&&!t.labelInactive&&(r=t.labelRollOverColorReal,void 0!=r&&i.setAttr("fill",r)),i=t.rollOverOutlineColorReal,void 0!=i&&("MapImage"==t.objectType?(r=t.image)&&r.setAttr("stroke",i):u.setAttr("stroke",i)),"MapImage"==t.objectType?(i=this.imagesSettings.rollOverOutlineThickness,(r=t.image)&&(isNaN(i)||r.setAttr("stroke-width",i))):(i=this.areasSettings.rollOverOutlineThickness,isNaN(i)||u.setAttr("stroke-width",i)),"MapArea"==t.objectType&&(i=this.areasSettings,r=t.rollOverAlphaReal,isNaN(r)||u.setAttr("fill-opacity",r),r=i.rollOverOutlineAlpha,isNaN(r)||u.setAttr("stroke-opacity",r),r=1,this.areasSettings.adjustOutlineThickness&&(r=this.zoomLevel()),f=i.rollOverOutlineThickness,isNaN(f)||u.setAttr("stroke-width",f/r),(i=i.rollOverPattern)&&u.pattern(i,this.mapScale,this.path)),"MapImage"==t.objectType&&(i=t.rollOverScaleReal,isNaN(i)||1==i||(r=u.scale,isNaN(r)&&(r=1),t.tempScale=r,u.translate(u.x,u.y,r*i,!0))),this.useHandCursorOnClickableOjects&&this.checkIfClickable(t)&&u.setAttr("cursor","pointer"),t.mouseEnabled&&this.addObjectEventListeners(u,t),t.isOver=!0)},rollOverMapObject:function(n,t,i){var r,u;if(this.chartCreated&&(this.handleMouseMove(),r=this.previouslyHovered,r&&r!=n?(!1===this.checkIfSelected(r)&&(this.returnInitialColor(r,!0),this.previouslyHovered=null),this.balloon.hide(0)):clearTimeout(this.hoverInt),!this.preventHover)){if(!1===this.checkIfSelected(n)){if(r=n.groupId)for(r=this.getGroupById(r),u=0;u<r.length;u++)r[u]!=n&&this.showAsRolledOver(r[u]);this.showAsRolledOver(n)}else(r=n.displayObject)&&(this.allowClickOnSelectedObject?r.setAttr("cursor","pointer"):r.setAttr("cursor","default"));this.showDescriptionOnHover?this.showDescription(n):!this.showBalloonOnSelectedObject&&this.checkIfSelected(n)||!1===t||(u=this.balloon,this.balloon.fixedPosition=!1,t=n.colorReal,r="",void 0!==t&&this.useObjectColorForBalloon||(t=u.fillColor),(u=n.balloonTextReal)&&(r=this.formatString(u,n)),this.balloonLabelFunction&&(r=this.balloonLabelFunction(n,this)),"MapArea"!=n.objectType&&(this.balloonX=NaN),r&&""!==r&&this.showBalloon(r,t,!1,this.balloonX,this.balloonY));i={type:"rollOverMapObject",mapObject:n,chart:this,event:i};this.fire(i.type,i);this.previouslyHovered=n}},longitudeToX:function(n){return this.longitudeToCoordinate(n)*this.zoomLevel()+this.mapContainer.x},latitudeToY:function(n){return this.latitudeToCoordinate(n)*this.zoomLevel()+this.mapContainer.y},latitudeToStageY:function(n){return this.latitudeToCoordinate(n)*this.zoomLevel()+this.mapContainer.y},longitudeToStageX:function(n){return this.longitudeToCoordinate(n)*this.zoomLevel()+this.mapContainer.x},stageXToLongitude:function(n){return n=(n-this.mapContainer.x)/this.zoomLevel(),this.coordinateToLongitude(n)},stageYToLatitude:function(n){return n=(n-this.mapContainer.y)/this.zoomLevel(),this.coordinateToLatitude(n)},rollOutMapObject:function(n,t){if(this.hideBalloon(),this.chartCreated&&n.isOver){this.checkIfSelected(n)||this.returnInitialColor(n);var i={type:"rollOutMapObject",mapObject:n,chart:this,event:t};this.fire(i.type,i)}},formatString:function(t,i){var r=this.nf,u=this.pf,f=i.title,e;i.titleTr&&(f=i.titleTr);void 0==f&&(f="");var o=i.value,o=isNaN(o)?"":n.formatNumber(o,r),r=i.percents,r=isNaN(r)?"":n.formatNumber(r,u),u=i.description;return void 0==u&&(u=""),e=i.customData,void 0==e&&(e=""),n.massReplace(t,{"[[title]]":f,"[[value]]":o,"[[percent]]":r,"[[description]]":u,"[[customData]]":e})},mouseDownMapObject:function(n,t){var i={type:"mouseDownMapObject",mapObject:n,chart:this,event:t};this.fire(i.type,i)},clickMapObject:function(n,t){var i=this,r;t&&(t.touches||i.hideBalloon());!i.chartCreated||i.preventHover||i.mapWasDragged||!i.checkIfClickable(n)||i.mapWasPinched||(i.selectObject(n),r=i.zoomLevel(),i.clickLatitude=i.coordinateToLatitude((i.mouseY-i.mapContainer.y)/r),i.clickLongitude=i.coordinateToLongitude((i.mouseX-i.mapContainer.x)/r),t&&t.touches&&setTimeout(function(){i.showBalloonAfterZoom.call(i)},1e3*i.zoomDuration),r={type:"clickMapObject",mapObject:n,chart:i,event:t},i.fire(r.type,r),i.objectWasClicked=!0)},showBalloonAfterZoom:function(){this.balloonX=this.longitudeToX(this.clickLongitude);this.balloonY=this.latitudeToY(this.clickLatitude);this.rollOverMapObject(this.selectedObject,!0)},checkIfClickable:function(n){var t=this.allowClickOnSelectedObject;return this.selectedObject==n&&t?!0:this.selectedObject!=n||t?!0===n.selectable||"MapArea"==n.objectType&&n.autoZoomReal||n.url||n.linkToObject||0<n.images.length||0<n.lines.length||!isNaN(n.zoomLevel)||!isNaN(n.zoomX)||!isNaN(n.zoomY)||n.description?!0:!1:!1},resizeMap:function(){var i=this.mapSet;if(i){var n=1,t=i.getBBox(),f=this.realWidth,e=this.realHeight,r=t.width,u=t.height;this.fitMapToContainer&&(n=r/f>u/e?f/r:e/u);i.translate(-t.x*n,-t.y*n,n,!0);this.mapScale=n;this.mapHeight=u*n;this.mapWidth=r*n}},zoomIn:function(){var n=this.zoomLevel()*this.zoomControl.zoomFactor;this.zoomTo(n)},zoomOut:function(){var n=this.zoomLevel()/this.zoomControl.zoomFactor;this.zoomTo(n)},moveLeft:function(){var n=this.zoomX()+this.zoomControl.panStepSize;this.zoomTo(this.zoomLevel(),n,this.zoomY())},moveRight:function(){var n=this.zoomX()-this.zoomControl.panStepSize;this.zoomTo(this.zoomLevel(),n,this.zoomY())},moveUp:function(){var n=this.zoomY()+this.zoomControl.panStepSize;this.zoomTo(this.zoomLevel(),this.zoomX(),n)},moveDown:function(){var n=this.zoomY()-this.zoomControl.panStepSize;this.zoomTo(this.zoomLevel(),this.zoomX(),n)},zoomX:function(){return this.mapSet?Math.round(1e4*this.mapContainer.x/this.mapWidth)/1e4:NaN},zoomY:function(){return this.mapSet?Math.round(1e4*this.mapContainer.y/this.mapHeight)/1e4:NaN},goHome:function(){this.selectObject(this.dataProvider);var n={type:"homeButtonClicked",chart:this};this.fire(n.type,n)},zoomLevel:function(){return Math.round(1e5*this.mapContainer.scale)/1e5},showDescriptionAndGetUrl:function(){var i=this.selectedObject,t,r;if(i)if(this.showDescription(),t=i.url,t)n.getURL(t,i.urlTarget);else if(t=i.linkToObject){if("string"==typeof t&&(r=this.getObjectById(t),r)){this.selectObject(r);return}t&&i.passZoomValuesToTarget&&(t.zoomLatitude=this.zoomLatitude(),t.zoomLongitude=this.zoomLongitude(),t.zoomLevel=this.zoomLevel());this.extendMapData(t)||this.selectObject(t)}},extendMapData:function(t){var i=t.objectType;if("MapImage"!=i&&"MapArea"!=i&&"MapLine"!=i)return n.extend(t,new n.MapData,!0),this.dataProvider=t,this.zoomInstantly=!0,this.validateData(),!0},showDescription:function(t){var i,u;if(t||(t=this.selectedObject),this.allowMultipleDescriptionWindows||this.closeAllDescriptions(),t.description){i=t.descriptionWindow;i&&i.close();i=new n.DescriptionWindow;t.descriptionWindow=i;var s=t.descriptionWindowWidth,h=t.descriptionWindowHeight,r=t.descriptionWindowLeft,f=t.descriptionWindowTop,e=t.descriptionWindowRight,o=t.descriptionWindowBottom;isNaN(e)||(r=this.realWidth-e);isNaN(o)||(f=this.realHeight-o);u=t.descriptionWindowX;isNaN(u)||(r=u);u=t.descriptionWindowY;isNaN(u)||(f=u);isNaN(r)&&(r=this.mouseX,r=r>this.realWidth/2?r-s-20:r+20);isNaN(f)&&(f=this.mouseY);i.maxHeight=h;u=t.title;t.titleTr&&(u=t.titleTr);i.show(this,this.descriptionsDiv,t.description,u);t=i.div.style;t.position="absolute";t.width=s+"px";t.maxHeight=h+"px";isNaN(o)||(f-=i.div.offsetHeight);isNaN(e)||(r-=i.div.offsetWidth);t.left=r+"px";t.top=f+"px"}},parseXMLObject:function(n){var t={root:{}};this.parseXMLNode(t,"root",n);this.svgData=t.root.svg;this.getBounds()},getBounds:function(){var n=this.dataProvider,t,i;try{t=this.svgData.defs["amcharts:ammap"];n.leftLongitude=Number(t.leftLongitude);n.rightLongitude=Number(t.rightLongitude);n.topLatitude=Number(t.topLatitude);n.bottomLatitude=Number(t.bottomLatitude);n.projection=t.projection;i=t.wrappedLongitudes;i&&(n.rightLongitude+=360);n.wrappedLongitudes=i}catch(r){}},recalcLongitude:function(n){var t=this.dataProvider.leftLongitude,i=this.dataProvider.wrappedLongitudes;return isNaN(n)&&i?n<t?Number(n)+360:n:n},latitudeToCoordinate:function(n){var t,r=this.dataProvider,i;return this.mapSet&&(t=r.topLatitude,i=r.bottomLatitude,"mercator"==r.projection&&(n=this.mercatorLatitudeToCoordinate(n),t=this.mercatorLatitudeToCoordinate(t),i=this.mercatorLatitudeToCoordinate(i)),t=(n-t)/(i-t)*this.mapHeight),t},longitudeToCoordinate:function(n){n=this.recalcLongitude(n);var t,i=this.dataProvider;return this.mapSet&&(t=i.leftLongitude,t=(n-t)/(i.rightLongitude-t)*this.mapWidth),t},mercatorLatitudeToCoordinate:function(t){return 89.5<t&&(t=89.5),-89.5>t&&(t=-89.5),t=n.degreesToRadians(t),n.radiansToDegrees(.5*Math.log((1+Math.sin(t))/(1-Math.sin(t)))/2)},zoomLatitude:function(){if(this.mapContainer)return this.coordinateToLatitude((-this.mapContainer.y+this.previousHeight/2)/this.zoomLevel())},zoomLongitude:function(){if(this.mapContainer)return this.coordinateToLongitude((-this.mapContainer.x+this.previousWidth/2)/this.zoomLevel())},getAreaCenterLatitude:function(n){n=n.displayObject.getBBox();var t=this.mapScale;return n=-this.mapSet.getBBox().y*t+(n.y+n.height/2)*t,this.coordinateToLatitude(n)},getAreaCenterLongitude:function(n){n=n.displayObject.getBBox();var t=this.mapScale;return n=-this.mapSet.getBBox().x*t+(n.x+n.width/2)*t,this.coordinateToLongitude(n)},coordinateToLatitude:function(t){var i;if(this.mapSet){var u=this.dataProvider,f=u.bottomLatitude,r=u.topLatitude;i=this.mapHeight;"mercator"==u.projection?(u=this.mercatorLatitudeToCoordinate(f),r=this.mercatorLatitudeToCoordinate(r),i=n.radiansToDegrees(2*Math.atan(Math.exp(2*(t*(u-r)/i+r)*Math.PI/180))-.5*Math.PI)):i=t/i*(f-r)+r}return Math.round(1e6*i)/1e6},coordinateToLongitude:function(n){var i,t=this.dataProvider;return this.mapSet&&(i=n/this.mapWidth*(t.rightLongitude-t.leftLongitude)+t.leftLongitude),Math.round(1e6*i)/1e6},milesToPixels:function(n){var t=this.dataProvider;return this.mapWidth/(t.rightLongitude-t.leftLongitude)*n/69.172},kilometersToPixels:function(n){var t=this.dataProvider;return this.mapWidth/(t.rightLongitude-t.leftLongitude)*n/111.325},handleBackgroundClick:function(){var n;if(this.backgroundZoomsToTop&&!this.mapWasDragged)if(n=this.dataProvider,this.checkIfClickable(n))this.clickMapObject(n);else{var t=n.zoomX,i=n.zoomY,r=n.zoomLongitude,u=n.zoomLatitude,n=n.zoomLevel;isNaN(t)||isNaN(i)||this.zoomTo(n,t,i);isNaN(r)||isNaN(u)||this.zoomToLongLat(n,r,u,!0)}},parseXMLNode:function(n,t,i,r){var h,u,s,c,o;if(void 0===r&&(r=""),i){for(c=i.childNodes.length,h=0;h<c;h++){u=i.childNodes[h];var f=u.nodeName,e=u.nodeValue?this.trim(u.nodeValue):"",l=!1;if(u.attributes&&0<u.attributes.length&&(l=!0),0!==u.childNodes.length||""!==e||!1!==l)if(3==u.nodeType||4==u.nodeType){if(""!==e){u=0;for(s in n[t])n[t].hasOwnProperty(s)&&u++;u?n[t]["#text"]=e:n[t]=e}}else if(1==u.nodeType){if(void 0!==n[t][f]?void 0===n[t][f].length?(o=n[t][f],n[t][f]=[],n[t][f].push(o),n[t][f].push({}),o=n[t][f][1]):"object"==typeof n[t][f]&&(n[t][f].push({}),o=n[t][f][n[t][f].length-1]):(n[t][f]={},o=n[t][f]),u.attributes&&u.attributes.length)for(e=0;e<u.attributes.length;e++)o[u.attributes[e].name]=u.attributes[e].value;void 0!==n[t][f].length?this.parseXMLNode(n[t][f],n[t][f].length-1,u,r+"  "):this.parseXMLNode(n[t],f,u,r+"  ")}}u=0;i="";for(s in n[t])"#text"==s?i=n[t][s]:u++;0===u&&void 0===n[t].length&&(n[t]=i)}},doDoubleClickZoom:function(){if(!this.mapWasDragged){var n=this.zoomLevel()*this.zoomControl.zoomFactor;this.zoomToStageXY(n,this.mouseX,this.mouseY)}},getDevInfo:function(){var n=this.zoomLevel(),n={chart:this,type:"writeDevInfo",zoomLevel:n,zoomX:this.zoomX(),zoomY:this.zoomY(),zoomLatitude:this.zoomLatitude(),zoomLongitude:this.zoomLongitude(),latitude:this.coordinateToLatitude((this.mouseY-this.mapContainer.y)/n),longitude:this.coordinateToLongitude((this.mouseX-this.mapContainer.x)/n),left:this.mouseX,top:this.mouseY,right:this.realWidth-this.mouseX,bottom:this.realHeight-this.mouseY,percentLeft:Math.round(this.mouseX/this.realWidth*100)+"%",percentTop:Math.round(this.mouseY/this.realHeight*100)+"%",percentRight:Math.round((this.realWidth-this.mouseX)/this.realWidth*100)+"%",percentBottom:Math.round((this.realHeight-this.mouseY)/this.realHeight*100)+"%"},t="zoomLevel:"+n.zoomLevel+", zoomLongitude:"+n.zoomLongitude+", zoomLatitude:"+n.zoomLatitude+"\n",t=t+("zoomX:"+n.zoomX+", zoomY:"+n.zoomY+"\n"),t=t+("latitude:"+n.latitude+", longitude:"+n.longitude+"\n"),t=t+("left:"+n.left+", top:"+n.top+"\n"),t=t+("right:"+n.right+", bottom:"+n.bottom+"\n"),t=t+("left:"+n.percentLeft+", top:"+n.percentTop+"\n"),t=t+("right:"+n.percentRight+", bottom:"+n.percentBottom+"\n");return n.str=t,this.fire(n.type,n),n},getXY:function(n,t,i){return void 0!==n&&(-1!=String(n).indexOf("%")?(n=Number(n.split("%").join("")),i&&(n=100-n),n=Number(n)*t/100):i&&(n=t-n)),n},getObjectById:function(n){var i=this.dataProvider,t;return i.areas&&(t=this.getObject(n,i.areas),t)?t:(t=this.getObject(n,i.images))?t:(n=this.getObject(n,i.lines))?n:void 0},getObject:function(n,t){var r,i,u;if(t)for(r=0;r<t.length;r++){if(i=t[r],i.id==n)return i;if(i.areas&&(u=this.getObject(n,i.areas),u)||(u=this.getObject(n,i.images)))return u;if(i=this.getObject(n,i.lines))return i}},parseData:function(){var n=this.dataProvider;this.processObject(n.areas,n,"area");this.processObject(n.images,n,"image");this.processObject(n.lines,n,"line")},processObject:function(t,i,r){var f,u;if(t)for(f=0;f<t.length;f++)u=t[f],u.parentObject=i,"area"==r&&n.extend(u,new n.MapArea(this.theme),!0),"image"==r&&(u=n.extend(u,new n.MapImage(this.theme),!0)),"line"==r&&(u=n.extend(u,new n.MapLine(this.theme),!0)),t[f]=u,u.areas&&this.processObject(u.areas,u,"area"),u.images&&this.processObject(u.images,u,"image"),u.lines&&this.processObject(u.lines,u,"line")},positionChanged:function(){var n={type:"positionChanged",zoomX:this.zoomX(),zoomY:this.zoomY(),zoomLevel:this.zoomLevel(),chart:this};this.fire(n.type,n)},getX:function(n,t){return this.getXY(n,this.realWidth,t)},getY:function(n,t){return this.getXY(n,this.realHeight,t)},trim:function(n){if(n){for(var t=0;t<n.length;t++)if(-1===" \n\r\t\f\x0b            ​\u2028\u2029　".indexOf(n.charAt(t))){n=n.substring(t);break}for(t=n.length-1;0<=t;t--)if(-1===" \n\r\t\f\x0b            ​\u2028\u2029　".indexOf(n.charAt(t))){n=n.substring(0,t+1);break}return-1===" \n\r\t\f\x0b            ​\u2028\u2029　".indexOf(n.charAt(0))?n:""}},destroy:function(){n.AmMap.base.destroy.call(this)}})}(),function(){var n=window.AmCharts;n.ZoomControl=n.Class({construct:function(t){this.cname="ZoomControl";this.panStepSize=.1;this.zoomFactor=2;this.maxZoomLevel=64;this.minZoomLevel=1;this.panControlEnabled=!1;this.zoomControlEnabled=!0;this.buttonRollOverColor="#DADADA";this.buttonFillColor="#FFFFFF";this.buttonFillAlpha=1;this.buttonBorderColor="#000000";this.buttonBorderAlpha=.1;this.buttonIconAlpha=this.buttonBorderThickness=1;this.gridColor=this.buttonIconColor="#000000";this.homeIconFile="homeIcon.gif";this.gridBackgroundColor="#000000";this.draggerAlpha=this.gridAlpha=this.gridBackgroundAlpha=0;this.draggerSize=this.buttonSize=31;this.iconSize=11;this.homeButtonEnabled=!0;this.buttonCornerRadius=2;this.gridHeight=5;this.roundButtons=!0;this.top=this.left=10;n.applyTheme(this,t,this.cname)},init:function(t,i){var r=this,w,l,u,v,ut,a,ft,ot;r.chart=t;n.remove(r.set);w=i.set();n.setCN(t,w,"zoom-control");var f=r.buttonSize,a=r.zoomControlEnabled,s=r.panControlEnabled,b=r.buttonFillColor,y=r.buttonFillAlpha,k=r.buttonBorderThickness,d=r.buttonBorderColor,p=r.buttonBorderAlpha,g=r.buttonCornerRadius,nt=r.buttonRollOverColor,it=r.gridHeight,o=r.zoomFactor,st=r.minZoomLevel,et=r.maxZoomLevel,h=r.buttonIconAlpha,c=r.buttonIconColor,tt=r.roundButtons,rt=t.svgIcons,u=t.getX(r.left),e=t.getY(r.top);if(isNaN(r.right)||(u=t.getX(r.right,!0),u=s?u-3*f:u-f),isNaN(r.bottom)||(e=t.getY(r.bottom,!0),a&&(e-=it+3*f),e=s?e-3*f:r.homeButtonEnabled?e-.5*f:e+f),w.translate(u,e),r.previousDY=NaN,u=f/4-1,a){for(l=i.set(),n.setCN(t,l,"zoom-control-zoom"),w.push(l),r.set=w,r.zoomSet=l,a=n.rect(i,f+6,it+2*f+6,r.gridBackgroundColor,r.gridBackgroundAlpha,0,0,0,4),n.setCN(t,a,"zoom-bg"),a.translate(-3,-3),a.mouseup(function(){r.handleBgUp()}).touchend(function(){r.handleBgUp()}),l.push(a),v=f,tt&&(v=f/1.5),r.draggerSize=v,ut=Math.log(et/st)/Math.log(o)+1,1e3<ut&&(ut=1e3),a=it/ut,ot=i.set(),ot.translate((f-v)/2+1,1,NaN,!0),l.push(ot),ft=1;ft<ut;ft++)e=f+ft*a,e=n.line(i,[1,v-2],[e,e],r.gridColor,r.gridAlpha,1),n.setCN(t,e,"zoom-grid"),ot.push(e);e=new n.SimpleButton;e.setDownHandler(r.draggerDown,r);e.setClickHandler(r.draggerUp,r);e.init(i,v,a,b,y,k,d,p,g,nt);n.setCN(t,e.set,"zoom-dragger");l.push(e.set);e.set.setAttr("opacity",r.draggerAlpha);r.dragger=e.set;r.previousY=NaN;e=new n.SimpleButton;rt?(v=i.set(),ut=n.line(i,[-u,u],[0,0],c,h,1),ft=n.line(i,[0,0],[-u,u],c,h,1),v.push(ut),v.push(ft),e.svgIcon=v):e.setIcon(t.pathToImages+"plus.gif",r.iconSize);e.setClickHandler(t.zoomIn,t);e.init(i,f,f,b,y,k,d,p,g,nt,h,c,tt);n.setCN(t,e.set,"zoom-in");l.push(e.set);e=new n.SimpleButton;rt?e.svgIcon=n.line(i,[-u,u],[0,0],c,h,1):e.setIcon(t.pathToImages+"minus.gif",r.iconSize);e.setClickHandler(t.zoomOut,t);e.init(i,f,f,b,y,k,d,p,g,nt,h,c,tt);e.set.translate(0,it+f);n.setCN(t,e.set,"zoom-out");l.push(e.set);it-=a;et=Math.log(et/100)/Math.log(o);r.realStepSize=it/(et-Math.log(st/100)/Math.log(o));r.realGridHeight=it;r.stepMax=et}s&&(s=i.set(),n.setCN(t,s,"zoom-control-pan"),w.push(s),l&&l.translate(f,4*f),o=new n.SimpleButton,rt?o.svgIcon=n.line(i,[u/5,-u+u/5,u/5],[-u,0,u],c,h,1):o.setIcon(t.pathToImages+"panLeft.gif",r.iconSize),o.setClickHandler(t.moveLeft,t),o.init(i,f,f,b,y,k,d,p,g,nt,h,c,tt),o.set.translate(0,f),n.setCN(t,o.set,"pan-left"),s.push(o.set),o=new n.SimpleButton,rt?o.svgIcon=n.line(i,[-u/5,u-u/5,-u/5],[-u,0,u],c,h,1):o.setIcon(t.pathToImages+"panRight.gif",r.iconSize),o.setClickHandler(t.moveRight,t),o.init(i,f,f,b,y,k,d,p,g,nt,h,c,tt),o.set.translate(2*f,f),n.setCN(t,o.set,"pan-right"),s.push(o.set),o=new n.SimpleButton,rt?o.svgIcon=n.line(i,[-u,0,u],[u/5,-u+u/5,u/5],c,h,1):o.setIcon(t.pathToImages+"panUp.gif",r.iconSize),o.setClickHandler(t.moveUp,t),o.init(i,f,f,b,y,k,d,p,g,nt,h,c,tt),o.set.translate(f,0),n.setCN(t,o.set,"pan-up"),s.push(o.set),o=new n.SimpleButton,rt?o.svgIcon=n.line(i,[-u,0,u],[-u/5,u-u/5,-u/5],c,h,1):o.setIcon(t.pathToImages+"panDown.gif",r.iconSize),o.setClickHandler(t.moveDown,t),o.init(i,f,f,b,y,k,d,p,g,nt,h,c,tt),o.set.translate(f,2*f),n.setCN(t,o.set,"pan-down"),s.push(o.set),w.push(s));r.homeButtonEnabled&&(s=new n.SimpleButton,rt?s.svgIcon=n.polygon(i,[-u,0,u,u-1,u-1,2,2,-2,-2,-u+1,-u+1],[0,-u,0,0,u-1,u-1,2,2,u-1,u-1,0],c,h,1,c,h):s.setIcon(t.pathToImages+r.homeIconFile,r.iconSize),s.setClickHandler(t.goHome,t),r.panControlEnabled&&(p=y=0),s.init(i,f,f,b,y,k,d,p,g,nt,h,c,tt),r.panControlEnabled?s.set.translate(f,f):l&&l.translate(0,1.5*f),n.setCN(t,s.set,"pan-home"),w.push(s.set));r.update()},draggerDown:function(){this.chart.stopDrag();this.isDragging=!0},draggerUp:function(){this.isDragging=!1},handleBgUp:function(){var n=this.chart;n.zoomTo(100*Math.pow(this.zoomFactor,this.stepMax-(n.mouseY-this.zoomSet.y-this.set.y-this.buttonSize-this.realStepSize/2)/this.realStepSize))},update:function(){var r=this.zoomFactor;var e=this.realStepSize,o=this.stepMax,f=this.dragger,u=this.buttonSize,t,i=this.chart;i&&(this.isDragging?(i.stopDrag(),t=f.y+(i.mouseY-this.previousY),t=n.fitToBounds(t,u,this.realGridHeight+u),i.zoomTo(100*Math.pow(r,o-(t-u)/e),NaN,NaN,!0)):(r=Math.log(i.zoomLevel()/100)/Math.log(r),t=(o-r)*e+u),this.previousY=i.mouseY,this.previousDY!=t&&f&&(f.translate((this.buttonSize-this.draggerSize)/2,t),this.previousDY=t))}})}(),function(){var n=window.AmCharts;n.SimpleButton=n.Class({construct:function(){},init:function(t,i,r,u,f,e,o,s,h,c,l,a,v){var y=this,p;y.rollOverColor=c;y.color=u;y.container=t;c=t.set();y.set=c;v?(i/=2,u=n.circle(t,i,u,f,e,o,s),u.translate(i,i)):u=n.rect(t,i,r,u,f,e,o,s,h);c.push(u);f=y.iconPath;f&&(p=y.iconSize,e=(i-p)/2,v&&(e=(2*i-p)/2),p=t.image(f,e,(r-p)/2,p,p));y.svgIcon&&(p=y.svgIcon,v?p.translate(i,i):p.translate(i/2,i/2));c.setAttr("cursor","pointer");p&&(c.push(p),p.setAttr("opacity",l),p.node.style.pointerEvents="none");u.mousedown(function(){y.handleDown()}).touchstart(function(){y.handleDown()}).mouseup(function(){y.handleUp()}).touchend(function(){y.handleUp()}).mouseover(function(){y.handleOver()}).mouseout(function(){y.handleOut()});y.bg=u},setIcon:function(n,t){this.iconPath=n;this.iconSize=t},setClickHandler:function(n,t){this.clickHandler=n;this.scope=t},setDownHandler:function(n,t){this.downHandler=n;this.scope=t},handleUp:function(){var n=this.clickHandler;n&&n.call(this.scope)},handleDown:function(){var n=this.downHandler;n&&n.call(this.scope)},handleOver:function(){this.container.chart.skipClick=!0;this.bg.setAttr("fill",this.rollOverColor)},handleOut:function(){this.container.chart.skipClick=!1;this.bg.setAttr("fill",this.color)}})}(),function(){var n=window.AmCharts;n.SmallMap=n.Class({construct:function(t){this.cname="SmallMap";this.mapColor="#e6e6e6";this.rectangleColor="#FFFFFF";this.top=this.right=10;this.minimizeButtonWidth=23;this.backgroundColor="#9A9A9A";this.backgroundAlpha=1;this.borderColor="#FFFFFF";this.iconColor="#000000";this.borderThickness=3;this.borderAlpha=1;this.size=.2;this.enabled=!0;n.applyTheme(this,t,this.cname)},init:function(t,i){var r=this,h,l,c,a,v;if(r.enabled){r.chart=t;r.container=i;r.width=t.realWidth*r.size;r.height=t.realHeight*r.size;n.remove(r.set);h=i.set();r.set=h;n.setCN(t,h,"small-map");l=i.set();r.allSet=l;h.push(l);r.buildSVGMap();var u=r.borderThickness,e=r.borderColor,f=n.rect(i,r.width+u,r.height+u,r.backgroundColor,r.backgroundAlpha,u,e,r.borderAlpha);n.setCN(t,f,"small-map-bg");f.translate(-u/2,-u/2);l.push(f);f.toBack();var y,p,f=r.minimizeButtonWidth,o=new n.SimpleButton,s=f/2;t.svgIcons?o.svgIcon=n.line(i,[-s/2,0,s/2],[-s/4,s/4,-s/4],r.iconColor,1,1):o.setIcon(t.pathToImages+"arrowDown.gif",f);o.setClickHandler(r.minimize,r);o.init(i,f,f,e,1,1,e,1);n.setCN(t,o.set,"small-map-down");o=o.set;r.downButtonSet=o;h.push(o);c=new n.SimpleButton;t.svgIcons?c.svgIcon=n.line(i,[-s/2,0,s/2],[s/4,-s/4,s/4],r.iconColor,1,1):c.setIcon(t.pathToImages+"arrowUp.gif",f);c.setClickHandler(r.maximize,r);c.init(i,f,f,e,1,1,e,1);n.setCN(t,c.set,"small-map-up");e=c.set;r.upButtonSet=e;e.hide();h.push(e);isNaN(r.top)||(y=t.getY(r.top)+u,v=0);isNaN(r.bottom)||(y=t.getY(r.bottom,!0)-r.height-u,v=r.height-f+u/2);isNaN(r.left)||(p=t.getX(r.left)+u,a=-u/2);isNaN(r.right)||(p=t.getX(r.right,!0)-r.width-u,a=r.width-f+u/2);u=i.set();u.clipRect(1,1,r.width,r.height);l.push(u);r.rectangleC=u;h.translate(p,y);o.translate(a,v);e.translate(a,v);l.mouseup(function(){r.handleMouseUp()});r.drawRectangle()}else n.remove(r.allSet),n.remove(r.downButtonSet),n.remove(r.upButtonSet)},minimize:function(){this.downButtonSet.hide();this.upButtonSet.show();this.allSet.hide()},maximize:function(){this.downButtonSet.show();this.upButtonSet.hide();this.allSet.show()},buildSVGMap:function(){var e=this.chart,i={fill:this.mapColor,stroke:this.mapColor,"stroke-opacity":1},t=e.svgData.g.path,o=this.container,f=o.set(),r,u,s;for(n.setCN(e,f,"small-map-image"),r=0;r<t.length;r++)u=o.path(t[r].d).attr(i),f.push(u);this.allSet.push(f);i=f.getBBox();t=this.size*e.mapScale;o=-i.x*t;r=-i.y*t;s=u=0;e.centerMap&&(u=(this.width-i.width*t)/2,s=(this.height-i.height*t)/2);this.mapWidth=i.width*t;this.mapHeight=i.height*t;this.dx=u;this.dy=s;f.translate(o+u,r+s,t)},update:function(){var n=this.chart;if(n){var t=n.zoomLevel(),i=this.width,u=n.mapContainer,n=i/(n.realWidth*t),i=i/t,t=this.height/t,r=this.rectangle;r.translate(-u.x*n+this.dx,-u.y*n+this.dy);0<i&&0<t&&(r.setAttr("width",Math.ceil(i+1)),r.setAttr("height",Math.ceil(t+1)));this.rWidth=i;this.rHeight=t}},drawRectangle:function(){var t=this.rectangle;n.remove(t);t=n.rect(this.container,10,10,"#000",0,1,this.rectangleColor,1);n.setCN(this.chart,t,"small-map-rectangle");this.rectangleC.push(t);this.rectangle=t},handleMouseUp:function(){var n=this.chart,t=n.zoomLevel();n.zoomTo(t,-((n.mouseX-this.set.x-this.dx-this.rWidth/2)/this.mapWidth)*t,-((n.mouseY-this.set.y-this.dy-this.rHeight/2)/this.mapHeight)*t)}})}(),function(){var n=window.AmCharts;n.AreasProcessor=n.Class({construct:function(n){this.chart=n},process:function(n){this.updateAllAreas();this.allObjects=[];n=n.areas;for(var u=this.chart,e=n.length,t,o=0,f=!1,r=!1,s=0,i=0;i<e;i++)(t=n[i],t=t.value,isNaN(t))||((!1===f||f<t)&&(f=t),(!1===r||r>t)&&(r=t),o+=Math.abs(t),s++);for(this.minValue=r,this.maxValue=f,isNaN(u.minValue)||(this.minValue=u.minValue),isNaN(u.maxValue)||(this.maxValue=u.maxValue),u.maxValueReal=f,u.minValueReal=r,i=0;i<e;i++)t=n[i],isNaN(t.value)?t.percents=void 0:(t.percents=(t.value-r)/o*100,r==f&&(t.percents=100));for(i=0;i<e;i++)t=n[i],this.createArea(t)},updateAllAreas:function(){for(var f=this.chart,r=f.areasSettings,s=r.unlistedAreasColor,h=r.unlistedAreasAlpha,c=r.unlistedAreasOutlineColor,l=r.unlistedAreasOutlineAlpha,a=f.svgAreas,e=f.dataProvider,t=e.areas,v={},o,u,i=0;i<t.length;i++)v[t[i].id]=t[i];for(i=0;i<a.length;i++){if(t=a[i],r.preserveOriginalAttributes){if(t.customAttr)for(o in t.customAttr)t.setAttr(o,t.customAttr[o])}else void 0!=s&&t.setAttr("fill",s),isNaN(h)||t.setAttr("fill-opacity",h),void 0!=c&&t.setAttr("stroke",c),isNaN(l)||t.setAttr("stroke-opacity",l),u=r.outlineThickness,r.adjustOutlineThickness&&(u/=f.zoomLevel()),t.setAttr("stroke-width",u);n.setCN(f,t,"map-area-unlisted");e.getAreasFromMap&&!v[t.id]&&(u=new n.MapArea(f.theme),u.parentObject=e,u.id=t.id,e.areas.push(u))}},createArea:function(t){var r=this.chart,f=r.svgAreasById[t.id],i=r.areasSettings,e,p,g;f&&f.className&&(e=r.areasClasses[f.className],e&&(i=n.processObject(e,n.AreasSettings,r.theme)));var o=i.color,s=i.alpha,w=i.outlineThickness,h=i.rollOverColor,b=i.selectedColor,k=i.rollOverAlpha,u=i.rollOverBrightness,a=i.outlineColor,c=i.outlineAlpha,l=i.balloonText,nt=i.selectable,v=i.pattern,d=i.rollOverOutlineColor,y=i.bringForwardOnHover,tt=i.preserveOriginalAttributes;this.allObjects.push(t);t.chart=r;t.baseSettings=i;t.autoZoomReal=void 0==t.autoZoom?i.autoZoom:t.autoZoom;e=t.color;void 0==e&&(e=o);p=t.alpha;isNaN(p)&&(p=s);s=t.rollOverAlpha;isNaN(s)&&(s=k);isNaN(s)&&(s=p);k=t.rollOverColor;void 0==k&&(k=h);h=t.pattern;void 0==h&&(h=v);v=t.selectedColor;void 0==v&&(v=b);b=t.balloonText;void 0===b&&(b=l);void 0==i.colorSolid||isNaN(t.value)||(l=Math.floor((t.value-this.minValue)/((this.maxValue-this.minValue)/r.colorSteps)),l==r.colorSteps&&l--,l*=1/(r.colorSteps-1),this.maxValue==this.minValue&&(l=1),t.colorReal=n.getColorFade(e,i.colorSolid,l));void 0!=t.color&&(t.colorReal=t.color);void 0==t.selectable&&(t.selectable=nt);void 0==t.colorReal&&(t.colorReal=o);o=t.outlineColor;void 0==o&&(o=a);a=t.outlineAlpha;isNaN(a)&&(a=c);c=t.outlineThickness;isNaN(c)&&(c=w);w=t.rollOverOutlineColor;void 0==w&&(w=d);d=t.rollOverBrightness;void 0==d&&(d=u);void 0==t.bringForwardOnHover&&(t.bringForwardOnHover=y);void 0==t.preserveOriginalAttributes&&(t.preserveOriginalAttributes=tt);isNaN(i.selectedBrightness)||(v=n.adjustLuminosity(t.colorReal,i.selectedBrightness/100));t.alphaReal=p;t.rollOverColorReal=k;t.rollOverAlphaReal=s;t.balloonTextReal=b;t.selectedColorReal=v;t.outlineColorReal=o;t.outlineAlphaReal=a;t.rollOverOutlineColorReal=w;t.outlineThicknessReal=c;t.patternReal=h;t.rollOverBrightnessReal=d;n.processDescriptionWindow(i,t);f&&(u=f.area,y=f.title,t.enTitle=f.title,y&&!t.title&&(t.title=y),(f=r.language)?(y=n.mapTranslations)&&(f=y[f])&&f[t.enTitle]&&(t.titleTr=f[t.enTitle]):t.titleTr=void 0,u)&&(t.displayObject=u,t.mouseEnabled&&r.addObjectEventListeners(u,t),void 0!=e&&(g=e),void 0!=t.colorReal&&(g=t.showAsSelected||r.selectedObject==t?t.selectedColorReal:t.colorReal),u.node.setAttribute("class",""),n.setCN(r,u,"map-area"),n.setCN(r,u,"map-area-"+u.id),i.adjustOutlineThickness&&(c/=r.zoomLevel()),t.preserveOriginalAttributes||(u.setAttr("fill",g),u.setAttr("stroke",o),u.setAttr("stroke-opacity",a),u.setAttr("stroke-width",c),u.setAttr("fill-opacity",p)),h&&u.pattern(h,r.mapScale,r.path),t.hidden&&u.hide())}})}(),function(){var n=window.AmCharts;n.AreasSettings=n.Class({construct:function(t){this.cname="AreasSettings";this.alpha=1;this.autoZoom=!1;this.balloonText="[[title]]";this.color="#FFCC00";this.colorSolid="#990000";this.unlistedAreasAlpha=1;this.unlistedAreasColor="#DDDDDD";this.outlineColor="#FFFFFF";this.outlineThickness=this.outlineAlpha=1;this.selectedColor=this.rollOverOutlineColor="#CC0000";this.unlistedAreasOutlineColor="#FFFFFF";this.unlistedAreasOutlineAlpha=1;this.descriptionWindowWidth=250;this.bringForwardOnHover=this.adjustOutlineThickness=!0;n.applyTheme(this,t,this.cname)}})}(),function(){var n=window.AmCharts;n.ImagesProcessor=n.Class({construct:function(n){this.chart=n;this.reset()},process:function(n){for(var i=n.images,r,t=0;t<i.length;t++)r=i[t],this.createImage(r,t),r.parentArray=i;this.counter=t;n.parentObject&&n.remainVisible&&this.process(n.parentObject)},createImage:function(t,i){var l,y,r;t=n.processObject(t,n.MapImage);isNaN(i)&&(this.counter++,i=this.counter);var f=this.chart,a=f.container,ft=f.mapImagesContainer,et=f.stageImagesContainer,u=f.imagesSettings;t.remove&&t.remove();var p=u.color,w=u.alpha,g=u.rollOverColor,v=u.rollOverOutlineColor,tt=u.selectedColor,d=u.balloonText,nt=u.outlineColor,o=u.outlineAlpha,ut=u.outlineThickness,b=u.selectedScale,h=u.rollOverScale,it=u.labelPosition,rt=u.labelColor,k=u.labelFontSize,ot=u.bringForwardOnHover,s=u.labelRollOverColor,c=u.rollOverBrightness,e=u.selectedLabelColor;return t.index=i,t.chart=f,t.baseSettings=f.imagesSettings,l=a.set(),t.displayObject=l,y=t.color,void 0==y&&(y=p),p=t.alpha,isNaN(p)&&(p=w),void 0==t.bringForwardOnHover&&(t.bringForwardOnHover=ot),w=t.outlineAlpha,isNaN(w)&&(w=o),o=t.rollOverColor,void 0==o&&(o=g),g=t.selectedColor,void 0==g&&(g=tt),tt=t.balloonText,void 0===tt&&(tt=d),d=t.outlineColor,void 0==d&&(d=nt),t.outlineColorReal=d,nt=t.outlineThickness,isNaN(nt)&&(nt=ut),(ut=t.labelPosition)||(ut=it),it=t.labelColor,void 0==it&&(it=rt),rt=t.labelRollOverColor,void 0==rt&&(rt=s),s=t.selectedLabelColor,void 0==s&&(s=e),e=t.labelFontSize,isNaN(e)&&(e=k),k=t.selectedScale,isNaN(k)&&(k=b),b=t.rollOverScale,isNaN(b)&&(b=h),h=t.rollOverBrightness,void 0==h&&(h=c),t.colorReal=y,isNaN(u.selectedBrightness)||(g=n.adjustLuminosity(t.colorReal,u.selectedBrightness/100)),t.alphaReal=p,t.rollOverColorReal=o,t.balloonTextReal=tt,t.selectedColorReal=g,t.labelColorReal=it,t.labelRollOverColorReal=rt,t.selectedLabelColorReal=s,t.labelFontSizeReal=e,t.labelPositionReal=ut,t.selectedScaleReal=k,t.rollOverScaleReal=b,t.rollOverOutlineColorReal=v,t.rollOverBrightnessReal=h,n.processDescriptionWindow(u,t),t.centeredReal=void 0==t.centered?u.centered:t.centered,h=t.type,b=t.imageURL,k=t.svgPath,e=t.width,o=t.height,v=t.scale,isNaN(t.percentWidth)||(e=t.percentWidth/100*f.realWidth),isNaN(t.percentHeight)||(o=t.percentHeight/100*f.realHeight),b||h||k||(h="circle",e=1,w=p=0),s=c=0,u=t.selectedColorReal,h?(isNaN(e)&&(e=10),isNaN(o)&&(o=10),"kilometers"==t.widthAndHeightUnits&&(e=f.kilometersToPixels(t.width),o=f.kilometersToPixels(t.height)),"miles"==t.widthAndHeightUnits&&(e=f.milesToPixels(t.width),o=f.milesToPixels(t.height)),("circle"==h||"bubble"==h)&&(o=e),r=this.createPredefinedImage(y,d,nt,h,e,o),s=c=0,t.centeredReal?(isNaN(t.right)||(c=e*v),isNaN(t.bottom)||(s=o*v)):(c=e*v/2,s=o*v/2),r.translate(c,s,v,!0)):b?(isNaN(e)&&(e=10),isNaN(o)&&(o=10),r=a.image(b,0,0,e,o),r.node.setAttribute("preserveAspectRatio","none"),r.setAttr("opacity",p),t.centeredReal&&(c=isNaN(t.right)?-e/2:e/2,s=isNaN(t.bottom)?-o/2:o/2,r.translate(c,s,NaN,!0))):k&&(r=a.path(k),h=r.getBBox(),t.centeredReal?(c=-h.x*v-h.width*v/2,isNaN(t.right)||(c=-c),s=-h.y*v-h.height*v/2,isNaN(t.bottom)||(s=-s)):c=s=0,r.translate(c,s,v,!0),r.x=c,r.y=s),r&&(l.push(r),t.image=r,r.setAttr("stroke-opacity",w),r.setAttr("stroke-width",nt),r.setAttr("stroke",d),r.setAttr("fill-opacity",p),r.setAttr("fill",y),n.setCN(f,r,"map-image"),void 0!=t.id&&n.setCN(f,r,"map-image-"+t.id)),y=t.labelColorReal,(t.showAsSelected||f.selectedObject==t)&&void 0!=u&&(r.setAttr("fill",u),y=t.selectedLabelColorReal),r=null,void 0!==t.label&&(r=n.text(a,t.label,y,f.fontFamily,t.labelFontSizeReal,t.labelAlign),n.setCN(f,r,"map-image-label"),void 0!==t.id&&n.setCN(f,r,"map-image-label-"+t.id),y=t.labelBackgroundAlpha,(p=t.labelBackgroundColor)&&0<y&&(w=r.getBBox(),a=n.rect(a,w.width+16,w.height+10,p,y),n.setCN(f,a,"map-image-label-background"),void 0!=t.id&&n.setCN(f,a,"map-image-label-background-"+t.id),l.push(a),t.labelBG=a),t.imageLabel=r,l.push(r),n.setCN(f,l,"map-image-container"),void 0!=t.id&&n.setCN(f,l,"map-image-container-"+t.id)),a=isNaN(t.latitude)||isNaN(t.longitude)?!0:!1,t.lineId&&(r=this.chart.getObjectById(t.lineId))&&0<r.longitudes.length&&(a=!1),a?et.push(l):ft.push(l),l&&(l.rotation=t.rotation,isNaN(t.rotation)||l.rotate(t.rotation)),this.updateSizeAndPosition(t),t.mouseEnabled&&f.addObjectEventListeners(l,t),t.hidden&&l.hide(),t.animateAlongLine&&setTimeout(function(){t.animateAlong.call(t)},100),t},updateSizeAndPosition:function(t){var i=this.chart,u=t.displayObject,e=i.getX(t.left),o=i.getY(t.top),f,h=t.image.getBBox(),a,v,r;isNaN(t.right)||(e=i.getX(t.right,!0)-h.width*t.scale);isNaN(t.bottom)||(o=i.getY(t.bottom,!0)-h.height*t.scale);var c=t.longitude,l=t.latitude,s=t.positionOnLine,h=this.objectsToResize;this.allSvgObjects.push(u);this.allObjects.push(t);t.arrays.push({arr:this.allSvgObjects,el:u});t.arrays.push({arr:this.allObjects,el:t});a=t.imageLabel;v=this.chart.zoomLevel();t.lineId&&(r=this.chart.getObjectById(t.lineId),(t.line=r)&&r.getCoordinates&&(r.chart=i,r=r.getCoordinates(s,t.lineSegment))&&(c=i.coordinateToLongitude(r.x),l=i.coordinateToLatitude(r.y),f=n.radiansToDegrees(r.angle)));isNaN(f)||u.rotate(f+t.extraAngle);isNaN(e)||isNaN(o)?isNaN(l)||isNaN(c)||((e=i.longitudeToCoordinate(c),o=i.latitudeToCoordinate(l),t.fixedSize)?(f=1,(t.showAsSelected||i.selectedObject==t)&&(f=t.selectedScaleReal),i=t.positionScale,isNaN(i)?i=0:(--i,i*=1-2*Math.abs(s-.5)),s={image:u,scale:f+i},h.push(s),t.arrays.push({arr:h,el:s}),u.translate(e,o,f/v+i,!0)):(u.translate(e,o,NaN,!0),a&&(this.labelsToReposition.push(t),t.arrays.push({arr:this.labelsToReposition,el:t})))):u.translate(e,o,NaN,!0);this.positionLabel(a,t,t.labelPositionReal)},positionLabel:function(n,t,i){if(n){var u=t.image,f=0,e=0,o=0,r=0;u&&(r=u.getBBox(),e=u.y,f=u.x,o=r.width,r=r.height,t.svgPath&&(o*=t.scale,r*=t.scale));var u=n.getBBox(),s=u.width,h=u.height;"right"==i&&(f+=o+s/2+5,e+=r/2-2);"left"==i&&(f+=-s/2-5,e+=r/2-2);"top"==i&&(e-=h/2+3,f+=o/2);"bottom"==i&&(e+=r+h/2,f+=o/2);"middle"==i&&(f+=o/2,e+=r/2);n.translate(f+t.labelShiftX,e+t.labelShiftY,NaN,!0);t.labelBG&&t.labelBG.translate(f-u.width/2+t.labelShiftX-9,e+t.labelShiftY-u.height/2-3,NaN,!0)}},createPredefinedImage:function(t,i,r,u,f,e){var s=this.chart.container,o;switch(u){case"circle":o=n.circle(s,f/2,t,1,r,i,1);break;case"rectangle":o=n.polygon(s,[-f/2,f/2,f/2,-f/2],[e/2,e/2,-e/2,-e/2],t,1,r,i,1,0,!0);break;case"bubble":o=n.circle(s,f/2,t,1,r,i,1,!0);break;case"hexagon":f/=Math.sqrt(3);o=n.polygon(s,[.866*f,0*f,-.866*f,-.866*f,0*f,.866*f],[.5*f,1*f,.5*f,-.5*f,-1*f,-.5*f],t,1,r,i,1)}return o},reset:function(){this.objectsToResize=[];this.allSvgObjects=[];this.allObjects=[];this.allLabels=[];this.labelsToReposition=[]}})}(),function(){var n=window.AmCharts;n.ImagesSettings=n.Class({construct:function(t){this.cname="ImagesSettings";this.balloonText="[[title]]";this.alpha=1;this.borderAlpha=0;this.borderThickness=1;this.labelPosition="right";this.labelColor="#000000";this.labelFontSize=11;this.color="#000000";this.labelRollOverColor="#00CC00";this.centered=!0;this.rollOverScale=this.selectedScale=1;this.descriptionWindowWidth=250;this.bringForwardOnHover=!0;this.outlineColor="transparent";this.adjustAnimationSpeed=!1;this.baseAnimationDistance=500;this.pauseDuration=0;this.easingFunction=n.easeInOutQuad;this.animationDuration=3;this.positionScale=1;n.applyTheme(this,t,this.cname)}})}(),function(){var n=window.AmCharts;n.LinesProcessor=n.Class({construct:function(n){this.chart=n;this.reset()},process:function(n){for(var i=n.lines,r,t=0;t<i.length;t++)r=i[t],this.createLine(r,t),r.parentArray=i;this.counter=t;n.parentObject&&n.remainVisible&&this.process(n.parentObject)},createLine:function(t,i){var k,et,a,ot,d,r,f,tt,ut;t=n.processObject(t,n.MapLine);isNaN(i)&&(this.counter++,i=this.counter);t.index=i;t.remove&&t.remove();var h=this.chart,c=h.linesSettings,ct=this.objectsToResize,yt=h.mapLinesContainer,pt=h.stageLinesContainer,e=c.thickness,y=c.dashLength,g=c.arrow,r=c.arrowSize,nt=c.arrowColor,w=c.arrowAlpha,u=c.color,s=c.alpha,it=c.rollOverColor,p=c.selectedColor,v=c.rollOverAlpha,rt=c.balloonText,o=c.bringForwardOnHover,b=c.arc,l=c.rollOverBrightness,ft=h.container;if(t.chart=h,t.baseSettings=c,k=ft.set(),t.displayObject=k,this.allSvgObjects.push(k),t.arrays.push({arr:this.allSvgObjects,el:k}),this.allObjects.push(t),t.arrays.push({arr:this.allObjects,el:t}),t.mouseEnabled&&h.addObjectEventListeners(k,t),t.remainVisible||h.selectedObject==t.parentObject){if(et=t.thickness,isNaN(et)&&(et=e),e=t.dashLength,isNaN(e)&&(e=y),y=t.color,void 0==y&&(y=u),u=t.alpha,isNaN(u)&&(u=s),s=t.rollOverAlpha,isNaN(s)&&(s=v),isNaN(s)&&(s=u),v=t.rollOverColor,void 0==v&&(v=it),it=t.selectedColor,void 0==it&&(it=p),p=t.balloonText,void 0===p&&(p=rt),rt=t.arc,isNaN(rt)&&(rt=b),b=t.arrow,b&&("none"!=b||"none"==g)||(b=g),g=t.arrowColor,void 0==g&&(g=nt),void 0==g&&(g=y),nt=t.arrowAlpha,isNaN(nt)&&(nt=w),isNaN(nt)&&(nt=u),w=t.arrowSize,isNaN(w)&&(w=r),r=t.rollOverBrightness,void 0==r&&(r=l),t.colorReal=y,isNaN(c.selectedBrightness)||(it=n.adjustLuminosity(t.colorReal,c.selectedBrightness/100)),t.alphaReal=u,t.rollOverColorReal=v,t.rollOverAlphaReal=s,t.balloonTextReal=p,t.selectedColorReal=it,t.thicknessReal=et,t.rollOverBrightnessReal=r,void 0==t.bringForwardOnHover&&(t.bringForwardOnHover=o),n.processDescriptionWindow(c,t),o=this.processCoordinates(t.x,h.realWidth),l=this.processCoordinates(t.y,h.realHeight),r=t.longitudes,c=t.latitudes,s=r.length,0<s)for(o=[],v=0;v<s;v++)o.push(h.longitudeToCoordinate(r[v]));if(s=c.length,0<s)for(l=[],v=0;v<s;v++)l.push(h.latitudeToCoordinate(c[v]));if(0<o.length){if(t.segments=o.length,n.dx=0,n.dy=0,r=10*(1-Math.abs(rt)),10<=r&&(r=NaN),1>r&&(r=1),t.arcRadius=[],t.distances=[],isNaN(r)){for(r=0;r<o.length-1;r++)ot=Math.sqrt(Math.pow(o[r+1]-o[r],2)+Math.pow(l[r+1]-l[r],2)),t.distances[r]=ot;r=n.line(ft,o,l,y,1,et,e,!1,!1,!0);y=n.line(ft,o,l,y,.001,5,e,!1,!1,!0)}else{for(s=1,0>rt&&(s=0),v={fill:"none",stroke:y,"stroke-opacity":1,"stroke-width":et,"fill-opacity":0},void 0!==e&&0<e&&(v["stroke-dasharray"]=e),e="",p=0;p<o.length-1;p++){var st=o[p],ht=o[p+1],lt=l[p],at=l[p+1];if(ot=Math.sqrt(Math.pow(ht-st,2)+Math.pow(at-lt,2)),d=ot/2*r,a=270+180*Math.acos(ot/2/d)/Math.PI,isNaN(a)&&(a=270),st<ht){var vt=st,st=ht,ht=vt,vt=lt,lt=at,at=vt;a=-a}0<rt&&(a=-a);e+="M"+st+","+lt+"A"+d+","+d+",0,0,"+s+","+ht+","+at;t.arcRadius[p]=d;t.distances[p]=ot}r=ft.path(e).attr(v);y=ft.path(e).attr({"fill-opacity":0,stroke:y,"stroke-width":5,"stroke-opacity":.001,fill:"none"})}n.setCN(h,r,"map-line");void 0!=t.id&&n.setCN(h,r,"map-line-"+t.id);n.dx=.5;n.dy=.5;k.push(r);k.push(y);r.setAttr("opacity",u);"none"!=b&&(("end"==b||"both"==b)&&(u=o[o.length-1],s=l[l.length-1],1<o.length?(e=o[o.length-2],f=l[l.length-2]):(e=u,f=s),f=180*Math.atan((s-f)/(u-e))/Math.PI,isNaN(a)||(f+=a),tt=u,ut=s,f=0>u-e?f-90:f+90),"both"==b&&(u=n.polygon(ft,[-w/2,0,w/2],[1.5*w,0,1.5*w],g,nt,1,g,nt),k.push(u),u.translate(tt,ut,1,!0),isNaN(f)||u.rotate(f),n.setCN(h,r,"map-line-arrow"),void 0!=t.id&&n.setCN(h,r,"map-line-arrow-"+t.id),t.fixedSize&&ct.push(u)),("start"==b||"both"==b)&&(u=o[0],ut=l[0],1<o.length?(e=o[1],tt=l[1]):(e=u,tt=ut),f=180*Math.atan((ut-tt)/(u-e))/Math.PI,isNaN(a)||(f-=a),tt=u,f=0>u-e?f-90:f+90),"middle"==b&&(u=o[o.length-1],s=l[l.length-1],1<o.length?(e=o[o.length-2],f=l[l.length-2]):(e=u,f=s),tt=e+(u-e)/2,ut=f+(s-f)/2,f=180*Math.atan((s-f)/(u-e))/Math.PI,isNaN(a)||(a=ot/2,d-=Math.sqrt(d*d-a*a),0>rt&&(d=-d),a=Math.sin(f/180*Math.PI),-1==a&&(a=1),tt-=a*d,ut+=Math.cos(f/180*Math.PI)*d),f=0>u-e?f-90:f+90),u=n.polygon(ft,[-w/2,0,w/2],[1.5*w,0,1.5*w],g,nt,1,g,nt),n.setCN(h,r,"map-line-arrow"),void 0!=t.id&&n.setCN(h,r,"map-line-arrow-"+t.id),k.push(u),u.translate(tt,ut,1,!0),isNaN(f)||u.rotate(f),t.fixedSize&&(ct.push(u),t.arrays.push({arr:ct,el:u})),t.arrowSvg=u);t.fixedSize&&r&&(h={line:r,thickness:et},this.linesToResize.push(h),t.arrays.push({arr:this.linesToResize,el:h}),h={line:y,thickness:5},this.linesToResize.push(h),t.arrays.push({arr:this.linesToResize,el:h}));t.lineSvg=r;t.showAsSelected&&!isNaN(it)&&r.setAttr("stroke",it);0<c.length?yt.push(k):pt.push(k);t.hidden&&k.hide()}}},processCoordinates:function(n,t){for(var f=[],u,i,r=0;r<n.length;r++)u=n[r],i=Number(u),isNaN(i)&&(i=Number(u.replace("%",""))*t/100),isNaN(i)||f.push(i);return f},reset:function(){this.objectsToResize=[];this.allSvgObjects=[];this.allObjects=[];this.linesToResize=[]}})}(),function(){var n=window.AmCharts;n.LinesSettings=n.Class({construct:function(t){this.cname="LinesSettings";this.balloonText="[[title]]";this.thickness=1;this.dashLength=0;this.arrowSize=10;this.arrowAlpha=1;this.arrow="none";this.color="#990000";this.descriptionWindowWidth=250;this.bringForwardOnHover=!0;n.applyTheme(this,t,this.cname)}})}(),function(){var n=window.AmCharts;n.MapObject=n.Class({construct:function(t){this.fixedSize=this.mouseEnabled=!0;this.images=[];this.lines=[];this.areas=[];this.remainVisible=!0;this.passZoomValuesToTarget=!1;this.objectType=this.cname;n.applyTheme(this,t,"MapObject");this.arrays=[]},deleteObject:function(){if(this.remove(),this.parentArray&&n.removeFromArray(this.parentArray,this),this.arrays)for(var t=0;t<this.arrays.length;t++)n.removeFromArray(this.arrays[t].arr,this.arrays[t].el);this.arrays=[]}})}(),function(){var n=window.AmCharts;n.MapArea=n.Class({inherits:n.MapObject,construct:function(t){this.cname="MapArea";n.MapArea.base.construct.call(this,t);n.applyTheme(this,t,this.cname)},validate:function(){this.chart.areasProcessor.createArea(this)}})}(),function(){var n=window.AmCharts;n.MapLine=n.Class({inherits:n.MapObject,construct:function(t){this.cname="MapLine";this.longitudes=[];this.latitudes=[];this.x=[];this.y=[];this.segments=0;this.arrow="none";n.MapLine.base.construct.call(this,t);n.applyTheme(this,t,this.cname)},validate:function(){this.chart.linesProcessor.createLine(this)},remove:function(){var n=this.displayObject;n&&n.remove()},getCoordinates:function(t,i){var r,u,f,e,l,o,s,h,c,a;return isNaN(i)&&(i=0),isNaN(t)?void 0:(1<this.longitudes.length?(r=this.chart.longitudeToCoordinate(this.longitudes[i]),f=this.chart.longitudeToCoordinate(this.longitudes[i+1]),u=this.chart.latitudeToCoordinate(this.latitudes[i]),e=this.chart.latitudeToCoordinate(this.latitudes[i+1])):1<this.x.length&&(r=this.x[i],f=this.x[i+1],u=this.y[i],e=this.y[i+1]),s=Math.sqrt(Math.pow(f-r,2)+Math.pow(e-u,2)),r<f&&!isNaN(this.arc)&&(t=1-t),l=r+(f-r)*t,o=u+(e-u)*t,h=Math.atan2(e-u,f-r),!isNaN(this.arc)&&this.arcRadius&&(c=0,r<f&&(c=r,r=f,f=c,c=u,u=e,e=c,c=Math.PI),o=this.arcRadius[i],0>this.arc&&(s=-s),l=r+(f-r)/2+Math.sqrt(o*o-s/2*(s/2))*(u-e)/s,a=u+(e-u)/2+Math.sqrt(o*o-s/2*(s/2))*(f-r)/s,r=180*Math.atan2(u-a,r-l)/Math.PI,h=n.degreesToRadians(r+(180*Math.atan2(e-a,f-l)/Math.PI-r)*t),l+=o*Math.cos(h),o=a+o*Math.sin(h),h=(0<this.arc?h+Math.PI/2:h-Math.PI/2)+c),this.distance=s,{x:l,y:o,angle:h})},fixToStage:function(){if(0<this.latitudes.length){this.y=[];for(var n=0;n<this.latitudes.length;n++)this.y.push(this.chart.latitudeToStageY(this.latitudes[n]));for(this.latitudes=[],this.x=[],n=0;n<this.longitudes.length;n++)this.x.push(this.chart.longitudeToStageX(this.longitudes[n]));this.longitudes=[]}this.validate()},fixToMap:function(){if(0<this.y.length){this.latitudes=[];for(var n=0;n<this.y.length;n++)this.latitudes.push(this.chart.stageYToLatitude(this.y[n]));for(this.y=[],this.longitudes=[],n=0;n<this.x.length;n++)this.longitudes.push(this.chart.stageXToLongitude(this.x[n]));this.x=[]}this.validate()}})}(),function(){var n=window.AmCharts;n.MapImage=n.Class({inherits:n.MapObject,construct:function(t){this.cname="MapImage";this.scale=1;this.widthAndHeightUnits="pixels";this.labelShiftY=this.labelShiftX=0;this.positionOnLine=.5;this.direction=1;this.lineSegment=this.extraAngle=0;this.createEvents("animationStart","animationEnd");n.MapImage.base.construct.call(this,t);n.applyTheme(this,t,this.cname)},validate:function(){this.chart.imagesProcessor.createImage(this)},updatePosition:function(){this.chart.imagesProcessor.updateSizeAndPosition(this)},remove:function(){var n=this.displayObject;n&&n.remove();(n=this.imageLabel)&&n.remove()},animateTo:function(n,t,i,r){isNaN(i)||(this.animationDuration=i);r&&(this.easingFunction=r);this.finalX=n;this.finalY=t;isNaN(this.longitude)||(this.initialX=this.longitude);isNaN(this.left)||(this.initialX=this.left);isNaN(this.right)||(this.initialX=this.right);isNaN(this.latitude)||(this.initialY=this.latitude);isNaN(this.top)||(this.initialY=this.top);isNaN(this.bottom)||(this.initialY=this.bottom);this.animatingAlong=!1;this.animate()},animateAlong:function(n,t,i){isNaN(t)||(this.animationDuration=t);i&&(this.easingFunction=i);n&&(this.line=this.chart.getObjectById(n));this.animatingAlong=!0;this.animate()},animate:function(){var t=this,r=t.chart.imagesSettings,i=t.animationDuration;isNaN(i)&&(i=r.animationDuration);t.totalFrames=Math.round(1e3*i/n.updateRate);i=1;t.line&&r.adjustAnimationSpeed&&(t.line.distances&&(i=t.line.distances[t.lineSegment]*t.chart.zoomLevel(),i=Math.abs(i/r.baseAnimationDistance)),t.totalFrames=Math.round(i*t.totalFrames));t.frame=0;t.clearTO();t.timeOut=setTimeout(function(){t.update.call(t)},n.updateRate);r={type:"animationStart",chart:t.chart,image:this,lineSegment:t.lineSegment,direction:t.direction};t.fire(r.type,r)},clearTO:function(){this.timeOut&&clearTimeout(this.timeOut)},update:function(){var t=this;t.updatePosition();var u=Math.round(1e3/n.updateRate),r=t.chart.imagesSettings,i=t.easingFunction;i||(i=r.easingFunction);t.frame++;r=t.totalFrames;t.frame<=r?(i=i(0,t.frame,0,1,r),-1==t.direction&&(i=1-i),t.animatingAlong?t.positionOnLine=i:(r=t.initialX+(t.finalX-t.initialX)*i,isNaN(t.longitude)||(t.longitude=r),isNaN(t.left)||(t.left=r),isNaN(t.right)||(t.right=r),i=t.initialY+(t.finalY-t.initialY)*i,isNaN(t.latitude)||(t.latitude=i),isNaN(t.top)||(t.top=i),isNaN(t.bottom)||(t.bottom=i)),t.clearTO(),t.timeOut=setTimeout(function(){t.update.call(t)},u)):(u={type:"animationEnd",chart:t.chart,image:this,lineSegment:t.lineSegment,direction:t.direction},t.fire(u.type,u),t.animatingAlong&&(1==t.direction?t.lineSegment<t.line.segments-2?(t.lineSegment++,t.delayAnimateAlong(),t.positionOnLine=0):t.flipDirection?(t.direction=-1,t.extraAngle=180,t.delayAnimateAlong()):t.loop&&(t.delayAnimateAlong(),t.lineSegment=0):0<t.lineSegment?(t.lineSegment--,t.delayAnimateAlong(),t.positionOnLine=0):t.loop&&t.flipDirection?(t.direction=1,t.extraAngle=0,t.delayAnimateAlong()):t.loop&&t.delayAnimateAlong()))},delayAnimateAlong:function(){var n=this;n.clearTO();n.animateAlongLine&&(n.timeOut=setTimeout(function(){n.animateAlong.call(n)},1e3*n.chart.imagesSettings.pauseDuration))},fixToStage:function(){isNaN(this.longitude)||(this.left=this.chart.longitudeToStageX(this.longitude),this.longitude=void 0);isNaN(this.latitude)||(this.top=this.chart.latitudeToStageY(this.latitude),this.latitude=void 0);this.validate()},fixToMap:function(){isNaN(this.left)||(this.longitude=this.chart.stageXToLongitude(this.left),this.left=void 0);isNaN(this.top)||(this.latitude=this.chart.stageYToLatitude(this.top),this.top=void 0);this.validate()}})}(),function(){var n=window.AmCharts;n.degreesToRadians=function(n){return n/180*Math.PI};n.radiansToDegrees=function(n){return n/Math.PI*180};n.getColorFade=function(t,i,r){var f=n.hex2RGB(i),e,u;i=f[0];var o=f[1],f=f[2],u=n.hex2RGB(t);return t=u[0],e=u[1],u=u[2],t+=Math.round((i-t)*r),e+=Math.round((o-e)*r),u+=Math.round((f-u)*r),"rgb("+t+","+e+","+u+")"};n.hex2RGB=function(n){return[parseInt(n.substring(1,3),16),parseInt(n.substring(3,5),16),parseInt(n.substring(5,7),16)]};n.processDescriptionWindow=function(n,t){isNaN(t.descriptionWindowX)&&(t.descriptionWindowX=n.descriptionWindowX);isNaN(t.descriptionWindowY)&&(t.descriptionWindowY=n.descriptionWindowY);isNaN(t.descriptionWindowLeft)&&(t.descriptionWindowLeft=n.descriptionWindowLeft);isNaN(t.descriptionWindowRight)&&(t.descriptionWindowRight=n.descriptionWindowRight);isNaN(t.descriptionWindowTop)&&(t.descriptionWindowTop=n.descriptionWindowTop);isNaN(t.descriptionWindowBottom)&&(t.descriptionWindowBottom=n.descriptionWindowBottom);isNaN(t.descriptionWindowWidth)&&(t.descriptionWindowWidth=n.descriptionWindowWidth);isNaN(t.descriptionWindowHeight)&&(t.descriptionWindowHeight=n.descriptionWindowHeight)}}(),function(){var n=window.AmCharts;n.MapData=n.Class({inherits:n.MapObject,construct:function(){this.cname="MapData";n.MapData.base.construct.call(this);this.projection="mercator";this.topLatitude=90;this.bottomLatitude=-90;this.leftLongitude=-180;this.rightLongitude=180;this.zoomLevel=1;this.getAreasFromMap=!1}})}(),function(){var n=window.AmCharts;n.DescriptionWindow=n.Class({construct:function(){},show:function(n,t,i,r){var s=this,f=document.createElement("div"),e,o,u;f.style.position="absolute";e=n.classNamePrefix+"-description-";f.className="ammapDescriptionWindow "+e+"div";s.div=f;t.appendChild(f);o=".gif";n.svgIcons&&(o=".svg");u=document.createElement("img");u.className="ammapDescriptionWindowCloseButton "+e+"close-img";u.src=n.pathToImages+"xIcon"+o;u.style.cssFloat="right";u.style.cursor="pointer";u.onclick=function(){s.close()};u.onmouseover=function(){u.src=n.pathToImages+"xIconH"+o};u.onmouseout=function(){u.src=n.pathToImages+"xIcon"+o};f.appendChild(u);t=document.createElement("div");t.className="ammapDescriptionTitle "+e+"title-div";t.onmousedown=function(){s.div.style.zIndex=1e3};f.appendChild(t);r=document.createTextNode(r);t.appendChild(r);r=t.offsetHeight;t=document.createElement("div");t.className="ammapDescriptionText "+e+"text-div";t.style.maxHeight=s.maxHeight-r-20+"px";f.appendChild(t);t.innerHTML=i},close:function(){try{this.div.parentNode.removeChild(this.div)}catch(n){}}})}(),function(){var n=window.AmCharts;n.ValueLegend=n.Class({construct:function(t){this.cname="ValueLegend";this.enabled=!0;this.showAsGradient=!1;this.minValue=0;this.height=12;this.width=200;this.bottom=this.left=10;this.borderColor="#FFFFFF";this.borderAlpha=this.borderThickness=1;this.color="#000000";this.fontSize=11;n.applyTheme(this,t,this.cname)},init:function(t,i){var s;if(this.enabled){var e=t.areasSettings.color,c=t.areasSettings.colorSolid,l=t.colorSteps;n.remove(this.set);s=i.set();this.set=s;n.setCN(t,s,"value-legend");var r=0,h=this.minValue,o=this.fontSize,f=t.fontFamily,u=this.color;if(void 0==h&&(h=t.minValueReal),void 0!==h&&(r=n.text(i,h,u,f,o,"left"),r.translate(0,o/2-1),n.setCN(t,r,"value-legend-min-label"),s.push(r),r=r.getBBox().height),h=this.maxValue,void 0===h&&(h=t.maxValueReal),void 0!==h&&(r=n.text(i,h,u,f,o,"right"),r.translate(this.width,o/2-1),n.setCN(t,r,"value-legend-max-label"),s.push(r),r=r.getBBox().height),this.showAsGradient)e=n.rect(i,this.width,this.height,[e,c],1,this.borderThickness,this.borderColor,1,0,0),n.setCN(t,e,"value-legend-gradient"),e.translate(0,r),s.push(e);else for(o=this.width/l,f=0;f<l;f++)u=n.getColorFade(e,c,1*f/(l-1)),u=n.rect(i,o,this.height,u,1,this.borderThickness,this.borderColor,1),n.setCN(t,u,"value-legend-color"),n.setCN(t,u,"value-legend-color-"+f),u.translate(o*f,r),s.push(u);c=e=0;l=s.getBBox();r=t.getY(this.bottom,!0);o=t.getY(this.top);f=t.getX(this.right,!0);u=t.getX(this.left);isNaN(o)||(e=o);isNaN(r)||(e=r-l.height);isNaN(u)||(c=u);isNaN(f)||(c=f-l.width);s.translate(c,e)}else n.remove(this.set)}})}(),function(){var n=window.AmCharts;n.ObjectList=n.Class({construct:function(n){this.divId=n},init:function(n){this.chart=n;var t=this.divId;this.container&&(t=this.container);this.div="object"!=typeof t?document.getElementById(t):t;t=document.createElement("div");t.className="ammapObjectList "+n.classNamePrefix+"-object-list-div";this.div.appendChild(t);this.addObjects(n.dataProvider,t)},addObjects:function(n,t){var f=this.chart,u=document.createElement("ul"),i,r;if(u.className=f.classNamePrefix+"-object-list-ul",n.areas)for(i=0;i<n.areas.length;i++)r=n.areas[i],void 0===r.showInList&&(r.showInList=f.showAreasInList),this.addObject(r,u);if(n.images)for(i=0;i<n.images.length;i++)r=n.images[i],void 0===r.showInList&&(r.showInList=f.showImagesInList),this.addObject(r,u);if(n.lines)for(i=0;i<n.lines.length;i++)r=n.lines[i],void 0===r.showInList&&(r.showInList=f.showLinesInList),this.addObject(r,u);0<u.childNodes.length&&t.appendChild(u)},addObject:function(n,t){var f=this,e,u,r,i;n.showInList&&void 0!==n.title&&(e=f.chart,u=document.createElement("li"),u.className=e.classNamePrefix+"-object-list-li",r=n.titleTr,r||(r=n.title),r=document.createTextNode(r),i=document.createElement("a"),i.className=e.classNamePrefix+"-object-list-a",i.appendChild(r),u.appendChild(i),t.appendChild(u),this.addObjects(n,u),i.onmouseover=function(){f.chart.rollOverMapObject(n,!1)},i.onmouseout=function(){f.chart.rollOutMapObject(n)},i.onclick=function(){f.chart.clickMapObject(n)})}})}()