unified-node-open-mining-portal
Version:
An extremely efficient, highly scalable, all-in-one, easy to setup cryptocurrency mining pool
2 lines • 131 kB
JavaScript
/*! SmartAdmin - v1.5 - 2014-09-27 */function RGBColorParser(a){this.ok=!1,"#"==a.charAt(0)&&(a=a.substr(1,6)),a=a.replace(/ /g,""),a=a.toLowerCase();var b={"aliceblue":"f0f8ff","antiquewhite":"faebd7","aqua":"00ffff","aquamarine":"7fffd4","azure":"f0ffff","beige":"f5f5dc","bisque":"ffe4c4","black":"000000","blanchedalmond":"ffebcd","blue":"0000ff","blueviolet":"8a2be2","brown":"a52a2a","burlywood":"deb887","cadetblue":"5f9ea0","chartreuse":"7fff00","chocolate":"d2691e","coral":"ff7f50","cornflowerblue":"6495ed","cornsilk":"fff8dc","crimson":"dc143c","cyan":"00ffff","darkblue":"00008b","darkcyan":"008b8b","darkgoldenrod":"b8860b","darkgray":"a9a9a9","darkgreen":"006400","darkkhaki":"bdb76b","darkmagenta":"8b008b","darkolivegreen":"556b2f","darkorange":"ff8c00","darkorchid":"9932cc","darkred":"8b0000","darksalmon":"e9967a","darkseagreen":"8fbc8f","darkslateblue":"483d8b","darkslategray":"2f4f4f","darkturquoise":"00ced1","darkviolet":"9400d3","deeppink":"ff1493","deepskyblue":"00bfff","dimgray":"696969","dodgerblue":"1e90ff","feldspar":"d19275","firebrick":"b22222","floralwhite":"fffaf0","forestgreen":"228b22","fuchsia":"ff00ff","gainsboro":"dcdcdc","ghostwhite":"f8f8ff","gold":"ffd700","goldenrod":"daa520","gray":"808080","green":"008000","greenyellow":"adff2f","honeydew":"f0fff0","hotpink":"ff69b4","indianred":"cd5c5c","indigo":"4b0082","ivory":"fffff0","khaki":"f0e68c","lavender":"e6e6fa","lavenderblush":"fff0f5","lawngreen":"7cfc00","lemonchiffon":"fffacd","lightblue":"add8e6","lightcoral":"f08080","lightcyan":"e0ffff","lightgoldenrodyellow":"fafad2","lightgrey":"d3d3d3","lightgreen":"90ee90","lightpink":"ffb6c1","lightsalmon":"ffa07a","lightseagreen":"20b2aa","lightskyblue":"87cefa","lightslateblue":"8470ff","lightslategray":"778899","lightsteelblue":"b0c4de","lightyellow":"ffffe0","lime":"00ff00","limegreen":"32cd32","linen":"faf0e6","magenta":"ff00ff","maroon":"800000","mediumaquamarine":"66cdaa","mediumblue":"0000cd","mediumorchid":"ba55d3","mediumpurple":"9370d8","mediumseagreen":"3cb371","mediumslateblue":"7b68ee","mediumspringgreen":"00fa9a","mediumturquoise":"48d1cc","mediumvioletred":"c71585","midnightblue":"191970","mintcream":"f5fffa","mistyrose":"ffe4e1","moccasin":"ffe4b5","navajowhite":"ffdead","navy":"000080","oldlace":"fdf5e6","olive":"808000","olivedrab":"6b8e23","orange":"ffa500","orangered":"ff4500","orchid":"da70d6","palegoldenrod":"eee8aa","palegreen":"98fb98","paleturquoise":"afeeee","palevioletred":"d87093","papayawhip":"ffefd5","peachpuff":"ffdab9","peru":"cd853f","pink":"ffc0cb","plum":"dda0dd","powderblue":"b0e0e6","purple":"800080","red":"ff0000","rosybrown":"bc8f8f","royalblue":"4169e1","saddlebrown":"8b4513","salmon":"fa8072","sandybrown":"f4a460","seagreen":"2e8b57","seashell":"fff5ee","sienna":"a0522d","silver":"c0c0c0","skyblue":"87ceeb","slateblue":"6a5acd","slategray":"708090","snow":"fffafa","springgreen":"00ff7f","steelblue":"4682b4","tan":"d2b48c","teal":"008080","thistle":"d8bfd8","tomato":"ff6347","turquoise":"40e0d0","violet":"ee82ee","violetred":"d02090","wheat":"f5deb3","white":"ffffff","whitesmoke":"f5f5f5","yellow":"ffff00","yellowgreen":"9acd32"};for(var c in b)a==c&&(a=b[c]);for(var d=[{"re":/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,"example":["rgb(123, 234, 45)","rgb(255,234,245)"],"process":function(a){return[parseInt(a[1]),parseInt(a[2]),parseInt(a[3])]}},{"re":/^(\w{2})(\w{2})(\w{2})$/,"example":["#00ff00","336699"],"process":function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]}},{"re":/^(\w{1})(\w{1})(\w{1})$/,"example":["#fb0","f0f"],"process":function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)]}}],e=0;e<d.length;e++){var f=d[e].re,g=d[e].process,h=f.exec(a);if(h){var i=g(h);this.r=i[0],this.g=i[1],this.b=i[2],this.ok=!0}}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toHex=function(){var a=this.r.toString(16),b=this.g.toString(16),c=this.b.toString(16);return 1==a.length&&(a="0"+a),1==b.length&&(b="0"+b),1==c.length&&(c="0"+c),"#"+a+b+c}}function printStackTrace(a){a=a||{"guess":!0};var b=a.e||null,c=!!a.guess,d=new printStackTrace.implementation,e=d.run(b);return c?d.guessAnonymousFunctions(e):e}Date.ext={},Date.ext.util={},Date.ext.util.xPad=function(a,b,c){for("undefined"==typeof c&&(c=10);parseInt(a,10)<c&&c>1;c/=10)a=b.toString()+a;return a.toString()},Date.prototype.locale="en-GB",document.getElementsByTagName("html")&&document.getElementsByTagName("html")[0].lang&&(Date.prototype.locale=document.getElementsByTagName("html")[0].lang),Date.ext.locales={},Date.ext.locales.en={"a":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"A":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"b":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"B":["January","February","March","April","May","June","July","August","September","October","November","December"],"c":"%a %d %b %Y %T %Z","p":["AM","PM"],"P":["am","pm"],"x":"%d/%m/%y","X":"%T"},Date.ext.locales["en-US"]=Date.ext.locales.en,Date.ext.locales["en-US"].c="%a %d %b %Y %r %Z",Date.ext.locales["en-US"].x="%D",Date.ext.locales["en-US"].X="%r",Date.ext.locales["en-GB"]=Date.ext.locales.en,Date.ext.locales["en-AU"]=Date.ext.locales["en-GB"],Date.ext.formats={"a":function(a){return Date.ext.locales[a.locale].a[a.getDay()]},"A":function(a){return Date.ext.locales[a.locale].A[a.getDay()]},"b":function(a){return Date.ext.locales[a.locale].b[a.getMonth()]},"B":function(a){return Date.ext.locales[a.locale].B[a.getMonth()]},"c":"toLocaleString","C":function(a){return Date.ext.util.xPad(parseInt(a.getFullYear()/100,10),0)},"d":["getDate","0"],"e":["getDate"," "],"g":function(a){return Date.ext.util.xPad(parseInt(Date.ext.util.G(a)/100,10),0)},"G":function(a){var b=a.getFullYear(),c=parseInt(Date.ext.formats.V(a),10),d=parseInt(Date.ext.formats.W(a),10);return d>c?b++:0===d&&c>=52&&b--,b},"H":["getHours","0"],"I":function(a){var b=a.getHours()%12;return Date.ext.util.xPad(0===b?12:b,0)},"j":function(a){var b=a-new Date(""+a.getFullYear()+"/1/1 GMT");b+=6e4*a.getTimezoneOffset();var c=parseInt(b/6e4/60/24,10)+1;return Date.ext.util.xPad(c,0,100)},"m":function(a){return Date.ext.util.xPad(a.getMonth()+1,0)},"M":["getMinutes","0"],"p":function(a){return Date.ext.locales[a.locale].p[a.getHours()>=12?1:0]},"P":function(a){return Date.ext.locales[a.locale].P[a.getHours()>=12?1:0]},"S":["getSeconds","0"],"u":function(a){var b=a.getDay();return 0===b?7:b},"U":function(a){var b=parseInt(Date.ext.formats.j(a),10),c=6-a.getDay(),d=parseInt((b+c)/7,10);return Date.ext.util.xPad(d,0)},"V":function(a){var b=parseInt(Date.ext.formats.W(a),10),c=new Date(""+a.getFullYear()+"/1/1").getDay(),d=b+(c>4||1>=c?0:1);return 53==d&&new Date(""+a.getFullYear()+"/12/31").getDay()<4?d=1:0===d&&(d=Date.ext.formats.V(new Date(""+(a.getFullYear()-1)+"/12/31"))),Date.ext.util.xPad(d,0)},"w":"getDay","W":function(a){var b=parseInt(Date.ext.formats.j(a),10),c=7-Date.ext.formats.u(a),d=parseInt((b+c)/7,10);return Date.ext.util.xPad(d,0,10)},"y":function(a){return Date.ext.util.xPad(a.getFullYear()%100,0)},"Y":"getFullYear","z":function(a){var b=a.getTimezoneOffset(),c=Date.ext.util.xPad(parseInt(Math.abs(b/60),10),0),d=Date.ext.util.xPad(b%60,0);return(b>0?"-":"+")+c+d},"Z":function(a){return a.toString().replace(/^.*\(([^)]+)\)$/,"$1")},"%":function(){return"%"}},Date.ext.aggregates={"c":"locale","D":"%m/%d/%y","h":"%b","n":"\n","r":"%I:%M:%S %p","R":"%H:%M","t":" ","T":"%H:%M:%S","x":"locale","X":"locale"},Date.ext.aggregates.z=Date.ext.formats.z(new Date),Date.ext.aggregates.Z=Date.ext.formats.Z(new Date),Date.ext.unsupported={},Date.prototype.strftime=function(a){this.locale in Date.ext.locales||(this.locale=this.locale.replace(/-[a-zA-Z]+$/,"")in Date.ext.locales?this.locale.replace(/-[a-zA-Z]+$/,""):"en-GB");for(var b=this;a.match(/%[cDhnrRtTxXzZ]/);)a=a.replace(/%([cDhnrRtTxXzZ])/g,function(a,c){var d=Date.ext.aggregates[c];return"locale"==d?Date.ext.locales[b.locale][c]:d});var c=a.replace(/%([aAbBCdegGHIjmMpPSuUVwWyY%])/g,function(a,c){var d=Date.ext.formats[c];return"string"==typeof d?b[d]():"function"==typeof d?d.call(b,b):"object"==typeof d&&"string"==typeof d[0]?Date.ext.util.xPad(b[d[0]](),d[1]):c});return b=null,c},printStackTrace.implementation=function(){},printStackTrace.implementation.prototype={"run":function(a,b){return a=a||this.createException(),b=b||this.mode(a),"other"===b?this.other(arguments.callee):this[b](a)},"createException":function(){try{this.undef()}catch(a){return a}},"mode":function(a){return a.arguments&&a.stack?"chrome":"string"==typeof a.message&&"undefined"!=typeof window&&window.opera?a.stacktrace?a.message.indexOf("\n")>-1&&a.message.split("\n").length>a.stacktrace.split("\n").length?"opera9":a.stack?a.stacktrace.indexOf("called from line")<0?"opera10b":"opera11":"opera10a":"opera9":a.stack?"firefox":"other"},"instrumentFunction":function(a,b,c){a=a||window;var d=a[b];a[b]=function(){return c.call(this,printStackTrace().slice(4)),a[b]._instrumented.apply(this,arguments)},a[b]._instrumented=d},"deinstrumentFunction":function(a,b){a[b].constructor===Function&&a[b]._instrumented&&a[b]._instrumented.constructor===Function&&(a[b]=a[b]._instrumented)},"chrome":function(a){var b=(a.stack+"\n").replace(/^\S[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^([^\(]+?)([\n$])/gm,"{anonymous}()@$1$2").replace(/^Object.<anonymous>\s*\(([^\)]+)\)/gm,"{anonymous}()@$1").split("\n");return b.pop(),b},"firefox":function(a){return a.stack.replace(/(?:\n@:0)?\s+$/m,"").replace(/^\(/gm,"{anonymous}(").split("\n")},"opera11":function(a){for(var b="{anonymous}",c=/^.*line (\d+), column (\d+)(?: in (.+))? in (\S+):$/,d=a.stacktrace.split("\n"),e=[],f=0,g=d.length;g>f;f+=2){var h=c.exec(d[f]);if(h){var i=h[4]+":"+h[1]+":"+h[2],j=h[3]||"global code";j=j.replace(/<anonymous function: (\S+)>/,"$1").replace(/<anonymous function>/,b),e.push(j+"@"+i+" -- "+d[f+1].replace(/^\s+/,""))}}return e},"opera10b":function(a){for(var b=/^(.*)@(.+):(\d+)$/,c=a.stacktrace.split("\n"),d=[],e=0,f=c.length;f>e;e++){var g=b.exec(c[e]);if(g){var h=g[1]?g[1]+"()":"global code";d.push(h+"@"+g[2]+":"+g[3])}}return d},"opera10a":function(a){for(var b="{anonymous}",c=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,d=a.stacktrace.split("\n"),e=[],f=0,g=d.length;g>f;f+=2){var h=c.exec(d[f]);if(h){var i=h[3]||b;e.push(i+"()@"+h[2]+":"+h[1]+" -- "+d[f+1].replace(/^\s+/,""))}}return e},"opera9":function(a){for(var b="{anonymous}",c=/Line (\d+).*script (?:in )?(\S+)/i,d=a.message.split("\n"),e=[],f=2,g=d.length;g>f;f+=2){var h=c.exec(d[f]);h&&e.push(b+"()@"+h[2]+":"+h[1]+" -- "+d[f+1].replace(/^\s+/,""))}return e},"other":function(a){for(var b,c,d="{anonymous}",e=/function\s*([\w\-$]+)?\s*\(/i,f=[],g=10;a&&f.length<g;)b=e.test(a.toString())?RegExp.$1||d:d,c=Array.prototype.slice.call(a.arguments||[]),f[f.length]=b+"("+this.stringifyArguments(c)+")",a=a.caller;return f},"stringifyArguments":function(a){for(var b=[],c=Array.prototype.slice,d=0;d<a.length;++d){var e=a[d];void 0===e?b[d]="undefined":null===e?b[d]="null":e.constructor&&(e.constructor===Array?b[d]=e.length<3?"["+this.stringifyArguments(e)+"]":"["+this.stringifyArguments(c.call(e,0,1))+"..."+this.stringifyArguments(c.call(e,-1))+"]":e.constructor===Object?b[d]="#object":e.constructor===Function?b[d]="#function":e.constructor===String?b[d]='"'+e+'"':e.constructor===Number&&(b[d]=e))}return b.join(",")},"sourceCache":{},"ajax":function(a){var b=this.createXMLHTTPObject();if(b)try{return b.open("GET",a,!1),b.send(null),b.responseText}catch(c){}return""},"createXMLHTTPObject":function(){for(var a,b=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}],c=0;c<b.length;c++)try{return a=b[c](),this.createXMLHTTPObject=b[c],a}catch(d){}},"isSameDomain":function(a){return-1!==a.indexOf(location.hostname)},"getSource":function(a){return a in this.sourceCache||(this.sourceCache[a]=this.ajax(a).split("\n")),this.sourceCache[a]},"guessAnonymousFunctions":function(a){for(var b=0;b<a.length;++b){var c=/\{anonymous\}\(.*\)@(.*)/,d=/^(.*?)(?::(\d+))(?::(\d+))?(?: -- .+)?$/,e=a[b],f=c.exec(e);if(f){var g=d.exec(f[1]),h=g[1],i=g[2],j=g[3]||0;if(h&&this.isSameDomain(h)&&i){var k=this.guessAnonymousFunction(h,i,j);a[b]=e.replace("{anonymous}",k)}}}return a},"guessAnonymousFunction":function(a,b){var c;try{c=this.findFunctionName(this.getSource(a),b)}catch(d){c="getSource failed with url: "+a+", exception: "+d.toString()}return c},"findFunctionName":function(a,b){for(var c,d,e,f=/function\s+([^(]*?)\s*\(([^)]*)\)/,g=/['"]?([0-9A-Za-z_]+)['"]?\s*[:=]\s*function\b/,h=/['"]?([0-9A-Za-z_]+)['"]?\s*[:=]\s*(?:eval|new Function)\b/,i="",j=Math.min(b,20),k=0;j>k;++k)if(c=a[b-k-1],e=c.indexOf("//"),e>=0&&(c=c.substr(0,e)),c){if(i=c+i,d=g.exec(i),d&&d[1])return d[1];if(d=f.exec(i),d&&d[1])return d[1];if(d=h.exec(i),d&&d[1])return d[1]}return"(?)"}},CanvasRenderingContext2D.prototype.installPattern=function(a){if("undefined"!=typeof this.isPatternInstalled)throw"Must un-install old line pattern before installing a new one.";this.isPatternInstalled=!0;var b=[0,0],c=[],d=this.beginPath,e=this.lineTo,f=this.moveTo,g=this.stroke;this.uninstallPattern=function(){this.beginPath=d,this.lineTo=e,this.moveTo=f,this.stroke=g,this.uninstallPattern=void 0,this.isPatternInstalled=void 0},this.beginPath=function(){c=[],d.call(this)},this.moveTo=function(a,b){c.push([[a,b]]),f.call(this,a,b)},this.lineTo=function(a,b){var d=c[c.length-1];d.push([a,b])},this.stroke=function(){if(0===c.length)return void g.call(this);for(var d=0;d<c.length;d++)for(var h=c[d],i=h[0][0],j=h[0][1],k=1;k<h.length;k++){var l=h[k][0],m=h[k][1];this.save();var n=l-i,o=m-j,p=Math.sqrt(n*n+o*o),q=Math.atan2(o,n);this.translate(i,j),f.call(this,0,0),this.rotate(q);for(var r=b[0],s=0;p>s;){var t=a[r];s+=b[1]?b[1]:t,s>p?(b=[r,s-p],s=p):b=[(r+1)%a.length,0],r%2===0?e.call(this,s,0):f.call(this,s,0),r=(r+1)%a.length}this.restore(),i=l,j=m}g.call(this),c=[]}},CanvasRenderingContext2D.prototype.uninstallPattern=function(){throw"Must install a line pattern before uninstalling it."};var DygraphOptions=function(){var a=function(a){this.dygraph_=a,this.yAxes_=[],this.xAxis_={},this.series_={},this.global_=this.dygraph_.attrs_,this.user_=this.dygraph_.user_attrs_||{},this.labels_=[],this.highlightSeries_=this.get("highlightSeriesOpts")||{},this.reparseSeries()};return a.AXIS_STRING_MAPPINGS_={"y":0,"Y":0,"y1":0,"Y1":0,"y2":1,"Y2":1},a.axisToIndex_=function(b){if("string"==typeof b){if(a.AXIS_STRING_MAPPINGS_.hasOwnProperty(b))return a.AXIS_STRING_MAPPINGS_[b];throw"Unknown axis : "+b}if("number"==typeof b){if(0===b||1===b)return b;throw"Dygraphs only supports two y-axes, indexed from 0-1."}if(b)throw"Unknown axis : "+b;return 0},a.prototype.reparseSeries=function(){var b=this.get("labels");if(b){this.labels_=b.slice(1),this.yAxes_=[{"series":[],"options":{}}],this.xAxis_={"options":{}},this.series_={};var c=!this.user_.series;if(c){for(var d=0,e=0;e<this.labels_.length;e++){var f=this.labels_[e],g=this.user_[f]||{},h=0,i=g.axis;"object"==typeof i&&(h=++d,this.yAxes_[h]={"series":[f],"options":i}),i||this.yAxes_[0].series.push(f),this.series_[f]={"idx":e,"yAxis":h,"options":g}}for(var e=0;e<this.labels_.length;e++){var f=this.labels_[e],g=this.series_[f].options,i=g.axis;if("string"==typeof i){if(!this.series_.hasOwnProperty(i))return void Dygraph.error("Series "+f+" wants to share a y-axis with series "+i+", which does not define its own axis.");var h=this.series_[i].yAxis;this.series_[f].yAxis=h,this.yAxes_[h].series.push(f)}}}else for(var e=0;e<this.labels_.length;e++){var f=this.labels_[e],g=this.user_.series[f]||{},h=a.axisToIndex_(g.axis);this.series_[f]={"idx":e,"yAxis":h,"options":g},this.yAxes_[h]?this.yAxes_[h].series.push(f):this.yAxes_[h]={"series":[f],"options":{}}}var j=this.user_.axes||{};Dygraph.update(this.yAxes_[0].options,j.y||{}),this.yAxes_.length>1&&Dygraph.update(this.yAxes_[1].options,j.y2||{}),Dygraph.update(this.xAxis_.options,j.x||{})}},a.prototype.get=function(a){var b=this.getGlobalUser_(a);return null!==b?b:this.getGlobalDefault_(a)},a.prototype.getGlobalUser_=function(a){return this.user_.hasOwnProperty(a)?this.user_[a]:null},a.prototype.getGlobalDefault_=function(a){return this.global_.hasOwnProperty(a)?this.global_[a]:Dygraph.DEFAULT_ATTRS.hasOwnProperty(a)?Dygraph.DEFAULT_ATTRS[a]:null},a.prototype.getForAxis=function(a,b){var c,d;if("number"==typeof b)c=b,d=0===c?"y":"y2";else{if("y1"==b&&(b="y"),"y"==b)c=0;else if("y2"==b)c=1;else{if("x"!=b)throw"Unknown axis "+b;c=-1}d=b}var e=-1==c?this.xAxis_:this.yAxes_[c];if(e){var f=e.options;if(f.hasOwnProperty(a))return f[a]}var g=this.getGlobalUser_(a);if(null!==g)return g;var h=Dygraph.DEFAULT_ATTRS.axes[d];return h.hasOwnProperty(a)?h[a]:this.getGlobalDefault_(a)},a.prototype.getForSeries=function(a,b){if(b===this.dygraph_.getHighlightSeries()&&this.highlightSeries_.hasOwnProperty(a))return this.highlightSeries_[a];if(!this.series_.hasOwnProperty(b))throw"Unknown series: "+b;var c=this.series_[b],d=c.options;return d.hasOwnProperty(a)?d[a]:this.getForAxis(a,c.yAxis)},a.prototype.numAxes=function(){return this.yAxes_.length},a.prototype.axisForSeries=function(a){return this.series_[a].yAxis},a.prototype.axisOptions=function(a){return this.yAxes_[a].options},a.prototype.seriesForAxis=function(a){return this.yAxes_[a].series},a.prototype.seriesNames=function(){return this.labels_},a}(),DygraphLayout=function(a){this.dygraph_=a,this.points=[],this.setNames=[],this.annotations=[],this.yAxes_=null,this.xTicks_=null,this.yTicks_=null};DygraphLayout.prototype.attr_=function(a){return this.dygraph_.attr_(a)},DygraphLayout.prototype.addDataset=function(a,b){this.points.push(b),this.setNames.push(a)},DygraphLayout.prototype.getPlotArea=function(){return this.area_},DygraphLayout.prototype.computePlotArea=function(){var a={"x":0,"y":0};a.w=this.dygraph_.width_-a.x-this.attr_("rightGap"),a.h=this.dygraph_.height_;var b={"chart_div":this.dygraph_.graphDiv,"reserveSpaceLeft":function(b){var c={"x":a.x,"y":a.y,"w":b,"h":a.h};return a.x+=b,a.w-=b,c},"reserveSpaceRight":function(b){var c={"x":a.x+a.w-b,"y":a.y,"w":b,"h":a.h};return a.w-=b,c},"reserveSpaceTop":function(b){var c={"x":a.x,"y":a.y,"w":a.w,"h":b};return a.y+=b,a.h-=b,c},"reserveSpaceBottom":function(b){var c={"x":a.x,"y":a.y+a.h-b,"w":a.w,"h":b};return a.h-=b,c},"chartRect":function(){return{"x":a.x,"y":a.y,"w":a.w,"h":a.h}}};this.dygraph_.cascadeEvents_("layout",b),this.area_=a},DygraphLayout.prototype.setAnnotations=function(a){this.annotations=[];for(var b=this.attr_("xValueParser")||function(a){return a},c=0;c<a.length;c++){var d={};if(!a[c].xval&&void 0===a[c].x)return void this.dygraph_.error("Annotations must have an 'x' property");if(a[c].icon&&(!a[c].hasOwnProperty("width")||!a[c].hasOwnProperty("height")))return void this.dygraph_.error("Must set width and height when setting annotation.icon property");Dygraph.update(d,a[c]),d.xval||(d.xval=b(d.x)),this.annotations.push(d)}},DygraphLayout.prototype.setXTicks=function(a){this.xTicks_=a},DygraphLayout.prototype.setYAxes=function(a){this.yAxes_=a},DygraphLayout.prototype.evaluate=function(){this._evaluateLimits(),this._evaluateLineCharts(),this._evaluateLineTicks(),this._evaluateAnnotations()},DygraphLayout.prototype._evaluateLimits=function(){var a=this.dygraph_.xAxisRange();this.minxval=a[0],this.maxxval=a[1];var b=a[1]-a[0];this.xscale=0!==b?1/b:1;for(var c=0;c<this.yAxes_.length;c++){var d=this.yAxes_[c];d.minyval=d.computedValueRange[0],d.maxyval=d.computedValueRange[1],d.yrange=d.maxyval-d.minyval,d.yscale=0!==d.yrange?1/d.yrange:1,d.g.attr_("logscale")&&(d.ylogrange=Dygraph.log10(d.maxyval)-Dygraph.log10(d.minyval),d.ylogscale=0!==d.ylogrange?1/d.ylogrange:1,(!isFinite(d.ylogrange)||isNaN(d.ylogrange))&&d.g.error("axis "+c+" of graph at "+d.g+" can't be displayed in log scale for range ["+d.minyval+" - "+d.maxyval+"]"))}},DygraphLayout._calcYNormal=function(a,b,c){return c?1-(Dygraph.log10(b)-Dygraph.log10(a.minyval))*a.ylogscale:1-(b-a.minyval)*a.yscale},DygraphLayout.prototype._evaluateLineCharts=function(){for(var a=this.attr_("connectSeparatedPoints"),b=this.attr_("stackedGraph"),c=this.attr_("errorBars")||this.attr_("customBars"),d=0;d<this.points.length;d++)for(var e=this.points[d],f=this.setNames[d],g=this.dygraph_.axisPropertiesForSeries(f),h=this.dygraph_.attributes_.getForSeries("logscale",f),i=0;i<e.length;i++){var j=e[i];j.x=(j.xval-this.minxval)*this.xscale;var k=j.yval;b&&(j.y_stacked=DygraphLayout._calcYNormal(g,j.yval_stacked,h),null===k||isNaN(k)||(k=j.yval_stacked)),null===k&&(k=0/0,a||(j.yval=0/0)),j.y=DygraphLayout._calcYNormal(g,k,h),c&&(j.y_top=DygraphLayout._calcYNormal(g,k-j.yval_minus,h),j.y_bottom=DygraphLayout._calcYNormal(g,k+j.yval_plus,h))}},DygraphLayout.parseFloat_=function(a){return null===a?0/0:a},DygraphLayout.prototype._evaluateLineTicks=function(){var a,b,c,d;for(this.xticks=[],a=0;a<this.xTicks_.length;a++)b=this.xTicks_[a],c=b.label,d=this.xscale*(b.v-this.minxval),d>=0&&1>=d&&this.xticks.push([d,c]);for(this.yticks=[],a=0;a<this.yAxes_.length;a++)for(var e=this.yAxes_[a],f=0;f<e.ticks.length;f++)b=e.ticks[f],c=b.label,d=this.dygraph_.toPercentYCoord(b.v,a),d>=0&&1>=d&&this.yticks.push([a,d,c])},DygraphLayout.prototype._evaluateAnnotations=function(){var a,b={};for(a=0;a<this.annotations.length;a++){var c=this.annotations[a];b[c.xval+","+c.series]=c}if(this.annotated_points=[],this.annotations&&this.annotations.length)for(var d=0;d<this.points.length;d++){var e=this.points[d];for(a=0;a<e.length;a++){var f=e[a],g=f.xval+","+f.name;g in b&&(f.annotation=b[g],this.annotated_points.push(f))}}},DygraphLayout.prototype.removeAllDatasets=function(){delete this.points,delete this.setNames,delete this.setPointsLengths,delete this.setPointsOffsets,this.points=[],this.setNames=[],this.setPointsLengths=[],this.setPointsOffsets=[]};var DygraphCanvasRenderer=function(a,b,c,d){if(this.dygraph_=a,this.layout=d,this.element=b,this.elementContext=c,this.container=this.element.parentNode,this.height=this.element.height,this.width=this.element.width,!this.isIE&&!DygraphCanvasRenderer.isSupported(this.element))throw"Canvas is not supported.";if(this.area=d.getPlotArea(),this.container.style.position="relative",this.container.style.width=this.width+"px",this.dygraph_.isUsingExcanvas_)this._createIEClipArea();else if(!Dygraph.isAndroid()){var e=this.dygraph_.canvas_ctx_;e.beginPath(),e.rect(this.area.x,this.area.y,this.area.w,this.area.h),e.clip(),e=this.dygraph_.hidden_ctx_,e.beginPath(),e.rect(this.area.x,this.area.y,this.area.w,this.area.h),e.clip()}};DygraphCanvasRenderer.prototype.attr_=function(a,b){return this.dygraph_.attr_(a,b)},DygraphCanvasRenderer.prototype.clear=function(){var a;if(this.isIE)try{this.clearDelay&&(this.clearDelay.cancel(),this.clearDelay=null),a=this.elementContext}catch(b){return}a=this.elementContext,a.clearRect(0,0,this.width,this.height)},DygraphCanvasRenderer.isSupported=function(a){var b=null;try{b="undefined"==typeof a||null===a?document.createElement("canvas"):a,b.getContext("2d")}catch(c){var d=navigator.appVersion.match(/MSIE (\d\.\d)/),e=-1!=navigator.userAgent.toLowerCase().indexOf("opera");return!d||d[1]<6||e?!1:!0}return!0},DygraphCanvasRenderer.prototype.render=function(){this._updatePoints(),this._renderLineChart()},DygraphCanvasRenderer.prototype._createIEClipArea=function(){function a(a){if(0!==a.w&&0!==a.h){var d=document.createElement("div");d.className=b,d.style.backgroundColor=e,d.style.position="absolute",d.style.left=a.x+"px",d.style.top=a.y+"px",d.style.width=a.w+"px",d.style.height=a.h+"px",c.appendChild(d)}}for(var b="dygraph-clip-div",c=this.dygraph_.graphDiv,d=c.childNodes.length-1;d>=0;d--)c.childNodes[d].className==b&&c.removeChild(c.childNodes[d]);for(var e=document.bgColor,f=this.dygraph_.graphDiv;f!=document;){var g=f.currentStyle.backgroundColor;if(g&&"transparent"!=g){e=g;break}f=f.parentNode}var h=this.area;a({"x":0,"y":0,"w":h.x,"h":this.height}),a({"x":h.x,"y":0,"w":this.width-h.x,"h":h.y}),a({"x":h.x+h.w,"y":0,"w":this.width-h.x-h.w,"h":this.height}),a({"x":h.x,"y":h.y+h.h,"w":this.width-h.x,"h":this.height-h.h-h.y})},DygraphCanvasRenderer._getIteratorPredicate=function(a){return a?DygraphCanvasRenderer._predicateThatSkipsEmptyPoints:null},DygraphCanvasRenderer._predicateThatSkipsEmptyPoints=function(a,b){return null!==a[b].yval},DygraphCanvasRenderer._drawStyledLine=function(a,b,c,d,e,f,g){var h=a.dygraph,i=h.getOption("stepPlot",a.setName);Dygraph.isArrayLike(d)||(d=null);var j=h.getOption("drawGapEdgePoints",a.setName),k=a.points,l=Dygraph.createIterator(k,0,k.length,DygraphCanvasRenderer._getIteratorPredicate(h.getOption("connectSeparatedPoints"))),m=d&&d.length>=2,n=a.drawingContext;n.save(),m&&n.installPattern(d);var o=DygraphCanvasRenderer._drawSeries(a,l,c,g,e,j,i,b);DygraphCanvasRenderer._drawPointsOnLine(a,o,f,b,g),m&&n.uninstallPattern(),n.restore()},DygraphCanvasRenderer._drawSeries=function(a,b,c,d,e,f,g,h){var i,j,k=null,l=null,m=null,n=[],o=!0,p=a.drawingContext;p.beginPath(),p.strokeStyle=h,p.lineWidth=c;for(var q=b.array_,r=b.end_,s=b.predicate_,t=b.start_;r>t;t++){if(j=q[t],s){for(;r>t&&!s(q,t);)t++;if(t==r)break;j=q[t]}if(null===j.canvasy||j.canvasy!=j.canvasy)g&&null!==k&&(p.moveTo(k,l),p.lineTo(j.canvasx,l)),k=l=null;else{if(i=!1,f||!k){b.nextIdx_=t,b.next(),m=b.hasNext?b.peek.canvasy:null;var u=null===m||m!=m;i=!k&&u,f&&(!o&&!k||b.hasNext&&u)&&(i=!0)}null!==k?c&&(g&&(p.moveTo(k,l),p.lineTo(j.canvasx,l)),p.lineTo(j.canvasx,j.canvasy)):p.moveTo(j.canvasx,j.canvasy),(e||i)&&n.push([j.canvasx,j.canvasy,j.idx]),k=j.canvasx,l=j.canvasy}o=!1}return p.stroke(),n},DygraphCanvasRenderer._drawPointsOnLine=function(a,b,c,d,e){for(var f=a.drawingContext,g=0;g<b.length;g++){var h=b[g];f.save(),c(a.dygraph,a.setName,f,h[0],h[1],d,e,h[2]),f.restore()}},DygraphCanvasRenderer.prototype._updatePoints=function(){for(var a=this.layout.points,b=a.length;b--;)for(var c=a[b],d=c.length;d--;){var e=c[d];e.canvasx=this.area.w*e.x+this.area.x,e.canvasy=this.area.h*e.y+this.area.y}},DygraphCanvasRenderer.prototype._renderLineChart=function(a,b){var c,d,e=b||this.elementContext,f=this.layout.points,g=this.layout.setNames;this.colors=this.dygraph_.colorsMap_;var h=this.attr_("plotter"),i=h;Dygraph.isArrayLike(i)||(i=[i]);var j={};for(c=0;c<g.length;c++){d=g[c];var k=this.attr_("plotter",d);k!=h&&(j[d]=k)}for(c=0;c<i.length;c++)for(var l=i[c],m=c==i.length-1,n=0;n<f.length;n++)if(d=g[n],!a||d==a){var o=f[n],p=l;if(d in j){if(!m)continue;p=j[d]}var q=this.colors[d],r=this.dygraph_.getOption("strokeWidth",d);e.save(),e.strokeStyle=q,e.lineWidth=r,p({"points":o,"setName":d,"drawingContext":e,"color":q,"strokeWidth":r,"dygraph":this.dygraph_,"axis":this.dygraph_.axisPropertiesForSeries(d),"plotArea":this.area,"seriesIndex":n,"seriesCount":f.length,"singleSeriesName":a,"allSeriesPoints":f}),e.restore()}},DygraphCanvasRenderer._Plotters={"linePlotter":function(a){DygraphCanvasRenderer._linePlotter(a)},"fillPlotter":function(a){DygraphCanvasRenderer._fillPlotter(a)},"errorPlotter":function(a){DygraphCanvasRenderer._errorPlotter(a)}},DygraphCanvasRenderer._linePlotter=function(a){var b=a.dygraph,c=a.setName,d=a.strokeWidth,e=b.getOption("strokeBorderWidth",c),f=b.getOption("drawPointCallback",c)||Dygraph.Circles.DEFAULT,g=b.getOption("strokePattern",c),h=b.getOption("drawPoints",c),i=b.getOption("pointSize",c);e&&d&&DygraphCanvasRenderer._drawStyledLine(a,b.getOption("strokeBorderColor",c),d+2*e,g,h,f,i),DygraphCanvasRenderer._drawStyledLine(a,a.color,d,g,h,f,i)},DygraphCanvasRenderer._errorPlotter=function(a){var b=a.dygraph,c=a.setName,d=b.getOption("errorBars")||b.getOption("customBars");if(d){var e=b.getOption("fillGraph",c);e&&b.warn("Can't use fillGraph option with error bars");var f,g=a.drawingContext,h=a.color,i=b.getOption("fillAlpha",c),j=b.getOption("stepPlot",c),k=a.points,l=Dygraph.createIterator(k,0,k.length,DygraphCanvasRenderer._getIteratorPredicate(b.getOption("connectSeparatedPoints"))),m=0/0,n=0/0,o=[-1,-1],p=new RGBColorParser(h),q="rgba("+p.r+","+p.g+","+p.b+","+i+")";g.fillStyle=q,g.beginPath();for(var r=function(a){return null===a||void 0===a||isNaN(a)};l.hasNext;){var s=l.next();!j&&r(s.y)||j&&!isNaN(n)&&r(n)?m=0/0:(j?(f=[s.y_bottom,s.y_top],n=s.y):f=[s.y_bottom,s.y_top],f[0]=a.plotArea.h*f[0]+a.plotArea.y,f[1]=a.plotArea.h*f[1]+a.plotArea.y,isNaN(m)||(j?(g.moveTo(m,o[0]),g.lineTo(s.canvasx,o[0]),g.lineTo(s.canvasx,o[1])):(g.moveTo(m,o[0]),g.lineTo(s.canvasx,f[0]),g.lineTo(s.canvasx,f[1])),g.lineTo(m,o[1]),g.closePath()),o=f,m=s.canvasx)}g.fill()}},DygraphCanvasRenderer._fillPlotter=function(a){if(!a.singleSeriesName&&0===a.seriesIndex){for(var b=a.dygraph,c=b.getLabels().slice(1),d=c.length;d>=0;d--)b.visibility()[d]||c.splice(d,1);var e=function(){for(var a=0;a<c.length;a++)if(b.getOption("fillGraph",c[a]))return!0;return!1}();if(e)for(var f,g,h=a.drawingContext,i=a.plotArea,j=a.allSeriesPoints,k=j.length,l=b.getOption("fillAlpha"),m=b.getOption("stackedGraph"),n=b.getColors(),o={},p=k-1;p>=0;p--){var q=c[p];if(b.getOption("fillGraph",q)){var r=b.getOption("stepPlot",q),s=n[p],t=b.axisPropertiesForSeries(q),u=1+t.minyval*t.yscale;0>u?u=0:u>1&&(u=1),u=i.h*u+i.y;var v,w=j[p],x=Dygraph.createIterator(w,0,w.length,DygraphCanvasRenderer._getIteratorPredicate(b.getOption("connectSeparatedPoints"))),y=0/0,z=[-1,-1],A=new RGBColorParser(s),B="rgba("+A.r+","+A.g+","+A.b+","+l+")";h.fillStyle=B,h.beginPath();for(var C,D=!0;x.hasNext;){var E=x.next();if(Dygraph.isOK(E.y)){if(m){if(!D&&C==E.xval)continue;D=!1,C=E.xval,f=o[E.canvasx];var F;F=void 0===f?u:g?f[0]:f,v=[E.canvasy,F],o[E.canvasx]=r?-1===z[0]?[E.canvasy,u]:[E.canvasy,z[0]]:E.canvasy}else v=[E.canvasy,u];isNaN(y)||(h.moveTo(y,z[0]),r?h.lineTo(E.canvasx,z[0]):h.lineTo(E.canvasx,v[0]),g&&f?h.lineTo(E.canvasx,f[1]):h.lineTo(E.canvasx,v[1]),h.lineTo(y,z[1]),h.closePath()),z=v,y=E.canvasx}else y=0/0,null===E.y_stacked||isNaN(E.y_stacked)||(o[E.canvasx]=i.h*E.y_stacked+i.y)}g=r,h.fill()}}}};var Dygraph=function(a,b,c,d){this.is_initial_draw_=!0,this.readyFns_=[],void 0!==d?(this.warn("Using deprecated four-argument dygraph constructor"),this.__old_init__(a,b,c,d)):this.__init__(a,b,c)};Dygraph.NAME="Dygraph",Dygraph.VERSION="1.0.1",Dygraph.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"},Dygraph.toString=function(){return this.__repr__()},Dygraph.DEFAULT_ROLL_PERIOD=1,Dygraph.DEFAULT_WIDTH=480,Dygraph.DEFAULT_HEIGHT=320,Dygraph.ANIMATION_STEPS=12,Dygraph.ANIMATION_DURATION=200,Dygraph.KMB_LABELS=["K","M","B","T","Q"],Dygraph.KMG2_BIG_LABELS=["k","M","G","T","P","E","Z","Y"],Dygraph.KMG2_SMALL_LABELS=["m","u","n","p","f","a","z","y"],Dygraph.numberValueFormatter=function(a,b){var c=b("sigFigs");if(null!==c)return Dygraph.floatFormat(a,c);var d,e=b("digitsAfterDecimal"),f=b("maxNumberWidth"),g=b("labelsKMB"),h=b("labelsKMG2");if(d=0!==a&&(Math.abs(a)>=Math.pow(10,f)||Math.abs(a)<Math.pow(10,-e))?a.toExponential(e):""+Dygraph.round_(a,e),g||h){var i,j=[],k=[];g&&(i=1e3,j=Dygraph.KMB_LABELS),h&&(g&&Dygraph.warn("Setting both labelsKMB and labelsKMG2. Pick one!"),i=1024,j=Dygraph.KMG2_BIG_LABELS,k=Dygraph.KMG2_SMALL_LABELS);for(var l=Math.abs(a),m=Dygraph.pow(i,j.length),n=j.length-1;n>=0;n--,m/=i)if(l>=m){d=Dygraph.round_(a/m,e)+j[n];break}if(h){var o=String(a.toExponential()).split("e-");2===o.length&&o[1]>=3&&o[1]<=24&&(d=o[1]%3>0?Dygraph.round_(o[0]/Dygraph.pow(10,o[1]%3),e):Number(o[0]).toFixed(2),d+=k[Math.floor(o[1]/3)-1])}}return d},Dygraph.numberAxisLabelFormatter=function(a,b,c,d){return Dygraph.numberValueFormatter(a,c,d)},Dygraph.dateString_=function(a){var b=Dygraph.zeropad,c=new Date(a),d=""+c.getFullYear(),e=b(c.getMonth()+1),f=b(c.getDate()),g="",h=3600*c.getHours()+60*c.getMinutes()+c.getSeconds();
return h&&(g=" "+Dygraph.hmsString_(a)),d+"/"+e+"/"+f+g},Dygraph.dateAxisFormatter=function(a,b){if(b>=Dygraph.DECADAL)return a.strftime("%Y");if(b>=Dygraph.MONTHLY)return a.strftime("%b %y");var c=3600*a.getHours()+60*a.getMinutes()+a.getSeconds()+a.getMilliseconds();return 0===c||b>=Dygraph.DAILY?new Date(a.getTime()+36e5).strftime("%d%b"):Dygraph.hmsString_(a.getTime())},Dygraph.Plotters=DygraphCanvasRenderer._Plotters,Dygraph.DEFAULT_ATTRS={"highlightCircleSize":3,"highlightSeriesOpts":null,"highlightSeriesBackgroundAlpha":.5,"labelsDivWidth":250,"labelsDivStyles":{},"labelsSeparateLines":!1,"labelsShowZeroValues":!0,"labelsKMB":!1,"labelsKMG2":!1,"showLabelsOnHighlight":!0,"digitsAfterDecimal":2,"maxNumberWidth":6,"sigFigs":null,"strokeWidth":1,"strokeBorderWidth":0,"strokeBorderColor":"white","axisTickSize":3,"axisLabelFontSize":14,"xAxisLabelWidth":50,"yAxisLabelWidth":50,"rightGap":5,"showRoller":!1,"xValueParser":Dygraph.dateParser,"delimiter":",","sigma":2,"errorBars":!1,"fractions":!1,"wilsonInterval":!0,"customBars":!1,"fillGraph":!1,"fillAlpha":.15,"connectSeparatedPoints":!1,"stackedGraph":!1,"stackedGraphNaNFill":"all","hideOverlayOnMouseOut":!0,"legend":"onmouseover","stepPlot":!1,"avoidMinZero":!1,"xRangePad":0,"yRangePad":null,"drawAxesAtZero":!1,"titleHeight":28,"xLabelHeight":18,"yLabelWidth":18,"drawXAxis":!0,"drawYAxis":!0,"axisLineColor":"black","axisLineWidth":.3,"gridLineWidth":.3,"axisLabelColor":"black","axisLabelFont":"Arial","axisLabelWidth":50,"drawYGrid":!0,"drawXGrid":!0,"gridLineColor":"rgb(128,128,128)","interactionModel":null,"animatedZooms":!1,"showRangeSelector":!1,"rangeSelectorHeight":40,"rangeSelectorPlotStrokeColor":"#808FAB","rangeSelectorPlotFillColor":"#A7B1C4","plotter":[Dygraph.Plotters.fillPlotter,Dygraph.Plotters.errorPlotter,Dygraph.Plotters.linePlotter],"plugins":[],"axes":{"x":{"pixelsPerLabel":60,"axisLabelFormatter":Dygraph.dateAxisFormatter,"valueFormatter":Dygraph.dateString_,"drawGrid":!0,"independentTicks":!0,"ticker":null},"y":{"pixelsPerLabel":30,"valueFormatter":Dygraph.numberValueFormatter,"axisLabelFormatter":Dygraph.numberAxisLabelFormatter,"drawGrid":!0,"independentTicks":!0,"ticker":null},"y2":{"pixelsPerLabel":30,"valueFormatter":Dygraph.numberValueFormatter,"axisLabelFormatter":Dygraph.numberAxisLabelFormatter,"drawGrid":!1,"independentTicks":!1,"ticker":null}}},Dygraph.HORIZONTAL=1,Dygraph.VERTICAL=2,Dygraph.PLUGINS=[],Dygraph.addedAnnotationCSS=!1,Dygraph.prototype.__old_init__=function(a,b,c,d){if(null!==c){for(var e=["Date"],f=0;f<c.length;f++)e.push(c[f]);Dygraph.update(d,{"labels":e})}this.__init__(a,b,d)},Dygraph.prototype.__init__=function(a,b,c){if(/MSIE/.test(navigator.userAgent)&&!window.opera&&"undefined"!=typeof G_vmlCanvasManager&&"complete"!=document.readyState){var d=this;return void setTimeout(function(){d.__init__(a,b,c)},100)}if((null===c||void 0===c)&&(c={}),c=Dygraph.mapLegacyOptions_(c),"string"==typeof a&&(a=document.getElementById(a)),!a)return void Dygraph.error("Constructing dygraph with a non-existent div!");this.isUsingExcanvas_="undefined"!=typeof G_vmlCanvasManager,this.maindiv_=a,this.file_=b,this.rollPeriod_=c.rollPeriod||Dygraph.DEFAULT_ROLL_PERIOD,this.previousVerticalX_=-1,this.fractions_=c.fractions||!1,this.dateWindow_=c.dateWindow||null,this.annotations_=[],this.zoomed_x_=!1,this.zoomed_y_=!1,a.innerHTML="",""===a.style.width&&c.width&&(a.style.width=c.width+"px"),""===a.style.height&&c.height&&(a.style.height=c.height+"px"),""===a.style.height&&0===a.clientHeight&&(a.style.height=Dygraph.DEFAULT_HEIGHT+"px",""===a.style.width&&(a.style.width=Dygraph.DEFAULT_WIDTH+"px")),this.width_=a.clientWidth||c.width||0,this.height_=a.clientHeight||c.height||0,c.stackedGraph&&(c.fillGraph=!0),this.user_attrs_={},Dygraph.update(this.user_attrs_,c),this.attrs_={},Dygraph.updateDeep(this.attrs_,Dygraph.DEFAULT_ATTRS),this.boundaryIds_=[],this.setIndexByName_={},this.datasetIndex_=[],this.registeredEvents_=[],this.eventListeners_={},this.attributes_=new DygraphOptions(this),this.createInterface_(),this.plugins_=[];for(var e=Dygraph.PLUGINS.concat(this.getOption("plugins")),f=0;f<e.length;f++){var g=e[f],h=new g,i={"plugin":h,"events":{},"options":{},"pluginOptions":{}},j=h.activate(this);for(var k in j)i.events[k]=j[k];this.plugins_.push(i)}for(var f=0;f<this.plugins_.length;f++){var l=this.plugins_[f];for(var k in l.events)if(l.events.hasOwnProperty(k)){var m=l.events[k],n=[l.plugin,m];k in this.eventListeners_?this.eventListeners_[k].push(n):this.eventListeners_[k]=[n]}}this.createDragInterface_(),this.start_()},Dygraph.prototype.cascadeEvents_=function(a,b){if(!(a in this.eventListeners_))return!0;var c={"dygraph":this,"cancelable":!1,"defaultPrevented":!1,"preventDefault":function(){if(!c.cancelable)throw"Cannot call preventDefault on non-cancelable event.";c.defaultPrevented=!0},"propagationStopped":!1,"stopPropagation":function(){c.propagationStopped=!0}};Dygraph.update(c,b);var d=this.eventListeners_[a];if(d)for(var e=d.length-1;e>=0;e--){var f=d[e][0],g=d[e][1];if(g.call(f,c),c.propagationStopped)break}return c.defaultPrevented},Dygraph.prototype.isZoomed=function(a){if(null===a||void 0===a)return this.zoomed_x_||this.zoomed_y_;if("x"===a)return this.zoomed_x_;if("y"===a)return this.zoomed_y_;throw"axis parameter is ["+a+"] must be null, 'x' or 'y'."},Dygraph.prototype.toString=function(){var a=this.maindiv_,b=a&&a.id?a.id:a;return"[Dygraph "+b+"]"},Dygraph.prototype.attr_=function(a,b){return b?this.attributes_.getForSeries(a,b):this.attributes_.get(a)},Dygraph.prototype.getOption=function(a,b){return this.attr_(a,b)},Dygraph.prototype.getOptionForAxis=function(a,b){return this.attributes_.getForAxis(a,b)},Dygraph.prototype.optionsViewForAxis_=function(a){var b=this;return function(c){var d=b.user_attrs_.axes;return d&&d[a]&&d[a].hasOwnProperty(c)?d[a][c]:"undefined"!=typeof b.user_attrs_[c]?b.user_attrs_[c]:(d=b.attrs_.axes,d&&d[a]&&d[a].hasOwnProperty(c)?d[a][c]:"y"==a&&b.axes_[0].hasOwnProperty(c)?b.axes_[0][c]:"y2"==a&&b.axes_[1].hasOwnProperty(c)?b.axes_[1][c]:b.attr_(c))}},Dygraph.prototype.rollPeriod=function(){return this.rollPeriod_},Dygraph.prototype.xAxisRange=function(){return this.dateWindow_?this.dateWindow_:this.xAxisExtremes()},Dygraph.prototype.xAxisExtremes=function(){var a=this.attr_("xRangePad")/this.plotter_.area.w;if(0===this.numRows())return[0-a,1+a];var b=this.rawData_[0][0],c=this.rawData_[this.rawData_.length-1][0];if(a){var d=c-b;b-=d*a,c+=d*a}return[b,c]},Dygraph.prototype.yAxisRange=function(a){if("undefined"==typeof a&&(a=0),0>a||a>=this.axes_.length)return null;var b=this.axes_[a];return[b.computedValueRange[0],b.computedValueRange[1]]},Dygraph.prototype.yAxisRanges=function(){for(var a=[],b=0;b<this.axes_.length;b++)a.push(this.yAxisRange(b));return a},Dygraph.prototype.toDomCoords=function(a,b,c){return[this.toDomXCoord(a),this.toDomYCoord(b,c)]},Dygraph.prototype.toDomXCoord=function(a){if(null===a)return null;var b=this.plotter_.area,c=this.xAxisRange();return b.x+(a-c[0])/(c[1]-c[0])*b.w},Dygraph.prototype.toDomYCoord=function(a,b){var c=this.toPercentYCoord(a,b);if(null===c)return null;var d=this.plotter_.area;return d.y+c*d.h},Dygraph.prototype.toDataCoords=function(a,b,c){return[this.toDataXCoord(a),this.toDataYCoord(b,c)]},Dygraph.prototype.toDataXCoord=function(a){if(null===a)return null;var b=this.plotter_.area,c=this.xAxisRange();return c[0]+(a-b.x)/b.w*(c[1]-c[0])},Dygraph.prototype.toDataYCoord=function(a,b){if(null===a)return null;var c=this.plotter_.area,d=this.yAxisRange(b);if("undefined"==typeof b&&(b=0),this.attributes_.getForAxis("logscale",b)){var e=(a-c.y)/c.h,f=Dygraph.log10(d[1]),g=f-e*(f-Dygraph.log10(d[0])),h=Math.pow(Dygraph.LOG_SCALE,g);return h}return d[0]+(c.y+c.h-a)/c.h*(d[1]-d[0])},Dygraph.prototype.toPercentYCoord=function(a,b){if(null===a)return null;"undefined"==typeof b&&(b=0);var c,d=this.yAxisRange(b),e=this.attributes_.getForAxis("logscale",b);if(e){var f=Dygraph.log10(d[1]);c=(f-Dygraph.log10(a))/(f-Dygraph.log10(d[0]))}else c=(d[1]-a)/(d[1]-d[0]);return c},Dygraph.prototype.toPercentXCoord=function(a){if(null===a)return null;var b=this.xAxisRange();return(a-b[0])/(b[1]-b[0])},Dygraph.prototype.numColumns=function(){return this.rawData_?this.rawData_[0]?this.rawData_[0].length:this.attr_("labels").length:0},Dygraph.prototype.numRows=function(){return this.rawData_?this.rawData_.length:0},Dygraph.prototype.getValue=function(a,b){return 0>a||a>this.rawData_.length?null:0>b||b>this.rawData_[a].length?null:this.rawData_[a][b]},Dygraph.prototype.createInterface_=function(){var a=this.maindiv_;this.graphDiv=document.createElement("div"),this.graphDiv.style.textAlign="left",a.appendChild(this.graphDiv),this.canvas_=Dygraph.createCanvas(),this.canvas_.style.position="absolute",this.hidden_=this.createPlotKitCanvas_(this.canvas_),this.resizeElements_(),this.canvas_ctx_=Dygraph.getContext(this.canvas_),this.hidden_ctx_=Dygraph.getContext(this.hidden_),this.graphDiv.appendChild(this.hidden_),this.graphDiv.appendChild(this.canvas_),this.mouseEventElement_=this.createMouseEventElement_(),this.layout_=new DygraphLayout(this);var b=this;this.mouseMoveHandler_=function(a){b.mouseMove_(a)},this.mouseOutHandler_=function(a){var c=a.target||a.fromElement,d=a.relatedTarget||a.toElement;Dygraph.isNodeContainedBy(c,b.graphDiv)&&!Dygraph.isNodeContainedBy(d,b.graphDiv)&&b.mouseOut_(a)},this.addAndTrackEvent(window,"mouseout",this.mouseOutHandler_),this.addAndTrackEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),this.resizeHandler_||(this.resizeHandler_=function(){b.resize()},this.addAndTrackEvent(window,"resize",this.resizeHandler_))},Dygraph.prototype.resizeElements_=function(){this.graphDiv.style.width=this.width_+"px",this.graphDiv.style.height=this.height_+"px",this.canvas_.width=this.width_,this.canvas_.height=this.height_,this.canvas_.style.width=this.width_+"px",this.canvas_.style.height=this.height_+"px",this.hidden_.width=this.width_,this.hidden_.height=this.height_,this.hidden_.style.width=this.width_+"px",this.hidden_.style.height=this.height_+"px"},Dygraph.prototype.destroy=function(){this.canvas_ctx_.restore(),this.hidden_ctx_.restore();var a=function(b){for(;b.hasChildNodes();)a(b.firstChild),b.removeChild(b.firstChild)};this.removeTrackedEvents_(),Dygraph.removeEvent(window,"mouseout",this.mouseOutHandler_),Dygraph.removeEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),Dygraph.removeEvent(window,"resize",this.resizeHandler_),this.resizeHandler_=null,a(this.maindiv_);var b=function(a){for(var b in a)"object"==typeof a[b]&&(a[b]=null)};b(this.layout_),b(this.plotter_),b(this)},Dygraph.prototype.createPlotKitCanvas_=function(a){var b=Dygraph.createCanvas();return b.style.position="absolute",b.style.top=a.style.top,b.style.left=a.style.left,b.width=this.width_,b.height=this.height_,b.style.width=this.width_+"px",b.style.height=this.height_+"px",b},Dygraph.prototype.createMouseEventElement_=function(){if(this.isUsingExcanvas_){var a=document.createElement("div");return a.style.position="absolute",a.style.backgroundColor="white",a.style.filter="alpha(opacity=0)",a.style.width=this.width_+"px",a.style.height=this.height_+"px",this.graphDiv.appendChild(a),a}return this.canvas_},Dygraph.prototype.setColors_=function(){var a=this.getLabels(),b=a.length-1;this.colors_=[],this.colorsMap_={};var c,d=this.attr_("colors");if(d){for(c=0;b>c;c++)if(this.visibility()[c]){var e=d[c%d.length];this.colors_.push(e),this.colorsMap_[a[1+c]]=e}}else{var f=this.attr_("colorSaturation")||1,g=this.attr_("colorValue")||.5,h=Math.ceil(b/2);for(c=1;b>=c;c++)if(this.visibility()[c-1]){var i=c%2?Math.ceil(c/2):h+c/2,j=1*i/(1+b),e=Dygraph.hsvToRGB(j,f,g);this.colors_.push(e),this.colorsMap_[a[c]]=e}}},Dygraph.prototype.getColors=function(){return this.colors_},Dygraph.prototype.getPropertiesForSeries=function(a){for(var b=-1,c=this.getLabels(),d=1;d<c.length;d++)if(c[d]==a){b=d;break}return-1==b?null:{"name":a,"column":b,"visible":this.visibility()[b-1],"color":this.colorsMap_[a],"axis":1+this.attributes_.axisForSeries(a)}},Dygraph.prototype.createRollInterface_=function(){this.roller_||(this.roller_=document.createElement("input"),this.roller_.type="text",this.roller_.style.display="none",this.graphDiv.appendChild(this.roller_));var a=this.attr_("showRoller")?"block":"none",b=this.plotter_.area,c={"position":"absolute","zIndex":10,"top":b.y+b.h-25+"px","left":b.x+1+"px","display":a};this.roller_.size="2",this.roller_.value=this.rollPeriod_;for(var d in c)c.hasOwnProperty(d)&&(this.roller_.style[d]=c[d]);var e=this;this.roller_.onchange=function(){e.adjustRoll(e.roller_.value)}},Dygraph.prototype.dragGetX_=function(a,b){return Dygraph.pageX(a)-b.px},Dygraph.prototype.dragGetY_=function(a,b){return Dygraph.pageY(a)-b.py},Dygraph.prototype.createDragInterface_=function(){var a={"isZooming":!1,"isPanning":!1,"is2DPan":!1,"dragStartX":null,"dragStartY":null,"dragEndX":null,"dragEndY":null,"dragDirection":null,"prevEndX":null,"prevEndY":null,"prevDragDirection":null,"cancelNextDblclick":!1,"initialLeftmostDate":null,"xUnitsPerPixel":null,"dateRange":null,"px":0,"py":0,"boundedDates":null,"boundedValues":null,"tarp":new Dygraph.IFrameTarp,"initializeMouseDown":function(a,b,c){a.preventDefault?a.preventDefault():(a.returnValue=!1,a.cancelBubble=!0),c.px=Dygraph.findPosX(b.canvas_),c.py=Dygraph.findPosY(b.canvas_),c.dragStartX=b.dragGetX_(a,c),c.dragStartY=b.dragGetY_(a,c),c.cancelNextDblclick=!1,c.tarp.cover()}},b=this.attr_("interactionModel"),c=this,d=function(b){return function(d){b(d,c,a)}};for(var e in b)b.hasOwnProperty(e)&&this.addAndTrackEvent(this.mouseEventElement_,e,d(b[e]));var f=function(){if((a.isZooming||a.isPanning)&&(a.isZooming=!1,a.dragStartX=null,a.dragStartY=null),a.isPanning){a.isPanning=!1,a.draggingDate=null,a.dateRange=null;for(var b=0;b<c.axes_.length;b++)delete c.axes_[b].draggingValue,delete c.axes_[b].dragValueRange}a.tarp.uncover()};this.addAndTrackEvent(document,"mouseup",f)},Dygraph.prototype.drawZoomRect_=function(a,b,c,d,e,f,g,h){var i=this.canvas_ctx_;f==Dygraph.HORIZONTAL?i.clearRect(Math.min(b,g),this.layout_.getPlotArea().y,Math.abs(b-g),this.layout_.getPlotArea().h):f==Dygraph.VERTICAL&&i.clearRect(this.layout_.getPlotArea().x,Math.min(d,h),this.layout_.getPlotArea().w,Math.abs(d-h)),a==Dygraph.HORIZONTAL?c&&b&&(i.fillStyle="rgba(128,128,128,0.33)",i.fillRect(Math.min(b,c),this.layout_.getPlotArea().y,Math.abs(c-b),this.layout_.getPlotArea().h)):a==Dygraph.VERTICAL&&e&&d&&(i.fillStyle="rgba(128,128,128,0.33)",i.fillRect(this.layout_.getPlotArea().x,Math.min(d,e),this.layout_.getPlotArea().w,Math.abs(e-d))),this.isUsingExcanvas_&&(this.currentZoomRectArgs_=[a,b,c,d,e,0,0,0])},Dygraph.prototype.clearZoomRect_=function(){this.currentZoomRectArgs_=null,this.canvas_ctx_.clearRect(0,0,this.canvas_.width,this.canvas_.height)},Dygraph.prototype.doZoomX_=function(a,b){this.currentZoomRectArgs_=null;var c=this.toDataXCoord(a),d=this.toDataXCoord(b);this.doZoomXDates_(c,d)},Dygraph.zoomAnimationFunction=function(a,b){var c=1.5;return(1-Math.pow(c,-a))/(1-Math.pow(c,-b))},Dygraph.prototype.doZoomXDates_=function(a,b){var c=this.xAxisRange(),d=[a,b];this.zoomed_x_=!0;var e=this;this.doAnimatedZoom(c,d,null,null,function(){e.attr_("zoomCallback")&&e.attr_("zoomCallback")(a,b,e.yAxisRanges())})},Dygraph.prototype.doZoomY_=function(a,b){this.currentZoomRectArgs_=null;for(var c=this.yAxisRanges(),d=[],e=0;e<this.axes_.length;e++){var f=this.toDataYCoord(a,e),g=this.toDataYCoord(b,e);d.push([g,f])}this.zoomed_y_=!0;var h=this;this.doAnimatedZoom(null,null,c,d,function(){if(h.attr_("zoomCallback")){var a=h.xAxisRange();h.attr_("zoomCallback")(a[0],a[1],h.yAxisRanges())}})},Dygraph.prototype.resetZoom=function(){var a=!1,b=!1,c=!1;null!==this.dateWindow_&&(a=!0,b=!0);for(var d=0;d<this.axes_.length;d++)"undefined"!=typeof this.axes_[d].valueWindow&&null!==this.axes_[d].valueWindow&&(a=!0,c=!0);if(this.clearSelection(),a){this.zoomed_x_=!1,this.zoomed_y_=!1;var e=this.rawData_[0][0],f=this.rawData_[this.rawData_.length-1][0];if(!this.attr_("animatedZooms")){for(this.dateWindow_=null,d=0;d<this.axes_.length;d++)null!==this.axes_[d].valueWindow&&delete this.axes_[d].valueWindow;return this.drawGraph_(),void(this.attr_("zoomCallback")&&this.attr_("zoomCallback")(e,f,this.yAxisRanges()))}var g=null,h=null,i=null,j=null;if(b&&(g=this.xAxisRange(),h=[e,f]),c){i=this.yAxisRanges();var k=this.gatherDatasets_(this.rolledSeries_,null),l=k.extremes;for(this.computeYAxisRanges_(l),j=[],d=0;d<this.axes_.length;d++){var m=this.axes_[d];j.push(null!==m.valueRange&&void 0!==m.valueRange?m.valueRange:m.extremeRange)}}var n=this;this.doAnimatedZoom(g,h,i,j,function(){n.dateWindow_=null;for(var a=0;a<n.axes_.length;a++)null!==n.axes_[a].valueWindow&&delete n.axes_[a].valueWindow;n.attr_("zoomCallback")&&n.attr_("zoomCallback")(e,f,n.yAxisRanges())})}},Dygraph.prototype.doAnimatedZoom=function(a,b,c,d,e){var f,g,h=this.attr_("animatedZooms")?Dygraph.ANIMATION_STEPS:1,i=[],j=[];if(null!==a&&null!==b)for(f=1;h>=f;f++)g=Dygraph.zoomAnimationFunction(f,h),i[f-1]=[a[0]*(1-g)+g*b[0],a[1]*(1-g)+g*b[1]];if(null!==c&&null!==d)for(f=1;h>=f;f++){g=Dygraph.zoomAnimationFunction(f,h);for(var k=[],l=0;l<this.axes_.length;l++)k.push([c[l][0]*(1-g)+g*d[l][0],c[l][1]*(1-g)+g*d[l][1]]);j[f-1]=k}var m=this;Dygraph.repeatAndCleanup(function(a){if(j.length)for(var b=0;b<m.axes_.length;b++){var c=j[a][b];m.axes_[b].valueWindow=[c[0],c[1]]}i.length&&(m.dateWindow_=i[a]),m.drawGraph_()},h,Dygraph.ANIMATION_DURATION/h,e)},Dygraph.prototype.getArea=function(){return this.plotter_.area},Dygraph.prototype.eventToDomCoords=function(a){if(a.offsetX&&a.offsetY)return[a.offsetX,a.offsetY];var b=Dygraph.pageX(a)-Dygraph.findPosX(this.mouseEventElement_),c=Dygraph.pageY(a)-Dygraph.findPosY(this.mous