-
Notifications
You must be signed in to change notification settings - Fork 99
/
miso.ds.deps.min.0.4.1.js
9 lines (9 loc) · 68.3 KB
/
miso.ds.deps.min.0.4.1.js
1
2
3
4
5
6
7
8
9
/**
* Miso.Dataset - v0.4.1 - 11/19/2012
* http://github.com/misoproject/dataset
* Copyright (c) 2012 Alex Graul, Irene Ros;
* Dual Licensed: MIT, GPL
* https://github.com/misoproject/dataset/blob/master/LICENSE-MIT
* https://github.com/misoproject/dataset/blob/master/LICENSE-GPL
*/
(function(e){function A(e,t,n,r){var i=n.lang();return i[e].call?i[e](n,r):i[e][t]}function O(e,t){return function(n){return H(e.call(this,n),t)}}function M(e){return function(t){var n=e.call(this,t);return n+this.lang().ordinal(n)}}function _(e,t,n){this._d=e,this._isUTC=!!t,this._a=e._a||null,this._lang=n||!1}function D(e){var t=this._data={},n=e.years||e.y||0,r=e.months||e.M||0,i=e.weeks||e.w||0,s=e.days||e.d||0,o=e.hours||e.h||0,u=e.minutes||e.m||0,a=e.seconds||e.s||0,f=e.milliseconds||e.ms||0;this._milliseconds=f+a*1e3+u*6e4+o*36e5,this._days=s+i*7,this._months=r+n*12,t.milliseconds=f%1e3,a+=P(f/1e3),t.seconds=a%60,u+=P(a/60),t.minutes=u%60,o+=P(u/60),t.hours=o%24,s+=P(o/24),s+=i*7,t.days=s%30,r+=P(s/30),t.months=r%12,n+=P(r/12),t.years=n,this._lang=!1}function P(e){return e<0?Math.ceil(e):Math.floor(e)}function H(e,t){var n=e+"";while(n.length<t)n="0"+n;return n}function B(e,t,n){var r=t._milliseconds,i=t._days,s=t._months,o;r&&e._d.setTime(+e+r*n),i&&e.date(e.date()+i*n),s&&(o=e.date(),e.date(1).month(e.month()+s*n).date(Math.min(o,e.daysInMonth())))}function j(e){return Object.prototype.toString.call(e)==="[object Array]"}function F(e,t){var n=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),i=0,s;for(s=0;s<n;s++)~~e[s]!==~~t[s]&&i++;return i+r}function I(e,t,n,r){var i,s,o=[];for(i=0;i<7;i++)o[i]=e[i]=e[i]==null?i===2?1:0:e[i];return e[7]=o[7]=t,e[8]!=null&&(o[8]=e[8]),e[3]+=n||0,e[4]+=r||0,s=new Date(0),t?(s.setUTCFullYear(e[0],e[1],e[2]),s.setUTCHours(e[3],e[4],e[5],e[6])):(s.setFullYear(e[0],e[1],e[2]),s.setHours(e[3],e[4],e[5],e[6])),s._a=o,s}function q(e,t){var n,r,s=[];!t&&o&&(t=require("./lang/"+e));for(n=0;n<u.length;n++)t[u[n]]=t[u[n]]||i.en[u[n]];for(n=0;n<12;n++)r=moment([2e3,n]),s[n]=new RegExp("^"+(t.months[n]||t.months(r,""))+"|^"+(t.monthsShort[n]||t.monthsShort(r,"")).replace(".",""),"i");return t.monthsParse=t.monthsParse||s,i[e]=t,t}function R(e){var t=typeof e=="string"&&e||e&&e._lang||null;return t?i[t]||q(t):moment}function U(e){return e.match(/\[.*\]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function z(e){var t=e.match(f),n,r;for(n=0,r=t.length;n<r;n++)L[t[n]]?t[n]=L[t[n]]:t[n]=U(t[n]);return function(i){var s="";for(n=0;n<r;n++)s+=typeof t[n].call=="function"?t[n].call(i,e):t[n];return s}}function W(e,t){function r(t){return e.lang().longDateFormat[t]||t}var n=5;while(n--&&l.test(t))t=t.replace(l,r);return N[t]||(N[t]=z(t)),N[t](e)}function X(e){switch(e){case"DDDD":return d;case"YYYY":return v;case"S":case"SS":case"SSS":case"DDD":return p;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":case"a":case"A":return m;case"Z":case"ZZ":return g;case"T":return y;case"MM":case"DD":case"YY":case"HH":case"hh":case"mm":case"ss":case"M":case"D":case"d":case"H":case"h":case"m":case"s":return h;default:return new RegExp(e.replace("\\",""))}}function V(e,t,n,r){var i,s;switch(e){case"M":case"MM":n[1]=t==null?0:~~t-1;break;case"MMM":case"MMMM":for(i=0;i<12;i++)if(R().monthsParse[i].test(t)){n[1]=i,s=!0;break}s||(n[8]=!1);break;case"D":case"DD":case"DDD":case"DDDD":t!=null&&(n[2]=~~t);break;case"YY":n[0]=~~t+(~~t>70?1900:2e3);break;case"YYYY":n[0]=~~Math.abs(t);break;case"a":case"A":r.isPm=(t+"").toLowerCase()==="pm";break;case"H":case"HH":case"h":case"hh":n[3]=~~t;break;case"m":case"mm":n[4]=~~t;break;case"s":case"ss":n[5]=~~t;break;case"S":case"SS":case"SSS":n[6]=~~(("0."+t)*1e3);break;case"Z":case"ZZ":r.isUTC=!0,i=(t+"").match(S),i&&i[1]&&(r.tzh=~~i[1]),i&&i[2]&&(r.tzm=~~i[2]),i&&i[0]==="+"&&(r.tzh=-r.tzh,r.tzm=-r.tzm)}t==null&&(n[8]=!1)}function $(e,t){var n=[0,0,1,0,0,0,0],r={tzh:0,tzm:0},i=t.match(f),s,o;for(s=0;s<i.length;s++)o=(X(i[s]).exec(e)||[])[0],o&&(e=e.slice(e.indexOf(o)+o.length)),L[i[s]]&&V(i[s],o,n,r);return r.isPm&&n[3]<12&&(n[3]+=12),r.isPm===!1&&n[3]===12&&(n[3]=0),I(n,r.isUTC,r.tzh,r.tzm)}function J(e,t){var n,r=e.match(c)||[],i,s=99,o,u,a;for(o=0;o<t.length;o++)u=$(e,t[o]),i=W(new _(u),t[o]).match(c)||[],a=F(r,i),a<s&&(s=a,n=u);return n}function K(e){var t="YYYY-MM-DDT",n;if(b.exec(e)){for(n=0;n<4;n++)if(E[n][1].exec(e)){t+=E[n][0];break}return g.exec(e)?$(e,t+" Z"):$(e,t)}return new Date(e)}function Q(e,t,n,r,i){var s=i.relativeTime[e];return typeof s=="function"?s(t||1,!!n,e,r):s.replace(/%d/i,t||1)}function G(e,t,r){var i=n(Math.abs(e)/1e3),s=n(i/60),o=n(s/60),u=n(o/24),a=n(u/365),f=i<45&&["s",i]||s===1&&["m"]||s<45&&["mm",s]||o===1&&["h"]||o<22&&["hh",o]||u===1&&["d"]||u<=25&&["dd",u]||u<=45&&["M"]||u<345&&["MM",n(u/30)]||a===1&&["y"]||["yy",a];return f[2]=t,f[3]=e>0,f[4]=r,Q.apply({},f)}function Y(e,t){moment.fn[e]=function(e){var n=this._isUTC?"UTC":"";return e!=null?(this._d["set"+n+t](e),this):this._d["get"+n+t]()}}function Z(e){moment.duration.fn[e]=function(){return this._data[e]}}function et(e,t){moment.duration.fn["as"+e]=function(){return+this/t}}var moment,t="1.7.2",n=Math.round,r,i={},s="en",o=typeof module!="undefined"&&module.exports,u="months|monthsShort|weekdays|weekdaysShort|weekdaysMin|longDateFormat|calendar|relativeTime|ordinal|meridiem".split("|"),a=/^\/?Date\((\-?\d+)/i,f=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|SS?S?|zz?|ZZ?|.)/g,l=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?)/g,c=/([0-9a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)/gi,h=/\d\d?/,p=/\d{1,3}/,d=/\d{3}/,v=/\d{1,4}/,m=/[0-9a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+/i,g=/Z|[\+\-]\d\d:?\d\d/i,y=/T/i,b=/^\s*\d{4}-\d\d-\d\d(T(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/,w="YYYY-MM-DDTHH:mm:ssZ",E=[["HH:mm:ss.S",/T\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/T\d\d:\d\d:\d\d/],["HH:mm",/T\d\d:\d\d/],["HH",/T\d\d/]],S=/([\+\-]|\d\d)/gi,x="Month|Date|Hours|Minutes|Seconds|Milliseconds".split("|"),T={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},N={},C="DDD w M D d".split(" "),k="M D H h m s w".split(" "),L={M:function(){return this.month()+1},MMM:function(e){return A("monthsShort",this.month(),this,e)},MMMM:function(e){return A("months",this.month(),this,e)},D:function(){return this.date()},DDD:function(){var e=new Date(this.year(),this.month(),this.date()),t=new Date(this.year(),0,1);return~~((e-t)/864e5+1.5)},d:function(){return this.day()},dd:function(e){return A("weekdaysMin",this.day(),this,e)},ddd:function(e){return A("weekdaysShort",this.day(),this,e)},dddd:function(e){return A("weekdays",this.day(),this,e)},w:function(){var e=new Date(this.year(),this.month(),this.date()-this.day()+5),t=new Date(e.getFullYear(),0,4);return~~((e-t)/864e5/7+1.5)},YY:function(){return H(this.year()%100,2)},YYYY:function(){return H(this.year(),4)},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return~~(this.milliseconds()/100)},SS:function(){return H(~~(this.milliseconds()/10),2)},SSS:function(){return H(this.milliseconds(),3)},Z:function(){var e=-this.zone(),t="+";return e<0&&(e=-e,t="-"),t+H(~~(e/60),2)+":"+H(~~e%60,2)},ZZ:function(){var e=-this.zone(),t="+";return e<0&&(e=-e,t="-"),t+H(~~(10*e/6),4)}};while(C.length)r=C.pop(),L[r+"o"]=M(L[r]);while(k.length)r=k.pop(),L[r+r]=O(L[r],2);L.DDDD=O(L.DDD,3),moment=function(t,n){if(t===null||t==="")return null;var r,i;return moment.isMoment(t)?new _(new Date(+t._d),t._isUTC,t._lang):(n?j(n)?r=J(t,n):r=$(t,n):(i=a.exec(t),r=t===e?new Date:i?new Date(+i[1]):t instanceof Date?t:j(t)?I(t):typeof t=="string"?K(t):new Date(t)),new _(r))},moment.utc=function(e,t){return j(e)?new _(I(e,!0),!0):(typeof e=="string"&&!g.exec(e)&&(e+=" +0000",t&&(t+=" Z")),moment(e,t).utc())},moment.unix=function(e){return moment(e*1e3)},moment.duration=function(e,t){var n=moment.isDuration(e),r=typeof e=="number",i=n?e._data:r?{}:e,s;return r&&(t?i[t]=e:i.milliseconds=e),s=new D(i),n&&(s._lang=e._lang),s},moment.humanizeDuration=function(e,t,n){return moment.duration(e,t===!0?null:t).humanize(t===!0?!0:n)},moment.version=t,moment.defaultFormat=w,moment.lang=function(e,t){var n;if(!e)return s;(t||!i[e])&&q(e,t);if(i[e]){for(n=0;n<u.length;n++)moment[u[n]]=i[e][u[n]];moment.monthsParse=i[e].monthsParse,s=e}},moment.langData=R,moment.isMoment=function(e){return e instanceof _},moment.isDuration=function(e){return e instanceof D},moment.lang("en",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},meridiem:function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(e){var t=e%10;return~~(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th"}}),moment.fn=_.prototype={clone:function(){return moment(this)},valueOf:function(){return+this._d},unix:function(){return Math.floor(+this._d/1e3)},toString:function(){return this._d.toString()},toDate:function(){return this._d},toArray:function(){var e=this;return[e.year(),e.month(),e.date(),e.hours(),e.minutes(),e.seconds(),e.milliseconds(),!!this._isUTC]},isValid:function(){return this._a?this._a[8]!=null?!!this._a[8]:!F(this._a,(this._a[7]?moment.utc(this._a):moment(this._a)).toArray()):!isNaN(this._d.getTime())},utc:function(){return this._isUTC=!0,this},local:function(){return this._isUTC=!1,this},format:function(e){return W(this,e?e:moment.defaultFormat)},add:function(e,t){var n=t?moment.duration(+t,e):moment.duration(e);return B(this,n,1),this},subtract:function(e,t){var n=t?moment.duration(+t,e):moment.duration(e);return B(this,n,-1),this},diff:function(e,t,r){var i=this._isUTC?moment(e).utc():moment(e).local(),s=(this.zone()-i.zone())*6e4,o=this._d-i._d-s,u=this.year()-i.year(),a=this.month()-i.month(),f=this.date()-i.date(),l;return t==="months"?l=u*12+a+f/30:t==="years"?l=u+(a+f/30)/12:l=t==="seconds"?o/1e3:t==="minutes"?o/6e4:t==="hours"?o/36e5:t==="days"?o/864e5:t==="weeks"?o/6048e5:o,r?l:n(l)},from:function(e,t){return moment.duration(this.diff(e)).lang(this._lang).humanize(!t)},fromNow:function(e){return this.from(moment(),e)},calendar:function(){var e=this.diff(moment().sod(),"days",!0),t=this.lang().calendar,n=t.sameElse,r=e<-6?n:e<-1?t.lastWeek:e<0?t.lastDay:e<1?t.sameDay:e<2?t.nextDay:e<7?t.nextWeek:n;return this.format(typeof r=="function"?r.apply(this):r)},isLeapYear:function(){var e=this.year();return e%4===0&&e%100!==0||e%400===0},isDST:function(){return this.zone()<moment([this.year()]).zone()||this.zone()<moment([this.year(),5]).zone()},day:function(e){var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return e==null?t:this.add({d:e-t})},startOf:function(e){switch(e.replace(/s$/,"")){case"year":this.month(0);case"month":this.date(1);case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return this},endOf:function(e){return this.startOf(e).add(e.replace(/s?$/,"s"),1).subtract("ms",1)},sod:function(){return this.clone().startOf("day")},eod:function(){return this.clone().endOf("day")},zone:function(){return this._isUTC?0:this._d.getTimezoneOffset()},daysInMonth:function(){return moment.utc([this.year(),this.month()+1,0]).date()},lang:function(t){return t===e?R(this):(this._lang=t,this)}};for(r=0;r<x.length;r++)Y(x[r].toLowerCase(),x[r]);Y("year","FullYear"),moment.duration.fn=D.prototype={weeks:function(){return P(this.days()/7)},valueOf:function(){return this._milliseconds+this._days*864e5+this._months*2592e6},humanize:function(e){var t=+this,n=this.lang().relativeTime,r=G(t,!e,this.lang()),i=t<=0?n.past:n.future;return e&&(typeof i=="function"?r=i(r):r=i.replace(/%s/i,r)),r},lang:moment.fn.lang};for(r in T)T.hasOwnProperty(r)&&(et(r,T[r]),Z(r.toLowerCase()));et("Weeks",6048e5),o&&(module.exports=moment),typeof ender=="undefined"&&(this.moment=moment),typeof define=="function"&&define.amd&&define("moment",[],function(){return moment})}).call(this),function(e,t){function ft(e){if(e&&e.__wrapped__)return e;if(!(this instanceof ft))return new ft(e);this.__wrapped__=e}function dt(e,t,n){t||(t=0);var r=e.length,i=r-t>=(n||a),s=i?{}:e;if(i){var o=t-1;while(++o<r){var u=e[o]+"";(k.call(s,u)?s[u]:s[u]=[]).push(e[o])}}return function(e){if(i){var n=e+"";return k.call(s,n)&&On(s[n],e)>-1}return On(s,e,t)>-1}}function vt(e,n){var r=e.index,i=n.index;e=e.criteria,n=n.criteria;if(e!==n){if(e>n||e===t)return 1;if(e<n||n===t)return-1}return r<i?-1:1}function mt(e,t,n){function o(){var u=arguments,a=i?this:t;r||(e=t[s]),n.length&&(u=u.length?n.concat(O.call(u)):n);if(this instanceof o){Et.prototype=e.prototype,a=new Et;var f=e.apply(a,u);return f&&ut[typeof f]?f:a}return e.apply(a,u)}var r=zt(e),i=!n,s=e;return i&&(n=t),o}function gt(e,n){return e?typeof e!="function"?function(t){return t[e]}:n!==t?function(t,r,i){return e.call(n,t,r,i)}:e:rr}function yt(){var e={arrayLoop:"",bottom:"",hasDontEnumBug:J,isKeysFast:it,objectLoop:"",noArgsEnum:G,noCharByIndex:et,shadowed:E,top:"",useHas:!0};for(var t,n=0;t=arguments[n];n++)for(var r in t)e[r]=t[r];var i=e.args;e.firstArg=/^[^,]+/.exec(i)[0];var s=Function("createCallback, hasOwnProperty, isArguments, objectTypes, nativeKeys, propertyIsEnumerable, stringClass, toString","return function("+i+") {\n"+lt(e)+"\n}");return s(gt,k,xt,ut,H,A,$,M)}function bt(e){return"\\"+at[e]}function wt(e){return Lt[e]}function Et(){}function St(e){return At[e]}function xt(e){return M.call(e)==I}function Ct(e){var t=!1;if(!e||typeof e!="object"||xt(e))return t;var n=e.constructor;return(!tt||typeof e.toString=="function"||typeof (e+"")!="string")&&(!zt(n)||n instanceof n)?K?(Tt(e,function(e,n,r){return t=!k.call(r,n),!1}),t===!1):(Tt(e,function(e,n){t=n}),t===!1||k.call(e,t)):t}function kt(e){var t=[];return Nt(e,function(e,n){t.push(n)}),t}function Ot(e,t,n,r,i){if(e==null)return e;n&&(t=!1);var s=ut[typeof e];if(s){var o=M.call(e);if(!ot[o]||Y&&xt(e))return e;var u=o==q;s=u||(o==X?Jt(e):s)}if(!s||!t)return s?u?O.call(e):_t({},e):e;var a=e.constructor;switch(o){case R:case U:return new a(+e);case W:case $:return new a(e);case V:return a(e.source,v.exec(e))}r||(r=[]),i||(i=[]);var f=r.length;while(f--)if(r[f]==e)return i[f];var l=u?a(e.length):{};return r.push(e),i.push(l),(u?ln:Nt)(e,function(e,n){l[n]=Ot(e,t,null,r,i)}),l}function Dt(e){var t=[];return Tt(e,function(e,n){zt(e)&&t.push(n)}),t.sort()}function Pt(e,t){return e?k.call(e,t):!1}function Ht(e){var t={};return Nt(e,function(e,n){t[e]=n}),t}function jt(e){return e===!0||e===!1||M.call(e)==R}function Ft(e){return M.call(e)==U}function It(e){return e?e.nodeType===1:!1}function qt(e){var t=!0;if(!e)return t;var n=M.call(e),r=e.length;return n==q||n==$||n==I||Y&&xt(e)||n==X&&typeof r=="number"&&zt(e.splice)?!r:(Nt(e,function(){return t=!1}),t)}function Rt(e,t,n,r){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return e===t;var i=M.call(e);if(i!=M.call(t))return!1;switch(i){case R:case U:return+e==+t;case W:return e!=+e?t!=+t:e==0?1/e==1/t:e==+t;case V:case $:return e==t+""}var s=i==q||i==I;if(Y&&!s&&(s=xt(e))&&!xt(t))return!1;if(!s){if(e.__wrapped__||t.__wrapped__)return Rt(e.__wrapped__||e,t.__wrapped__||t);if(i!=X||tt&&(typeof e.toString!="function"&&typeof (e+"")=="string"||typeof t.toString!="function"&&typeof (t+"")=="string"))return!1;var o=e.constructor,u=t.constructor;if(o!=u&&!(zt(o)&&o instanceof o&&zt(u)&&u instanceof u))return!1}n||(n=[]),r||(r=[]);var a=n.length;while(a--)if(n[a]==e)return r[a]==t;var f=-1,l=!0,c=0;n.push(e),r.push(t);if(s){c=e.length,l=c==t.length;if(l)while(c--)if(!(l=Rt(e[c],t[c],n,r)))break;return l}for(var h in e)if(k.call(e,h)){c++;if(!k.call(t,h)||!Rt(e[h],t[h],n,r))return!1}for(h in t)if(k.call(t,h)&&!(c--))return!1;if(J)while(++f<7){h=E[f];if(k.call(e,h)&&(!k.call(t,h)||!Rt(e[h],t[h],n,r)))return!1}return!0}function Ut(e){return P(e?+e:parseFloat(e))}function zt(e){return typeof e=="function"}function Wt(e){return e?ut[typeof e]:!1}function Xt(e){return M.call(e)==W&&e!=+e}function Vt(e){return e===null}function $t(e){return M.call(e)==W}function Kt(e){return M.call(e)==V}function Qt(e){return M.call(e)==$}function Gt(e){return e===t}function Zt(e,t,n){var r=arguments,i=0,s=2,o=r[3],a=r[4];n!==u&&(o=[],a=[],s=r.length);while(++i<s)Nt(r[i],function(t,n){var r,i,s;if(t&&((i=Bt(t))||Jt(t))){var f=o.length;while(f--){r=o[f]==t;if(r)break}r?e[n]=a[f]:(o.push(t),a.push(s=(s=e[n],i)?Bt(s)?s:[]:Jt(s)?s:{}),e[n]=Zt(s,t,u,o,a))}else t!=null&&(e[n]=t)});return e}function en(e,t,n){var r=typeof t=="function",s={};if(r)t=gt(t,n);else var o=T.apply(i,arguments);return Tt(e,function(e,n,i){if(r?!t(e,n,i):On(o,n,1)<0)s[n]=e}),s}function tn(e){var t=[];return Nt(e,function(e,n){t.push([n,e])}),t}function nn(e,t,n){var r={};if(typeof t!="function"){var s=0,o=T.apply(i,arguments),u=o.length;while(++s<u){var a=o[s];a in e&&(r[a]=e[a])}}else t=gt(t,n),Tt(e,function(e,n,i){t(e,n,i)&&(r[n]=e)});return r}function rn(e){var t=[];return Nt(e,function(e){t.push(e)}),t}function sn(e,t){var n=e?e.length:0;return typeof n=="number"?(M.call(e)==$?e.indexOf(t):On(e,t))>-1:Sn(e,function(e){return e===t})}function on(e,t,n){var r={};return t=gt(t,n),ln(e,function(e,n,i){n=t(e,n,i),k.call(r,n)?r[n]++:r[n]=1}),r}function un(e,t,n){var r=!0;return t=gt(t,n),ln(e,function(e,n,i){return r=t(e,n,i)}),!!r}function an(e,t,n){var r=[];return t=gt(t,n),ln(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r}function fn(e,t,n){var r;return t=gt(t,n),Sn(e,function(e,n,i){return t(e,n,i)&&(r=e,!0)}),r}function cn(e,t,n){var r={};return t=gt(t,n),ln(e,function(e,n,i){n=t(e,n,i),(k.call(r,n)?r[n]:r[n]=[]).push(e)}),r}function hn(e,t){var n=O.call(arguments,2),r=typeof t=="function",i=[];return ln(e,function(e){i.push((r?t:e[t]).apply(e,n))}),i}function pn(e,t,n){var r=-1,i=e?e.length:0,s=Array(typeof i=="number"?i:0);t=gt(t,n);if(Bt(e))while(++r<i)s[r]=t(e[r],r,e);else ln(e,function(e,n,i){s[++r]=t(e,n,i)});return s}function dn(e,t,n){var r=-Infinity,i=-1,s=e?e.length:0,o=r;if(t||typeof s!="number")t=gt(t,n),ln(e,function(e,n,i){var s=t(e,n,i);s>r&&(r=s,o=e)});else while(++i<s)e[i]>o&&(o=e[i]);return o}function vn(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||typeof s!="number")t=gt(t,n),ln(e,function(e,n,i){var s=t(e,n,i);s<r&&(r=s,o=e)});else while(++i<s)e[i]<o&&(o=e[i]);return o}function mn(e,t){var n=[];return ln(e,function(e){n.push(e[t])}),n}function gn(e,t,n,r){var i=arguments.length<3;return t=gt(t,r),ln(e,function(e,r,s){n=i?(i=!1,e):t(n,e,r,s)}),n}function yn(e,t,n,r){var i=e,s=e?e.length:0,o=arguments.length<3;if(typeof s!="number"){var u=Yt(e);s=u.length}else et&&M.call(e)==$&&(i=e.split(""));return ln(e,function(e,a,f){a=u?u[--s]:--s,n=o?(o=!1,i[a]):t.call(r,n,i[a],a,f)}),n}function bn(e,t,n){return t=gt(t,n),an(e,function(e,n,r){return!t(e,n,r)})}function wn(e){var t=-1,n=Array(e?e.length:0);return ln(e,function(e){var r=N(F()*(++t+1));n[t]=n[r],n[r]=e}),n}function En(e){var t=e?e.length:0;return typeof t=="number"?t:Yt(e).length}function Sn(e,t,n){var r;return t=gt(t,n),ln(e,function(e,n,i){return!(r=t(e,n,i))}),!!r}function xn(e,t,n){var r=[];t=gt(t,n),ln(e,function(e,n,i){r.push({criteria:t(e,n,i),index:n,value:e})});var i=r.length;r.sort(vt);while(i--)r[i]=r[i].value;return r}function Tn(e){return e&&typeof e.length=="number"?(Z?M.call(e)==$:typeof e=="string")?e.split(""):O.call(e):rn(e)}function Nn(e,t){var n=[];return Tt(t,function(e,t){n.push(t)}),an(e,function(e){var r=n.length;while(r--){var i=e[n[r]]===t[n[r]];if(!i)break}return!!i})}function Cn(e){var t=-1,n=e?e.length:0,r=[];while(++t<n){var i=e[t];i&&r.push(i)}return r}function kn(e){var t=-1,n=e?e.length:0,r=T.apply(i,arguments),s=dt(r,n),o=[];while(++t<n){var u=e[t];s(u)||o.push(u)}return o}function Ln(e,t,n){if(e)return t==null||n?e[0]:O.call(e,0,t)}function An(e,t){var n=-1,r=e?e.length:0,i=[];while(++n<r){var s=e[n];Bt(s)?L.apply(i,t?s:An(s)):i.push(s)}return i}function On(e,t,n){var r=-1,i=e?e.length:0;if(typeof n=="number")r=(n<0?B(0,i+n):n||0)-1;else if(n)return r=Fn(e,t),e[r]===t?r:-1;while(++r<i)if(e[r]===t)return r;return-1}function Mn(e,t,n){return e?O.call(e,0,-(t==null||n?1:t)):[]}function _n(e){var t=arguments,n=t.length,r={},i=[];return ln(e,function(e){if(On(i,e)<0){var s=n;while(--s)if(!(r[s]||(r[s]=dt(t[s])))(e))return;i.push(e)}}),i}function Dn(e,t,n){if(e){var r=e.length;return t==null||n?e[r-1]:O.call(e,-t||r)}}function Pn(e,t,n){var r=e?e.length:0;typeof n=="number"&&(r=(n<0?B(0,r+n):j(n,r-1))+1);while(r--)if(e[r]===t)return r;return-1}function Hn(e,t){var n=-1,r=e?e.length:0,i={};while(++n<r){var s=e[n];t?i[s]=t[n]:i[s[0]]=s[1]}return i}function Bn(e,t,n){e=+e||0,n=+n||1,t==null&&(t=e,e=0);var r=-1,i=B(0,x((t-e)/n)),s=Array(i);while(++r<i)s[r]=e,e+=n;return s}function jn(e,t,n){return e?O.call(e,t==null||n?1:t):[]}function Fn(e,t,n,r){var i=0,s=e?e.length:i;n=n?gt(n,r):rr,t=n(t);while(i<s){var o=i+s>>>1;n(e[o])<t?i=o+1:s=o}return i}function In(){var e=-1,t=T.apply(i,arguments),n=t.length,r=[];while(++e<n){var s=t[e];On(r,s)<0&&r.push(s)}return r}function qn(e,t,n,r){var i=-1,s=e?e.length:0,o=[],u=[];typeof t=="function"&&(r=n,n=t,t=!1),n=gt(n,r);while(++i<s){var a=n(e[i],i,e);if(t?!i||u[u.length-1]!==a:On(u,a)<0)u.push(a),o.push(e[i])}return o}function Rn(e){var t=-1,n=e?e.length:0,r=dt(arguments,1,20),i=[];while(++t<n){var s=e[t];r(s)||i.push(s)}return i}function Un(e){var t=-1,n=e?dn(mn(arguments,"length")):0,r=Array(n);while(++t<n)r[t]=mn(arguments,t);return r}function zn(e,t){return e<1?t():function(){if(--e<1)return t.apply(this,arguments)}}function Wn(e,t){return rt||_&&arguments.length>2?_.call.apply(_,arguments):mt(e,t,O.call(arguments,2))}function Xn(e){var t=arguments,n=t.length>1?0:(t=Dt(e),-1),r=t.length;while(++n<r){var i=t[n];e[i]=Wn(e[i],e)}return e}function Vn(){var e=arguments;return function(){var t=arguments,n=e.length;while(n--)t=[e[n].apply(this,t)];return t[0]}}function $n(e,t,n){function u(){o=null,n||(i=e.apply(s,r))}var r,i,s,o;return function(){var a=n&&!o;return r=arguments,s=this,clearTimeout(o),o=setTimeout(u,t),a&&(i=e.apply(s,r)),i}}function Jn(e,n){var r=O.call(arguments,2);return setTimeout(function(){e.apply(t,r)},n)}function Kn(e){var n=O.call(arguments,1);return setTimeout(function(){e.apply(t,n)},1)}function Qn(e,t){return mt(t,e,O.call(arguments,2))}function Gn(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return k.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}}function Yn(e){var t,n=!1;return function(){return n?t:(n=!0,t=e.apply(this,arguments),e=null,t)}}function Zn(e){return mt(e,O.call(arguments,1))}function er(e,t){function u(){o=new Date,s=null,r=e.apply(i,n)}var n,r,i,s,o=0;return function(){var a=new Date,f=t-(a-o);return n=arguments,i=this,f<=0?(clearTimeout(s),o=a,r=e.apply(i,n)):s||(s=setTimeout(u,f)),r}}function tr(e,t){return function(){var n=[e];return L.apply(n,arguments),t.apply(this,n)}}function nr(e){return e==null?"":(e+"").replace(b,wt)}function rr(e){return e}function ir(e){ln(Dt(e),function(t){var n=ft[t]=e[t];ft.prototype[t]=function(){var e=[this.__wrapped__];L.apply(e,arguments);var t=n.apply(ft,e);return this.__chain__&&(t=new ft(t),t.__chain__=!0),t}})}function sr(){return e._=f,this}function or(e,t){return e==null&&t==null&&(t=1),e=+e||0,t==null&&(t=e,e=0),e+N(F()*((+t||0)-e+1))}function ur(e,t){var n=e?e[t]:null;return zt(n)?e[t]():n}function ar(e,t,n){e||(e=""),n||(n={});var r,i,s=0,o=ft.templateSettings,u="__p += '",a=n.variable||o.variable,f=a,c=RegExp((n.escape||o.escape||y).source+"|"+(n.interpolate||o.interpolate||y).source+"|"+(n.evaluate||o.evaluate||y).source+"|$","g");e.replace(c,function(t,n,i,o,a){u+=e.slice(s,a).replace(w,bt),u+=n?"' +\n__e("+n+") +\n'":o?"';\n"+o+";\n__p += '":i?"' +\n((__t = ("+i+")) == null ? '' : __t) +\n'":"",r||(r=o||l.test(n||i)),s=a+t.length}),u+="';\n";if(!f){a="obj";if(r)u="with ("+a+") {\n"+u+"\n}\n";else{var v=RegExp("(\\(\\s*)"+a+"\\."+a+"\\b","g");u=u.replace(m,"$&"+a+".").replace(v,"$1__d")}}u=(r?u.replace(h,""):u).replace(p,"$1").replace(d,"$1;"),u="function("+a+") {\n"+(f?"":a+" || ("+a+" = {});\n")+"var __t, __p = '', __e = _.escape"+(r?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":(f?"":", __d = "+a+"."+a+" || "+a)+";\n")+u+"return __p\n}";var g=st?"\n//@ sourceURL="+(n.sourceURL||"/lodash/template/source["+S++ +"]"):"";try{i=Function("_","return "+u+g)(ft)}catch(b){throw b.source=u,b}return t?i(t):(i.source=u,i)}function fr(e,t,n){e=+e||0;var r=-1,i=Array(e);while(++r<e)i[r]=t.call(n,r);return i}function lr(e){return e==null?"":(e+"").replace(c,St)}function cr(e){var t=o++;return e?e+t:t}function hr(e){return e=new ft(e),e.__chain__=!0,e}function pr(e,t){return t(e),e}function dr(){return this.__chain__=!0,this}function vr(){return this.__wrapped__}var n=typeof exports=="object"&&exports,r=typeof global=="object"&&global;r.global===r&&(e=r);var i=[],s={},o=0,u={},a=30,f=e._,l=/[-?+=!~*%&^<>|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/,c=/&(?:amp|lt|gt|quot|#x27);/g,h=/\b__p \+= '';/g,p=/\b(__p \+=) '' \+/g,d=/(__e\(.*?\)|\b__t\)) \+\n'';/g,v=/\w*$/,m=/(?:__e|__t = )\(\s*(?![\d\s"']|this\.)/g,g=RegExp("^"+(s.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),y=/($^)/,b=/[&<>"']/g,w=/['\n\r\t\u2028\u2029\\]/g,E=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],S=0,x=Math.ceil,T=i.concat,N=Math.floor,C=g.test(C=Object.getPrototypeOf)&&C,k=s.hasOwnProperty,L=i.push,A=s.propertyIsEnumerable,O=i.slice,M=s.toString,_=g.test(_=O.bind)&&_,D=g.test(D=Array.isArray)&&D,P=e.isFinite,H=g.test(H=Object.keys)&&H,B=Math.max,j=Math.min,F=Math.random,I="[object Arguments]",q="[object Array]",R="[object Boolean]",U="[object Date]",z="[object Function]",W="[object Number]",X="[object Object]",V="[object RegExp]",$="[object String]",J,K,Q=(Q={0:1,length:1},i.splice.call(Q,0,1),Q[0]),G=!0;(function(){function t(){this.x=1}var e=[];t.prototype={valueOf:1,y:1};for(var n in new t)e.push(n);for(n in arguments)G=!n;J=!/valueOf/.test(e),K=e[0]!="x"})(1);var Y=!xt(arguments),Z=O.call("x")[0]!="x",et="x"[0]+Object("x")[0]!="xx";try{var tt=({toString:0}+"",M.call(e.document||0)==X)}catch(nt){}var rt=_&&/\n|Opera/.test(_+M.call(e.opera)),it=H&&/^.+$|true/.test(H+!!e.attachEvent);try{var st=(Function("//@")(),!e.attachEvent)}catch(nt){}var ot={};ot[I]=ot[z]=!1,ot[q]=ot[R]=ot[U]=ot[W]=ot[X]=ot[V]=ot[$]=!0;var ut={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,"undefined":!1},at={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};ft.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""};var lt=ar("<% if (obj.useStrict) { %>'use strict';\n<% } %>var index, value, iteratee = <%= firstArg %>, result = <%= firstArg %>;\nif (!<%= firstArg %>) return result;\n<%= top %>;\n<% if (arrayLoop) { %>var length = iteratee.length; index = -1;\nif (typeof length == 'number') { <% if (noCharByIndex) { %>\n if (toString.call(iteratee) == stringClass) {\n iteratee = iteratee.split('')\n } <% } %>\n while (++index < length) {\n value = iteratee[index];\n <%= arrayLoop %>\n }\n}\nelse { <% } else if (noArgsEnum) { %>\n var length = iteratee.length; index = -1;\n if (length && isArguments(iteratee)) {\n while (++index < length) {\n value = iteratee[index += ''];\n <%= objectLoop %>\n }\n } else { <% } %> <% if (!hasDontEnumBug) { %>\n var skipProto = typeof iteratee == 'function' && \n propertyIsEnumerable.call(iteratee, 'prototype');\n <% } %> <% if (isKeysFast && useHas) { %>\n var ownIndex = -1,\n ownProps = objectTypes[typeof iteratee] ? nativeKeys(iteratee) : [],\n length = ownProps.length;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n <% if (!hasDontEnumBug) { %>if (!(skipProto && index == 'prototype')) {\n <% } %> value = iteratee[index];\n <%= objectLoop %>\n <% if (!hasDontEnumBug) { %>}\n<% } %> } <% } else { %>\n for (index in iteratee) {<% if (!hasDontEnumBug || useHas) { %>\n if (<% if (!hasDontEnumBug) { %>!(skipProto && index == 'prototype')<% } if (!hasDontEnumBug && useHas) { %> && <% } if (useHas) { %>hasOwnProperty.call(iteratee, index)<% } %>) { <% } %>\n value = iteratee[index];\n <%= objectLoop %>; <% if (!hasDontEnumBug || useHas) { %>\n }<% } %>\n } <% } %> <% if (hasDontEnumBug) { %>\n\n var ctor = iteratee.constructor;\n <% for (var k = 0; k < 7; k++) { %>\n index = '<%= shadowed[k] %>';\n if (<% if (shadowed[k] == 'constructor') { %>!(ctor && ctor.prototype === iteratee) && <% } %>hasOwnProperty.call(iteratee, index)) {\n value = iteratee[index];\n <%= objectLoop %>\n } <% } %> <% } %> <% if (arrayLoop || noArgsEnum) { %>\n}<% } %>\n<%= bottom %>;\nreturn result"),ct={args:"collection, callback, thisArg",top:"callback = createCallback(callback, thisArg)",arrayLoop:"if (callback(value, index, collection) === false) return result",objectLoop:"if (callback(value, index, collection) === false) return result"},ht={useHas:!1,args:"object",top:"for (var argsIndex = 1, argsLength = arguments.length; argsIndex < argsLength; argsIndex++) {\n if (iteratee = arguments[argsIndex]) {",objectLoop:"result[index] = value",bottom:" }\n}"},pt={arrayLoop:null};Y&&(xt=function(e){return e?k.call(e,"callee"):!1});var Tt=yt(ct,pt,{useHas:!1}),Nt=yt(ct,pt),Lt={"&":"&","<":"<",">":">",'"':""","'":"'"},At=Ht(Lt),Mt=yt(ht,{objectLoop:"if (result[index] == null) "+ht.objectLoop}),_t=yt(ht),Bt=D||function(e){return M.call(e)==q};zt(/x/)&&(zt=function(e){return M.call(e)==z});var Jt=C?function(e){if(!e||typeof e!="object")return!1;var t=e.valueOf,n=typeof t=="function"&&(n=C(t))&&C(n);return n?e==n||C(e)==n&&!xt(e):Ct(e)}:Ct,Yt=H?function(e){var t=typeof e;return t=="function"&&A.call(e,"prototype")?kt(e):e&&ut[t]?H(e):[]}:kt,ln=yt(ct);ft.VERSION="0.9.0",ft.after=zn,ft.bind=Wn,ft.bindAll=Xn,ft.chain=hr,ft.clone=Ot,ft.compact=Cn,ft.compose=Vn,ft.contains=sn,ft.countBy=on,ft.debounce=$n,ft.defaults=Mt,ft.defer=Kn,ft.delay=Jn,ft.difference=kn,ft.escape=nr,ft.every=un,ft.extend=_t,ft.filter=an,ft.find=fn,ft.first=Ln,ft.flatten=An,ft.forEach=ln,ft.forIn=Tt,ft.forOwn=Nt,ft.functions=Dt,ft.groupBy=cn,ft.has=Pt,ft.identity=rr,ft.indexOf=On,ft.initial=Mn,ft.intersection=_n,ft.invert=Ht,ft.invoke=hn,ft.isArguments=xt,ft.isArray=Bt,ft.isBoolean=jt,ft.isDate=Ft,ft.isElement=It,ft.isEmpty=qt,ft.isEqual=Rt,ft.isFinite=Ut,ft.isFunction=zt,ft.isNaN=Xt,ft.isNull=Vt,ft.isNumber=$t,ft.isObject=Wt,ft.isPlainObject=Jt,ft.isRegExp=Kt,ft.isString=Qt,ft.isUndefined=Gt,ft.keys=Yt,ft.last=Dn,ft.lastIndexOf=Pn,ft.lateBind=Qn,ft.map=pn,ft.max=dn,ft.memoize=Gn,ft.merge=Zt,ft.min=vn,ft.mixin=ir,ft.noConflict=sr,ft.object=Hn,ft.omit=en,ft.once=Yn,ft.pairs=tn,ft.partial=Zn,ft.pick=nn,ft.pluck=mn,ft.random=or,ft.range=Bn,ft.reduce=gn,ft.reduceRight=yn,ft.reject=bn,ft.rest=jn,ft.result=ur,ft.shuffle=wn,ft.size=En,ft.some=Sn,ft.sortBy=xn,ft.sortedIndex=Fn,ft.tap=pr,ft.template=ar,ft.throttle=er,ft.times=fr,ft.toArray=Tn,ft.unescape=lr,ft.union=In,ft.uniq=qn,ft.uniqueId=cr,ft.values=rn,ft.where=Nn,ft.without=Rn,ft.wrap=tr,ft.zip=Un,ft.all=un,ft.any=Sn,ft.collect=pn,ft.detect=fn,ft.drop=jn,ft.each=ln,ft.foldl=gn,ft.foldr=yn,ft.head=Ln,ft.include=sn,ft.inject=gn,ft.methods=Dt,ft.select=an,ft.tail=jn,ft.take=Ln,ft.unique=qn,ft._iteratorTemplate=lt,ir(ft),ft.prototype.chain=dr,ft.prototype.value=vr,ln(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=i[e];ft.prototype[e]=function(){var e=this.__wrapped__;return t.apply(e,arguments),Q&&e.length===0&&delete e[0],this.__chain__&&(e=new ft(e),e.__chain__=!0),e}}),ln(["concat","join","slice"],function(e){var t=i[e];ft.prototype[e]=function(){var e=this.__wrapped__,n=t.apply(e,arguments);return this.__chain__&&(n=new ft(n),n.__chain__=!0),n}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(e._=ft,define(function(){return ft})):n?typeof module=="object"&&module&&module.exports==n?(module.exports=ft)._=ft:n._=ft:e._=ft}(this),function(){var e=this.math={};e.mean=e.ave=e.average=function(t,n){return e.sum(t,n)/_(t).size()},e.median=function(t){var n=(t.length+1)/2,r=e.sort(t);return r.length%2?r[n-1]:(r[n-1.5]+r[n-.5])/2},e.pow=function(e,t){if(_.isNumber(e))return Math.pow(e,t);if(_.isArray(e))return _.map(e,function(e){return _.pow(e,t)})},e.scale=function(e,t){var t=t||1,n=_.max(e);return _.map(e,function(e){return e*(t/n)})},e.slope=function(e,t){return(t[1]-e[1])/(t[0]-e[0])},e.sort=function(e){return e.sort(function(e,t){return e-t})},e.stdDeviation=e.sigma=function(e){return Math.sqrt(_(e).variance())},e.sum=function(e,t){if(_.isArray(e)&&typeof e[0]=="number")var n=e;else var t=t||"value",n=_(e).pluck(t);var r=0;for(var i=0,s=n.length;i<s;i++)r+=n[i];return r},e.transpose=function(e){var t=[];return _(e).each(function(e,n){_(e).each(function(e,r){t[r]||(t[r]=[]),t[r][n]=e})}),t},e.variance=function(e){var t=_(e).mean();return _(e).chain().map(function(e){return _(e-t).pow(2)}).mean().value()},_.mixin(e)}(),function(e){function g(e){var t=m[e]={};return f(e.split(/\s+/),function(e){t[e]=!0}),t}var t={},n=Array.prototype,r=Object.prototype,i=r.hasOwnProperty,s=r.toString,o=n.forEach,u=n.indexOf,a=n.slice,f=function(e,n,r){var s,u,a;if(!e)return;if(o&&e.forEach===o)e.forEach(n,r);else if(e.length===+e.length){for(u=0,a=e.length;u<a;u++)if(u in e&&n.call(r,e[u],u,e)===t)return}else for(s in e)if(i.call(e,s)&&n.call(r,e[s],s,e)===t)return},l=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},c=function(e){return f(a.call(arguments,1),function(t){var n;for(n in t)t[n]!==void 0&&(e[n]=t[n])}),e},h=function(e,t,n){var r;if(t){if(u)return u.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},p={};f("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){p["[object "+e+"]"]=e.toLowerCase()});var d=function(e){return e==null?String(e):p[s.call(e)]||"object"},v={},m={};v.Callbacks=function(e){e=typeof e=="string"?m[e]||g(e):c({},e);var t,n,r,i,s,o,u=[],a=!e.once&&[],l=function(f){t=e.memory&&f,n=!0,o=i||0,i=0,s=u.length,r=!0;for(;u&&o<s;o++)if(u[o].apply(f[0],f[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,u&&(a?a.length&&l(a.shift()):t?u=[]:p.disable())},p={add:function(){if(u){var n=u.length;(function o(t){f(t,function(t){var n=d(t);n==="function"&&(!e.unique||!p.has(t))?u.push(t):t&&t.length&&n!=="string"&&o(t)})})(arguments),r?s=u.length:t&&(i=n,l(t))}return this},remove:function(){return u&&f(arguments,function(e){var t;while((t=h(e,u,t))>-1)u.splice(t,1),r&&(t<=s&&s--,t<=o&&o--)}),this},has:function(e){return h(e,u)>-1},empty:function(){return u=[],this},disable:function(){return u=a=t=undefined,this},disabled:function(){return!u},lock:function(){return a=undefined,t||p.disable(),this},locked:function(){return!a},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],u&&(!n||a)&&(r?a.push(t):l(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!n}};return p},v.Deferred=function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){f(t,function(t,r){var s=t[0],o=e[r];i[t[1]](l(o)?function(){var e=o.apply(this,arguments);e&&l(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return typeof e=="object"?c(e,r):r}},i={};return r.pipe=r.then,f(t,function(e,s){var o=e[2],u=e[3];r[e[1]]=o.add,u&&o.add(function(){n=u},t[s^1][2].disable,t[2][2].lock),i[e[0]]=o.fire,i[e[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},v.when=function(e){var t=0,n=a.call(arguments),r=n.length,i=r!==1||e&&l(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?a.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,f,c;if(r>1){u=new Array(r),f=new Array(r),c=new Array(r);for(;t<r;t++)n[t]&&l(n[t].promise)?n[t].promise().done(o(t,c,n)).fail(s.reject).progress(o(t,f,u)):--i}return i||s.resolveWith(c,n),s.promise()},typeof module!="undefined"&&module.exports?module.exports=v:typeof e._!="undefined"?e._.mixin(v):e._=v}(this),function(e,_){var t=e.Miso=e.Miso||{};t.Events={publish:function(e){var t=_.toArray(arguments);return t.shift(),this._events&&this._events[e]&&_.each(this._events[e],function(e){e.callback.apply(e.context||this,t)},this),this},subscribe:function(e,t,n){n=n||{},this._events=this._events||{},this._events[e]=this._events[e]||[];var r={callback:t,priority:n.priority||0,token:n.token||_.uniqueId("t"),context:n.context||this},i;return _.each(this._events[e],function(e,t){if(!_.isUndefined(i))return;e.priority<=r.priority&&(i=t)}),this._events[e].splice(i,0,r),r.token},subscribeOnce:function(e,t,n){this._events=this._events||{},n=n||{};var r=this;return typeof n.token=="undefined"&&(n.token=_.uniqueId("t")),this.subscribe(e,function(){r.unsubscribe(e,{token:n.token}),t.apply(this,arguments)},n)},unsubscribe:function(e,t){return _.isUndefined(this._events[e])?this:(_.isFunction(t)?this._events[e]=_.reject(this._events[e],function(e){return e.callback===t}):_.isString(t)?this._events[e]=_.reject(this._events[e],function(e){return e.token===t}):this._events[e]=[],this)}}}(this,_),function(e){e.Miso=e.Miso||{},e.Miso.Dataset=function(e){e=e||{},this.length=0,this._columns=[],this._columnPositionByName={},this._computedColumns=[],this._initialize(e)}}(this),function(e,_){var t=e.Miso||(e.Miso={}),n=e.Miso.Dataset;n.Column=function(e){return _.extend(this,e),this._id=e.id||_.uniqueId(),this.data=e.data||[],this},_.extend(n.Column.prototype,{toNumeric:function(e){return n.types[this.type].numeric(e)},numericAt:function(e){return this.toNumeric(this.data[e])},coerce:function(){this.data=_.map(this.data,function(e){return n.types[this.type].coerce(e,this)},this)},compute:function(e,t){if(this.func){var n=this.func(e);return typeof t!="undefined"?this.data[t]=n:this.data.push(n),n}},isComputed:function(){return!_.isUndefined(this.func)},_sum:function(){return _.sum(this.data)},_mean:function(){var e=0;for(var t=0;t<this.data.length;t++)e+=this.numericAt(t);return e/=this.data.length,n.types[this.type].coerce(e,this)},_median:function(){return n.types[this.type].coerce(_.median(this.data),this)},_max:function(){var e=-Infinity;for(var t=0;t<this.data.length;t++)this.data[t]!==null&&n.types[this.type].compare(this.data[t],e)>0&&(e=this.numericAt(t));return n.types[this.type].coerce(e,this)},_min:function(){var e=Infinity;for(var t=0;t<this.data.length;t++)this.data[t]!==null&&n.types[this.type].compare(this.data[t],e)<0&&(e=this.numericAt(t));return n.types[this.type].coerce(e,this)}}),n.DataView=function(e){if(typeof e!="undefined"){e=e||(e={});if(_.isUndefined(e.parent))throw new Error("A view must have a parent specified.");this.parent=e.parent,this._initialize(e)}},_.extend(n.DataView.prototype,{_initialize:function(e){this.parent.syncable===!0&&(_.extend(this,t.Events),this.syncable=!0),this.idAttribute=this.parent.idAttribute,this.filter={},this.filter.columns=_.bind(this._columnFilter(e.filter.columns||undefined),this),this.filter.rows=_.bind(this._rowFilter(e.filter.rows||undefined),this),this._columns=this._selectData(),n.Builder.cacheColumns(this),n.Builder.cacheRows(this),this.syncable&&this.parent.subscribe("change",this._sync,{context:this})},_sync:function(e){var t=e.deltas,r=null;_.each(t,function(t,i){var s=this._rowPositionById[t[this.idAttribute]];if(typeof s=="undefined"&&n.Event.isAdd(t))this.filter.rows&&this.filter.rows(t.changed)&&(this._add(t.changed),r="add");else{if(s==="undefined")return;_.each(t.changed,function(e,t){var n=this._columnPositionByName[t];if(_.isUndefined(n))return;this._columns[n].data[s]=e,r="update"},this)}var o=this.rowByPosition(s);if(n.Event.isRemove(t)||this.filter.row&&!this.filter.row(o)){var u={old:this.rowByPosition(s),changed:{}};u[this.idAttribute]=t[this.idAttribute],e.deltas.splice(i,1,u),this._remove(s),r="delete"}},this),this.syncable&&(this.publish(r,e),this.publish("change",e))},where:function(e,t){return t=t||{},t.filter=t.filter||{},_.isFunction(e)?t.filter.rows=e:t.filter=e,t.parent=this,new n.DataView(t)},_selectData:function(){var e=[];return _.each(this.parent._columns,function(t){this.filter.columns(t)&&e.push(new n.Column({name:t.name,data:[],type:t.type,_id:t._id}))},this),this.parent.each(function(t){if(!this.filter.rows(t))return;for(var n=0;n<e.length;n++)e[n].data.push(t[e[n].name])},this),e},_columnFilter:function(e){var t;return _.isUndefined(e)?t=function(){return!0}:(_.isString(e)&&(e=[e]),e.push(this.idAttribute),t=function(t){return _.indexOf(e,t.name)===-1?!1:!0}),t},_rowFilter:function(e){var t;return _.isNumber(e)&&(e=[e]),_.isUndefined(e)?t=function(){return!0}:_.isFunction(e)?t=e:t=_.bind(function(t){return _.indexOf(e,t[this.idAttribute])===-1?!1:!0},this),t},column:function(e){return this._column(e)},_column:function(e){if(_.isUndefined(this._columnPositionByName))return undefined;var t=this._columnPositionByName[e];return this._columns[t]},columns:function(e){return new n.DataView({filter:{columns:e},parent:this})},columnNames:function(){var e=_.pluck(this._columns,"name");return _.reject(e,function(e){return e===this.idAttribute||e==="_oids"},this)},hasColumn:function(e){return!_.isUndefined(this._columnPositionByName[e])},each:function(e,t){for(var n=0;n<this.length;n++)e.apply(t||this,[this.rowByPosition(n),n])},reverseEach:function(e,t){for(var n=this.length-1;n>=0;n--)e.apply(t||this,[this.rowByPosition(n),n])},eachColumn:function(e,t){var n=this.columnNames();for(var r=0;r<n.length;r++)e.apply(t||this,[n[r],this.column(n[r]),r])},rowByPosition:function(e){return this._row(e)},rowById:function(e){return this._row(this._rowPositionById[e])},_row:function(e){var t={};return _.each(this._columns,function(n){t[n.name]=n.data[e]}),t},_remove:function(e){var t=this._rowPositionById[e];return _.each(this._columns,function(e){e.data.splice(t,1)}),delete this._rowPositionById[e],this._rowIdByPosition.splice(t,1),this.length--,this},_add:function(e){_.each(e,function(t,r){var i=this.column(r);if(i.isComputed())throw"You're trying to update a computed column. Those get computed!";if(typeof i!="undefined"){var s=n.types[i.type];if(!i.force&&!s.test(e[i.name],i))throw"incorrect value '"+e[i.name]+"' of type "+n.typeOf(e[i.name],i)+" passed to column '"+i.name+"' with type "+i.type;_.isUndefined(i.before)||(e[i.name]=i.before(e[i.name])),e[i.name]=s.coerce(e[i.name],i)}},this),this._computedColumns&&_.each(this._computedColumns,function(t){var n=t.compute(e);e[t.name]=n});if(_.isUndefined(this.comparator)){_.each(this._columns,function(t){t.isComputed()||t.data.push(!_.isUndefined(e[t.name])&&!_.isNull(e[t.name])?e[t.name]:null)}),this.length++,this._rowIdByPosition=this._rowIdByPosition||(this._rowIdByPosition=[]),this._rowPositionById=this._rowPositionById||(this._rowPositionById={});if(typeof this._rowPositionById[e[this.idAttribute]]!="undefined")throw"The id "+e[this.idAttribute]+" is not unique. The "+this.idAttribute+" column must be unique";this._rowPositionById[e[this.idAttribute]]=this._rowIdByPosition.length,this._rowIdByPosition.push(e[this.idAttribute])}else{var t=function(e,t,n){Array.prototype.splice.apply(n,[e,0].concat(t))},r;this.length++;for(r=0;r<this.length;r++){var i=this.rowByPosition(r);if(_.isUndefined(i[this.idAttribute])||this.comparator(e,i)<0){_.each(this._columns,function(n){t(r,e[n.name]?e[n.name]:null,n.data)});break}}this._rowIdByPosition=[],this._rowPositionById={},this.each(function(e,t){this._rowIdByPosition.push(e[this.idAttribute]),this._rowPositionById[e[this.idAttribute]]=t},this)}return this},rows:function(e){return new n.DataView({filter:{rows:e},parent:this})},sort:function(e){var t={},n=[];_.isFunction(e)?t.comparator=e:t=e||{};if(t.comparator)this.comparator=t.comparator;else if(_.isUndefined(this.comparator))throw new Error("Cannot sort without this.comparator.");var r,i,s;for(r=0;r<this.length;r++)n[r]=this._row(r);n.sort(this.comparator),r=n.length;while(r--){s=n[r],this._rowIdByPosition[r]=s[this.idAttribute],this._rowPositionById[s[this.idAttribute]]=r,i=this._columns.length;while(i--){var o=this._columns[i];o.data[r]=s[o.name]}}return this.syncable&&!t.silent&&this.publish("sort"),this},toJSON:function(){var e=[];for(var t=0;t<this.length;t++)e.push(this.rowByPosition(t));return e}})}(this,_),function(e,_,moment){var t=e.Miso||(e.Miso={}),n=e.Miso.Dataset;n.prototype=new n.DataView,_.extend(n.prototype,{_initialize:function(e){e.sync===!0&&(_.extend(this,t.Events),this.syncable=!0),this.idAttribute=e.idAttribute||"_id",this.importer=e.importer||null,this.parser=e.parser||n.Parsers.Obj,_.isUndefined(e.parser)&&(e.strict?this.parser=n.Parsers.Strict:e.delimiter&&(this.parser=n.Parsers.Delimited)),this.importer===null&&(e.url?e.interval?(this.importer=n.Importers.Polling,this.interval=e.interval):this.importer=n.Importers.Remote:this.importer=n.Importers.Local),this.parser=new this.parser(e),this.parser instanceof n.Parsers.Delimited&&(e.dataType="text"),this.importer=new this.importer(e),e.comparator&&(this.comparator=e.comparator),e.ready&&(this.ready=e.ready),e.resetOnFetch&&(this.resetOnFetch=e.resetOnFetch),e.uniqueAgainst&&(this.uniqueAgainst=e.uniqueAgainst),_.isUndefined(e.data)&&_.isUndefined(e.url)&&this._addIdColumn(),e.deferred?this.deferred=e.deferred:this.deferred=new _.Deferred,e.columns&&this.addColumns(e.columns)},fetch:function(e){e=e||{};var t=this.deferred;if(_.isNull(this.importer))throw"No importer defined";return this.importer.fetch({success:_.bind(function(n){try{this._apply(n)}catch(r){if(!e.error)throw r;e.error.call(this,r)}this.comparator&&this.sort(),this.ready&&this.ready.call(this),e.success&&e.success.call(this),t.resolveWith(this,[this])},this),error:_.bind(function(n){e.error&&e.error.call(this,n),t.reject(n)},this)}),t.promise()},_applications:{againstColumn:function(e){var t=[],r=_.keys(e),i,s=this.uniqueAgainst,o=this.column(s),u=[],a=[],f=[];_.each(e[s],function(t,r){var i=o.data.indexOf(n.types[o.type].coerce(t)),s={};_.each(e,function(e,t){s[t]=e[r]}),i===-1?u.push(s):(a.push(s),s[this.idAttribute]=this.rowById(this.column(this.idAttribute).data[i])[this.idAttribute],this.update(s))},this),u.length>0&&this.add(u)},blind:function(e){var t,n,r=[],i,s=_.keys(e),o=_.max(_.map(s,function(t){return e[t].length},this));for(var u=0;u<o;u++){i={};for(var a=0;a<s.length;a++)i[s[a]]=e[s[a]][u];r.push(i)}this.add(r)}},_apply:function(e){var t=this.parser.parse(e);if(!this.fetched)this._addIdColumn(),this.addColumns(_.map(t.columns,function(e){return{name:e}})),n.Builder.detectColumnTypes(this,t.data),this._applications.blind.call(this,t.data),this.fetched=!0;else if(this.resetOnFetch)this.reset(),this._applications.blind.call(this,t.data);else if(this.uniqueAgainst){if(!this.hasColumn(this.uniqueAgainst))throw new Error("You requested a unique add against a column that doesn't exist.");this._applications.againstColumn.call(this,t.data)}else this._applications.blind.call(this,t.data);n.Builder.cacheRows(this)},addColumns:function(e){_.each(e,function(e){this.addColumn(e)},this)},addComputedColumn:function(e,t,r){if(!_.isUndefined(this.column(e)))throw"There is already a column by this name.";if(typeof n.types[t]=="undefined")throw"The type "+t+" doesn't exist";var i=new n.Column({name:e,type:t,func:_.bind(r,this)});return this._columns.push(i),this._computedColumns.push(i),this._columnPositionByName[i.name]=this._columns.length-1,this.length>0&&this.each(function(e,t){i.compute(e,t)},this),i},addColumn:function(e){return _.isUndefined(this.column(e.name))?(e=new n.Column(e),this._columns.push(e),this._columnPositionByName[e.name]=this._columns.length-1,e):!1},_addIdColumn:function(e){if(!_.isUndefined(this.column(this.idAttribute)))return;var t=[];e&&e>0&&_.times(e,function(){t.push(_.uniqueId())});var n=this.addColumn({name:this.idAttribute,data:t});this.idAttribute==="_id"&&(n.type="number");if(this._columnPositionByName[this.idAttribute]!==0){var r=this._columnPositionByName[this.idAttribute];this._columns.splice(r,1),this._columns.unshift(n),this._columnPositionByName[this.idAttribute]=0,_.each(this._columnPositionByName,function(e,t){t!==this.idAttribute&&this._columnPositionByName[t]<r&&this._columnPositionByName[t]++},this)}},add:function(e,t){t=t||{},_.isArray(e)||(e=[e]);var r=[];_.each(e,function(e){e[this.idAttribute]||(e[this.idAttribute]=_.uniqueId()),this._add(e,t),this.syncable&&!t.silent&&r.push({changed:e})},this);if(this.syncable&&!t.silent){var i=n.Events._buildEvent(r,this);this.publish("add",i),this.publish("change",i)}return this},remove:function(e,t){e=this._rowFilter(e);var r=[],i=[];this.each(function(t,n){e(t)&&(i.push(t[this.idAttribute]),r.push({old:t}))}),_.each(i,function(e){this._remove(e)},this);if(this.syncable&&(!t||!t.silent)){var s=n.Events._buildEvent(r,this);this.publish("remove",s),this.publish("change",s)}},_arrayUpdate:function(e){var t=[];return _.each(e,function(e){var r={old:{},changed:{}};r[this.idAttribute]=e[this.idAttribute];var i=this._rowPositionById[e[this.idAttribute]];_.each(e,function(e,t){var s=this._columns[this._columnPositionByName[t]],o=n.types[s.type];if(s.name===this.idAttribute&&s.data[i]!==e)throw"You can't update the id column";if(typeof s=="undefined")throw"column "+t+" not found!";if(!o.test(e,s))throw"Value is incorrect type";if(this._computedColumns[s.name])return;e=o.coerce(e,s),_.isUndefined(s.before)||(e=s.before(e)),s.data[i]!==e&&(r.old[t]=s.data[i],s.data[i]=e,r.changed[t]=e)},this),typeof this._computedColumns!="undefined"&&_.each(this._computedColumns,function(e){var t=_.extend({},this._row(i)),n=t[e.name],s=e.compute(t,i);n!==s&&(r.old[e.name]=n,e.data[i]=s,r.changed[e.name]=s)},this),_.keys(r.changed).length>0&&t.push(r)},this),t},_functionUpdate:function(e){var t=[];for(var n=0;n<this.length;n++){var r=e(this.rowByPosition(n));r!==!1&&t.push(r)}return this._arrayUpdate(t)},update:function(e,t){var r;if(_.isFunction(e))r=this._functionUpdate(e);else{var i=_.isArray(e)?e:[e];r=this._arrayUpdate(i)}if(this.syncable&&(!t||!t.silent)){var s=n.Events._buildEvent(r,this);this.publish("update",s),this.publish("change",s)}return this},reset:function(e){_.each(this._columns,function(e){e.data=[]}),this.length=0,this.syncable&&(!e||!e.silent)&&this.publish("reset")}})}(this,_,moment),function(e,_){var t=e.Miso.Dataset;t.typeOf=function(e,n){var r=_.keys(t.types),i;return r.push(r.splice(_.indexOf(r,"string"),1)[0]),r.push(r.splice(_.indexOf(r,"mixed"),1)[0]),i=_.find(r,function(r){return t.types[r].test(e,n)}),i=_.isUndefined(i)?"string":i,i},t.types={mixed:{name:"mixed",coerce:function(e){return _.isNull(e)||typeof e=="undefined"||_.isNaN(e)?null:e},test:function(){return!0},compare:function(e,t){if(_.isEqual(e,t))return 0;if(e<t)return-1;if(e>t)return 1},numeric:function(e){return e===null||_.isNaN(+e)?null:+e}},string:{name:"string",coerce:function(e){return _.isNaN(e)||e===null||typeof e=="undefined"?null:e.toString()},test:function(e){return e===null||typeof e=="undefined"||typeof e=="string"},compare:function(e,t){return e==null&&t!=null?-1:e!=null&&t==null?1:e<t?-1:e>t?1:0},numeric:function(e){return _.isNaN(+e)||e===null?null:_.isNumber(+e)?+e:null}},"boolean":{name:"boolean",regexp:/^(true|false)$/,coerce:function(e){return _.isNaN(e)||e===null||typeof e=="undefined"?null:e==="false"?!1:Boolean(e)},test:function(e){return e===null||typeof e=="undefined"||typeof e=="boolean"||this.regexp.test(e)?!0:!1},compare:function(e,t){return e==null&&t!=null?-1:e!=null&&t==null?1:e==null&&t==null?0:e===t?0:e<t?-1:1},numeric:function(e){return e===null||_.isNaN(e)?null:e?1:0}},number:{name:"number",regexp:/^\s*[\-\.]?[0-9]+([\.][0-9]+)?\s*$/,coerce:function(e){var t=+e;return _.isNull(e)||typeof e=="undefined"||_.isNaN(t)?null:t},test:function(e){return e===null||typeof e=="undefined"||typeof e=="number"||this.regexp.test(e)?!0:!1},compare:function(e,t){return e==null&&t!=null?-1:e!=null&&t==null?1:e==null&&t==null?0:e===t?0:e<t?-1:1},numeric:function(e){return _.isNaN(e)||e===null?null:e}},time:{name:"time",format:"DD/MM/YYYY",_formatLookup:[["DD","\\d{2}"],["D","\\d{1}|\\d{2}"],["MM","\\d{2}"],["M","\\d{1}|\\d{2}"],["YYYY","\\d{4}"],["YY","\\d{2}"],["A","[AM|PM]"],["hh","\\d{2}"],["h","\\d{1}|\\d{2}"],["mm","\\d{2}"],["m","\\d{1}|\\d{2}"],["ss","\\d{2}"],["s","\\d{1}|\\d{2}"],["ZZ","[-|+]\\d{4}"],["Z","[-|+]\\d{2}:\\d{2}"]],_regexpTable:{},_regexp:function(e){if(this._regexpTable[e])return new RegExp(this._regexpTable[e],"g");var t=e;return _.each(this._formatLookup,function(e){t=t.replace(e[0],e[1])},this),t=t.split("/").join("\\/"),this._regexpTable[e]=t,new RegExp(this._regexpTable[e],"g")},coerce:function(e,t){t=t||{};if(_.isNull(e)||typeof e=="undefined"||_.isNaN(e))return null;if(_.isString(e)){var n=t.format||this.format;return moment(e,n)}return _.isNumber(e)?moment(e):e},test:function(e,t){t=t||{};if(e===null||typeof e=="undefined")return!0;if(_.isString(e)){var n=t.format||this.format,r=this._regexp(n);return r.test(e)}return!0},compare:function(e,t){return e<t?-1:e>t?1:0},numeric:function(e){return _.isNaN(e)||e===null?null:e.valueOf()}}}}(this,_),function(e,_){var t=e.Miso.Dataset;t.Event=function(e,t){_.isArray(e)||(e=[e]),this.deltas=e,this.dataset=t||null},_.extend(t.Event.prototype,{affectedColumns:function(){var e=[];return _.each(this.deltas,function(t){t.old=t.old||[],t.changed=t.changed||[],e=_.chain(e).union(_.keys(t.old),_.keys(t.changed)).reject(function(e){return e===this.dataset.idAttribute},this).value()},this),e}}),_.extend(t.Event,{isRemove:function(e){return _.isUndefined(e.changed)||_.keys(e.changed).length===0?!0:!1},isAdd:function(e){return _.isUndefined(e.old)||_.keys(e.old).length===0?!0:!1},isUpdate:function(e){return!this.isRemove(e)&&!this.isAdd(e)?!0:!1}}),t.Events={},t.Events._buildEvent=function(e,n){return new t.Event(e,n)}}(this,_),function(e,_){var t=e.Miso.Dataset;t.Builder={detectColumnType:function(e,n){var r=_.inject(n.slice(0,5),function(e,n){var r=t.typeOf(n);return n!==""&&e.indexOf(r)===-1&&!_.isNull(n)&&e.push(r),e},[]);return r.length===1?e.type=r[0]:e.type="mixed",e},detectColumnTypes:function(e,n){_.each(n,function(n,r){var i=e.column(r);if(i.type){i.force=!0;return}t.Builder.detectColumnType(i,n)},this)},cacheRows:function(e){t.Builder.clearRowCache(e),_.each(e._columns[e._columnPositionByName[e.idAttribute]].data,function(t,n){e._rowPositionById[t]=n,e._rowIdByPosition.push(t)},e);var n=_.uniq(_.map(e._columns,function(e){return e.data.length}));if(n.length>1)throw new Error("Row lengths need to be the same. Empty values should be set to null."+_.map(e._columns,function(e){return e.data+"|||"}));e.length=n[0]},clearRowCache:function(e){e._rowPositionById={},e._rowIdByPosition=[]},cacheColumns:function(e){e._columnPositionByName={},_.each(e._columns,function(t,n){e._columnPositionByName[t.name]=n})}},Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){for(var n=t||0,r=this.length;n<r;n++)if(this[n]===e)return n;return-1})}(this,_),function(e,_){var t=e.Miso||(e.Miso={}),n=e.Miso.Dataset;n.Product=function(e){e=e||{},this.func=e.func;if(e.columns){var t=e.columns;_.isArray(e.columns)&&(t=e.columns[0]),this.valuetype=t.type,this.numeric=function(){return t.toNumeric(this.value)}}return this.func({silent:!0}),this},_.extend(n.Product.prototype,t.Events,{val:function(){return this.value},type:function(){return this.valuetype},_sync:function(e){this.func()},_buildDelta:function(e,t){return{old:e,changed:t}}}),n.Product.define=function(e){return function(t,r){r=r||{};var i=this._findColumns(t),s=this;r.type=r.type||i[0].type,r.typeOptions=r.typeOptions||i[0].typeOptions;var o=function(){var t=e.call(s,i,r);return n.types[r.type].coerce(t,r.typeOptions)};if(this.syncable){var u=new n.Product({columns:i,func:function(e){e=e||{};var t=this._buildDelta(this.value,o.call(s));this.value=t.changed;if(s.syncable){var r=n.Events._buildEvent(t,this);!_.isUndefined(t.old)&&!e.silent&&t.old!==t.changed&&this.publish("change",r)}}});return this.subscribe("change",u._sync,{context:u}),u}return o.call(s)}},_.extend(n.DataView.prototype,{_findColumns:function(e){var t=[];return _.isUndefined(e)&&(e=this.columnNames()),e=_.isArray(e)?e:[e],_.each(e,function(e){e=this._columns[this._columnPositionByName[e]],t.push(e)},this),t},sum:n.Product.define(function(e,t){return _.each(e,function(e){if(e.type===n.types.time.name)throw new Error("Can't sum up time")}),_.sum(_.map(e,function(e){return e._sum()}))}),max:n.Product.define(function(e,t){return _.max(_.map(e,function(e){return e._max()}))}),min:n.Product.define(function(e,t){return _.min(_.map(e,function(e){return e._min()}))}),mean:n.Product.define(function(e,t){var r=[];_.each(e,function(e){r.push(e.data)}),r=_.flatten(r);var i=e[0].type;return r=_.map(r,function(e){return n.types[i].numeric(e)}),_.mean(r)})})}(this,_),function(e,_){var t=e.Miso.Dataset;t.Importers=function(e,t){},t.Importers.prototype.extract=function(e){return e=_.clone(e),e}}(this,_),function(e,_){var t=e.Miso.Dataset;t.Importers.Local=function(e){e=e||{},this.data=e.data||null,this.extract=e.extract||this.extract},_.extend(t.Importers.Local.prototype,t.Importers.prototype,{fetch:function(e){var t=e.data?e.data:this.data;e.success(this.extract(t))}})}(this,_),function(e,_){var t=e.Miso.Dataset;t.Importers.Remote=function(e){e=e||{},this._url=e.url,this.extract=e.extract||this.extract,this.params={type:"GET",url:_.isFunction(this._url)?_.bind(this._url,this):this._url,dataType:e.dataType?e.dataType:e.jsonp?"jsonp":"json",callback:e.callback}},_.extend(t.Importers.Remote.prototype,t.Importers.prototype,{fetch:function(e){var n=_.bind(function(t){e.success(this.extract(t))},this);this.callback&&(window[this.callback]=n),t.Xhr(_.extend(this.params,{success:this.callback?this.callback:n,error:e.error}))}});var n={url:"",data:"",dataType:"",success:function(){},type:"GET",async:!0,xhr:function(){return e.ActiveXObject?new e.ActiveXObject("Microsoft.XMLHTTP"):new e.XMLHttpRequest}},r=/\?/;t.Xhr=function(e){e.dataType=e.dataType&&e.dataType.toLowerCase()||null;var i=_.isFunction(e.url)?e.url():e.url;if(!(!e.dataType||e.dataType!=="jsonp"&&e.dataType!=="script")){t.Xhr.getJSONP(i,e.success,e.dataType==="script",e.error,e.callback);return}var s=_.extend({},n,e,{url:i});s.ajax=s.xhr();if(s.ajax)return s.type==="GET"&&s.data&&(s.url+=(r.test(s.url)?"&":"?")+s.data,s.data=null),s.ajax.open(s.type,s.url,s.async),s.ajax.send(s.data||null),t.Xhr.httpData(s)},t.Xhr.getJSONP=function(e,t,n,r,i){if(n){var s=document.querySelectorAll('script[src="'+e+'"]');if(s.length){t&&t(!0);return}}var o=document.head||document.getElementsByTagName("head")[0]||document.documentElement,u=document.createElement("script"),a=e.split("?")[1],f=!1,l=[],c;a&&!n&&(l=a.split("&")),l.length&&(c=l[l.length-1].split("="));if(!i){var h=_.uniqueId("callback");i=l.length?c[1]?c[1]:h:h}!a&&!n&&(e+="?");if(!a||!/callback/.test(a))a&&(e+="&"),e+="callback="+i;i&&!n&&(!window[i]||(i=i+ +(new Date)+_.uniqueId()),window[i]=function(e){t&&t(e),f=!0},c&&(e=e.replace(c.join("="),c[0]+"="+i))),u.onload=u.onreadystatechange=function(){if(!u.readyState||/loaded|complete/.test(u.readyState)){n&&t&&t();if(f){try{delete window[i]}catch(e){window[i]=void 0}o.removeChild(u)}}},u.onerror=function(e){r&&r.call(null,e)},u.src=e,o.insertBefore(u,o.firstChild);return},t.Xhr.httpData=function(e){var t,n=null,r;return r=function(){if(e.ajax.readyState===4){try{n=JSON.parse(e.ajax.responseText)}catch(r){}t={xml:e.ajax.responseXML,text:e.ajax.responseText,json:n},e.dataType&&(t=t[e.dataType]),/(2..)/.test(e.ajax.status)?e.success.call(e.ajax,t):e.error&&e.error.call(null,e.ajax.statusText)}},e.ajax.readyState===4?r():e.ajax.onreadystatechange=r,t}}(this,_),function(e,_){var t=e.Miso.Dataset;t.Importers.Polling=function(e){e=e||{},this.interval=e.interval||1e3,this._def=null,t.Importers.Remote.apply(this,[e])},_.extend(t.Importers.Polling.prototype,t.Importers.Remote.prototype,{fetch:function(n){this._def===null&&(this._def=_.Deferred(),this.success_callback=_.bind(function(e){n.success(this.extract(e)),this._def.resolve(this)},this),this.error_callback=_.bind(function(e){n.error(e),this._def.reject(e)},this)),_.when(this._def.promise()).then(function(e){var t=_.bind(function(){this.fetch({success:this.success_callback,error:this.error_callback})},e);e._timeout=setTimeout(t,e.interval),e._def=_.Deferred()}),t.Xhr(_.extend(this.params,{success:this.success_callback,error:this.error_callback})),e.imp=this},stop:function(){this._def!==null&&this._def.reject(),typeof this._timeout!="undefined"&&clearTimeout(this._timeout)},start:function(){this._def!==null&&(this._def=_.Deferred(),this.fetch())}})}(this,_),function(e,_){var t=e.Miso.Dataset;t.Importers.GoogleSpreadsheet=function(e){e=e||{};if(e.url)e.url=e.url;else{if(_.isUndefined(e.key))throw new Error("Set options 'key' properties to point to your google document.");e.fast?(e.url="https://spreadsheets.google.com/tq?key="+e.key,typeof e.sheetName=="undefined"&&(e.sheetName="Sheet1"),e.url+="&sheet="+e.sheetName,this.callback="misodsgs"+(new Date).getTime(),e.url+="&tqx=version:0.6;responseHandler:"+this.callback,e.url+=";reqId:0;out:json&tq&_=1335871249558#",delete e.sheetName):e.url="https://spreadsheets.google.com/feeds/cells/"+e.key+"/"+e.worksheet+"/public/basic?alt=json-in-script&callback=",delete e.key}return this.params={type:"GET",url:e.url,dataType:"jsonp"},this},_.extend(t.Importers.GoogleSpreadsheet.prototype,t.Importers.Remote.prototype)}(this,_),function(e,_){var t=e.Miso.Dataset;t.Parsers=function(e){this.options=e||{}},_.extend(t.Parsers.prototype,{parse:function(){}})}(this,_),function(e,_){var t=e.Miso.Dataset;t.Parsers.Strict=function(e){this.options=e||{}},_.extend(t.Parsers.Strict.prototype,t.Parsers.prototype,{parse:function(e){var t={},n=[];return _.each(e.columns,function(e){if(n.indexOf(e.name)!==-1)throw new Error('You have more than one column named "'+e.name+'"');n.push(e.name),t[e.name]=e.data}),{columns:n,data:t}}})}(this,_),function(e,_){var t=e.Miso.Dataset;t.Parsers.Obj=t.Parsers,_.extend(t.Parsers.Obj.prototype,t.Parsers.prototype,{parse:function(e){var t=_.keys(e[0]),n={};return _.each(t,function(e){n[e]=[]}),_.each(t,function(t){_.times(e.length,function(r){n[t].push(e[r][t])})}),{columns:t,data:n}}})}(this,_),function(e,_){var t=e.Miso.Dataset;t.Parsers.GoogleSpreadsheet=function(e){this.fast=e.fast||!1},_.extend(t.Parsers.GoogleSpreadsheet.prototype,t.Parsers.prototype,{parse:function(e){var t=[],n=[],r={},i;if(typeof e.status!="undefined"&&e.status==="error")throw new Error("You can't use the fast importer for this url. Disable the fast flag");if(this.fast){t=_.pluck(e.table.cols,"label");if(_.unique(t).length<t.length){var s="";throw _.inject(t,function(e,t){return e[t]=e[t]+1||1,e[t]>1&&(s=t),e},{}),new Error('You have more than one column named "'+s+'"')}_.each(e.table.rows,function(e){e=e.c;for(i=0;i<e.length;i++)n[i]=n[i]||[],e[i].v===""?n[i].push(null):n[i].push(e[i].v)}),_.each(t,function(e,t){r[e]=n[t]})}else{var o=/([A-Z]+)(\d+)/,u={};_.each(e.feed.entry,function(e){var r=o.exec(e.title.$t),i=r[1],s=parseInt(r[2],10);if(s===1){if(t.indexOf(e.content.$t)!==-1)throw new Error('You have more than one column named "'+e.content.$t+'"');u[i]=n.length,t[u[i]]=e.content.$t,n[u[i]]=[]}else{var a=u[i];n[a][s-1]=e.content.$t}},this),_.each(n,function(e,i){e.length=_.max(_.pluck(n,"length")),e.splice(0,1);for(var s=0;s<e.length;s++)if(_.isUndefined(e[s])||e[s]==="")e[s]=null;r[t[i]]=e})}return{columns:t,data:r}}})}(this,_),function(e,_){var t=e.Miso.Dataset;t.Parsers.Delimited=function(e){e=e||{},this.delimiter=e.delimiter||",",this.skipRows=e.skipRows||0,this.emptyValue=e.emptyValue||null,this.__delimiterPatterns=new RegExp("(\\"+this.delimiter+"|\\r?\\n|\\r|^)"+'(?:"([^"]*(?:""[^"]*)*)"|'+'([^"\\'+this.delimiter+"\\r\\n]*))","gi")},typeof String.prototype.trim!="function"&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),_.extend(t.Parsers.Delimited.prototype,t.Parsers.prototype,{parse:function(e){var t=[],n={},r={},i=function(e){r[e]||(r[e]=0);var t=e+r[e];return r[e]+=1,t},s=function(e,r,s,o,u){s=s||",";var a=null,f=0,l=!1,c=-1,h=0;try{r=r.replace(/\s+$/,"").replace(/^[\r|\n|\s]+[\r|\n]/,"\n");if(o>0){var p=0,d=0,v=r.length;while(p<o&&d<v)/\n|\r|\r\n/.test(r.charAt(d))&&p++,d++;r=r.slice(d,v)}function m(e){var r=e[1];if(r.length&&r!==s){h++;if(c<f-1)throw h--,new Error("Not enough items in row");l=!0,c=0}else l||f++,c++;var o=null;e[2]?o=e[2].replace(new RegExp('""',"g"),'"'):o=e[3];if(l){o===""&&(o=u);if(typeof n[t[c]]=="undefined")throw new Error("Too many items in row");n[t[c]].push(o)}else{var a=function(e){var n=i(e);while(t.indexOf(n)!==-1)n=i(e);return n};if(_.isUndefined(o)||o==="")o="X";t.indexOf(o)!==-1&&(o=a(o)),t.push(o),n[o]=[]}}(new RegExp("^"+s)).test(r)&&m(["","",undefined,""]);while(a=e.exec(r))m(a)}catch(g){throw new Error("Error while parsing delimited data on row "+h+". Message: "+g.message)}return{columns:t,data:n}};return s(this.__delimiterPatterns,e,this.delimiter,this.skipRows,this.emptyValue)}})}(this,_),function(e,_){var t=e.Miso||(e.Miso={}),n=t.Dataset;n.Derived=function(e){e=e||{},n.call(this),this.parent=e.parent,this.idAttribute="_id",this.method=e.method,this._addIdColumn(),this.addColumn({name:"_oids",type:"mixed"}),this.parent.syncable&&(_.extend(this,t.Events),this.syncable=!0,this.parent.subscribe("change",this._sync,{context:this}))},n.Derived.prototype=new n,_.extend(n.Derived.prototype,{_sync:function(){this.func.call(this.args),this.publish("change")}}),_.extend(n.DataView.prototype,{movingAverage:function(e,t,r){r=r||{};var i=new n.Derived({parent:this,method:r.method||_.mean,size:t,args:arguments});this.eachColumn(function(e){if(e===this.idAttribute)throw"You can't compute a moving average on the id column";i.addColumn({name:e,type:this.column(e).type,data:[]})},this),n.Builder.cacheColumns(i);var s=function(){typeof e=="string"&&(e=[e]),this.column(this.idAttribute).data=this.parent.column(this.parent.idAttribute).data.slice(t-1,this.parent.length),this.eachColumn(function(n,r){e.indexOf(n)===-1&&n!=="_oids"?r.data=this.parent.column(n).data.slice(t-1,this.parent.length):r.data=_.movingAvg(this.parent.column(n).data,t,this.method)},this),this.length=this.parent.length-t+1;var r=this.column("_oids");r.data=[];for(var i=0;i<this.length;i++)r.data.push(this.parent.column(this.parent.idAttribute).data.slice(i,i+t));return n.Builder.cacheRows(this),this};return i.func=_.bind(s,i),i.func.call(i.args)},countBy:function(e,t){function f(e,t,r){var i;for(i=0;i<e.length;i++)if(n.types[r].compare(e[i],t)===0)return i;return-1}t=t||{};var r=new n.Derived({parent:this,method:_.sum,args:arguments}),i=this.column(e);r.addColumn({name:e,type:i.type}),r.addColumn({name:"count",type:"number"}),r.addColumn({name:"_oids",type:"mixed"}),n.Builder.cacheColumns(r);var s=r.column(e).data,o=r.column("count").data,u=r.column("_oids").data,a=r.column(r.idAttribute).data;return this.each(function(t){var n=f(s,t[e],i.type);n===-1?(s.push(t[e]),a.push(_.uniqueId()),o.push(1),u.push([t[this.parent.idAttribute]])):(o[n]+=1,u[n].push(t[this.parent.idAttribute]))},r),n.Builder.cacheRows(r),r},groupBy:function(e,t,r){r=r||{};var i=new n.Derived({parent:this,method:r.method||_.sum,args:arguments});r&&r.preprocess&&(i.preprocess=r.preprocess);var s=_.union([e],t);_.each(s,function(e){this.addColumn({name:e,type:this.parent.column(e).type})},i),n.Builder.cacheColumns(i);var o=function(){var r=this;n.Builder.clearRowCache(this);var i={},s=0,o=this.parent.column(e);for(var u=0;u<this.parent.length;u++){var a=null;this.preprocess?a=this.preprocess(o.data[u]):a=o.data[u],_.isUndefined(i[a])&&(i[a]=s,_.each(t,function(e){var t=this.column(e),n=this.column(this.idAttribute);t.data[s]=[],n.data[s]=_.uniqueId()},this),this.column(e).data[s]=a,s++),_.each(t,function(e){var t=this.column(e),n=i[a];t.data[n].push(this.parent.rowByPosition(u))},this)}var f=this._columns[this._columnPositionByName._oids];return f.data=[],_.each(t,function(e){var t=this.column(e);_.each(t.data,function(n,i){_.isArray(n)&&(f.data[i]=f.data[i]||[],f.data[i].push(_.map(n,function(e){return e[r.parent.idAttribute]})),f.data[i]=_.flatten(f.data[i]),t.data[i]=this.method(_.map(n,function(t){return t[e]})),this.length++)},this)},this),n.Builder.cacheRows(this),this};return i.func=_.bind(o,i),i.func.call(i.args)}})}(this,_);