/* Highcharts JS v6.1.0 (2018-04-13) Data module (c) 2012-2017 Torstein Honsi License: www.highcharts.com/license */ (function(y){"object"===typeof module&&module.exports?module.exports=y:y(Highcharts)})(function(y){(function(h){h.ajax=function(A){var m=h.merge(!0,{url:!1,type:"GET",dataType:"json",success:!1,error:!1,data:!1,headers:{}},A);A={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"};var r=new XMLHttpRequest;if(!m.url)return!1;r.open(m.type.toUpperCase(),m.url,!0);r.setRequestHeader("Content-Type",A[m.dataType]||A.text);h.objectEach(m.headers,function(h,m){r.setRequestHeader(m, h)});r.onreadystatechange=function(){var h;if(4===r.readyState){if(200===r.status){h=r.responseText;if("json"===m.dataType)try{h=JSON.parse(h)}catch(F){m.error&&m.error(r,F);return}return m.success&&m.success(h)}m.error&&m.error(r,r.responseText)}};try{m.data=JSON.stringify(m.data)}catch(v){}r.send(m.data||!0)}})(y);(function(h){var A=h.addEvent,m=h.Chart,r=h.win.document,v=h.each,y=h.objectEach,G=h.pick,D=h.inArray,E=h.isNumber,B=h.merge,H=h.splat,I=h.fireEvent,J=h.some,x,C=function(a,b,c){this.init(a, b,c)};h.extend(C.prototype,{init:function(a,b,c){var f=a.decimalPoint,e;b&&(this.chartOptions=b);c&&(this.chart=c);"."!==f&&","!==f&&(f=void 0);this.options=a;this.columns=a.columns||this.rowsToColumns(a.rows)||[];this.firstRowAsNames=G(a.firstRowAsNames,this.firstRowAsNames,!0);this.decimalRegex=f&&new RegExp("^(-?[0-9]+)"+f+"([0-9]+)$");this.rawColumns=[];this.columns.length&&(this.dataFound(),e=!0);e||(e=this.fetchLiveData());e||(e=!!this.parseCSV().length);e||(e=!!this.parseTable().length);e|| (e=this.parseGoogleSpreadsheet());!e&&a.afterComplete&&a.afterComplete()},getColumnDistribution:function(){var a=this.chartOptions,b=this.options,c=[],f=function(a){return(h.seriesTypes[a||"line"].prototype.pointArrayMap||[0]).length},e=a&&a.chart&&a.chart.type,d=[],k=[],p=0,g;v(a&&a.series||[],function(a){d.push(f(a.type||e))});v(b&&b.seriesMapping||[],function(a){c.push(a.x||0)});0===c.length&&c.push(0);v(b&&b.seriesMapping||[],function(b){var c=new x,n=d[p]||f(e),t=h.seriesTypes[((a&&a.series|| [])[p]||{}).type||e||"line"].prototype.pointArrayMap||["y"];c.addColumnReader(b.x,"x");y(b,function(a,b){"x"!==b&&c.addColumnReader(a,b)});for(g=0;gu||u>K?(++u,n=""):(!isNaN(parseFloat(n))&&isFinite(n)?(n=parseFloat(n),f("number")):isNaN(Date.parse(n))?f("string"):(n=n.replace(/\//g,"-"),f("date")),p.lengthu[","]?";":",";d.decimalPoint||(d.decimalPoint=b>c?".":",",e.decimalRegex=new RegExp("^(-?[0-9]+)"+d.decimalPoint+"([0-9]+)$"));return f}function f(a,b){var c,f,g=0,k=!1,n=[],p=[],l;if(!b||b>a.length)b=a.length;for(;gc[l]?"YY":"YYYY":12=c[l]?(f[l]="dd",k=!0):f[l].length||(f[l]="mm")));if(k){for(l=0;la)a=0;if(!g||g>=k.length)g=k.length-1;d.itemDelimiter?m=d.itemDelimiter:(m=null, m=c(k));for(var r=0,t=a;t<=g;t++)"#"===k[t][0]?r++:b(k[t],t-a-r);d.columnTypes&&0!==d.columnTypes.length||!w.length||!w[0].length||"date"!==w[0][1]||d.dateFormat||(d.dateFormat=f(p[0]));this.dataFound()}return p},parseTable:function(){var a=this.options,b=a.table,c=this.columns,f=a.startRow||0,e=a.endRow||Number.MAX_VALUE,d=a.startColumn||0,k=a.endColumn||Number.MAX_VALUE;b&&("string"===typeof b&&(b=r.getElementById(b)),v(b.getElementsByTagName("tr"),function(a,b){b>=f&&b<=e&&v(a.children,function(a, e){("TD"===a.tagName||"TH"===a.tagName)&&e>=d&&e<=k&&(c[e-d]||(c[e-d]=[]),c[e-d][b-f]=a.innerHTML)})}),this.dataFound());return c},fetchLiveData:function(){function a(p){function g(g,k,m){function t(){e&&b.liveDataURL===g&&(b.liveDataTimeout=setTimeout(a,d))}if(!g||0!==g.indexOf("http"))return g&&c.error&&c.error("Invalid URL"),!1;p&&(clearTimeout(b.liveDataTimeout),b.liveDataURL=g);h.ajax({url:g,dataType:m||"json",success:function(a){b&&b.series&&k(a);t()},error:function(a,b){3>++f&&t();return c.error&& c.error(b,a)}});return!0}g(k.csvURL,function(a){b.update({data:{csv:a}})},"text")||g(k.rowsURL,function(a){b.update({data:{rows:a}})})||g(k.columnsURL,function(a){b.update({data:{columns:a}})})}var b=this.chart,c=this.options,f=0,e=c.enablePolling,d=1E3*(c.dataRefreshRate||2),k=B(c);if(!c||!c.csvURL&&!c.rowsURL&&!c.columnsURL)return!1;1E3>d&&(d=1E3);delete c.csvURL;delete c.rowsURL;delete c.columnsURL;a(!0);return c&&(c.csvURL||c.rowsURL||c.columnsURL)},parseGoogleSpreadsheet:function(){function a(d){var f= ["https://spreadsheets.google.com/feeds/cells",c,e,"public/values?alt\x3djson"].join("/");h.ajax({url:f,dataType:"json",success:function(c){d(c);b.enablePolling&&setTimeout(function(){a(d)},b.dataRefreshRate)},error:function(a,c){return b.error&&b.error(c,a)}})}var b=this.options,c=b.googleSpreadsheetKey,f=this.chart,e=b.googleSpreadsheetWorksheet||1,d=b.startRow||0,k=b.endRow||Number.MAX_VALUE,p=b.startColumn||0,g=b.endColumn||Number.MAX_VALUE,n=1E3*(b.dataRefreshRate||2);4E3>n&&(n=4E3);c&&(delete b.googleSpreadsheetKey, a(function(a){var b=[];a=a.feed.entry;var c,e=(a||[]).length,h=0,n,m,q;if(!a||0===a.length)return!1;for(q=0;q=p&&q<=g&&(b[q-p]=[]);for(q=0;q=p&&n<=g&&h>=d&&h<=k&&(m=c.gs$cell||c.content,c=null,m.numericValue?c=0<=m.$t.indexOf("/")||0<=m.$t.indexOf("-")?m.$t:0a[e+1])):(h&&h.length&&(v=this.parseDate(d)),r&&E(v)&&"float"!==x?(t[e]=d,a[e]=v,a.isDatetime=!0,void 0!==a[e+1]&&(d=v>a[e+1],d!==u&&void 0!== u&&(this.alternativeFormat?(this.dateFormat=this.alternativeFormat,e=a.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):a.unsorted=!0),u=d)):(a[e]=""===h?null:h,0!==e&&(a.isDatetime||a.isNumeric)&&(a.mixed=!0)));r&&a.mixed&&(f[b]=c[b]);if(r&&u&&this.options.sort)for(b=0;b(new Date).getFullYear()-2E3?b+1900:b+2E3;return Date.UTC(b,a[2]-1,+a[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{2})$/, parser:function(a){return Date.UTC(+a[3]+2E3,a[1]-1,+a[2])}}},parseDate:function(a){var b=this.options.parseDate,c,f,e=this.options.dateFormat||this.dateFormat,d;if(b)c=b(a);else if("string"===typeof a){if(e)(b=this.dateFormats[e])||(b=this.dateFormats["YYYY/mm/dd"]),(d=a.match(b.regex))&&(c=b.parser(d));else for(f in this.dateFormats)if(b=this.dateFormats[f],d=a.match(b.regex)){this.dateFormat=f;this.alternativeFormat=b.alternative;c=b.parser(d);break}d||(d=Date.parse(a),"object"===typeof d&&null!== d&&d.getTime?c=d.getTime()-6E4*d.getTimezoneOffset():E(d)&&(c=d-6E4*(new Date(d)).getTimezoneOffset()))}return c},rowsToColumns:function(a){var b,c,f,e,d;if(a)for(d=[],c=a.length,b=0;b