From 4c9f4fc5e55019f8bc70b3dcfdfe032e38827c27 Mon Sep 17 00:00:00 2001 From: DenisLapi Date: Sat, 22 Jul 2017 10:01:29 +0200 Subject: [PATCH] #149 - Fix error on beforeDestroy - VueJS v1 --- dist/vue-chartjs.js | 35 +++++++++++++++++------------------ dist/vue-chartjs.js.map | 2 +- src/BaseCharts/Bar.js | 4 +++- src/BaseCharts/Bubble.js | 4 +++- src/BaseCharts/Doughnut.js | 4 +++- src/BaseCharts/Line.js | 4 +++- src/BaseCharts/Pie.js | 4 +++- src/BaseCharts/PolarArea.js | 4 +++- src/BaseCharts/Radar.js | 4 +++- 9 files changed, 39 insertions(+), 26 deletions(-) diff --git a/dist/vue-chartjs.js b/dist/vue-chartjs.js index ce1dbf8..a4d031d 100644 --- a/dist/vue-chartjs.js +++ b/dist/vue-chartjs.js @@ -1,22 +1,21 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VueChartJs=t():e.VueChartJs=t()}(this,function(){return function(e){function t(a){if(n[a])return n[a].exports;var i=n[a]={exports:{},id:a,loaded:!1};return e[a].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="/",t(0)}([function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}var i=n(186),r=a(i),o=n(188),s=a(o),d=n(189),l=a(d),u=n(190),c=a(u),h=n(191),_=a(h),f=n(192),m=a(f),p=n(187),g=a(p),y={Bar:r["default"],Doughnut:s["default"],Line:l["default"],Pie:c["default"],PolarArea:_["default"],Radar:m["default"],Bubble:g["default"]};e.exports=y},function(e,t,n){(function(e){!function(t,n){e.exports=n()}(this,function(){"use strict";function t(){return ma.apply(null,arguments)}function a(e){ma=e}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return"[object Object]"===Object.prototype.toString.call(e)}function o(e){var t;for(t in e)return!1;return!0}function s(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var n,a=[];for(n=0;n0)for(n in ga)a=ga[n],i=t[a],p(i)||(e[a]=i);return e}function y(e){g(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),ya===!1&&(ya=!0,t.updateOffset(this),ya=!1)}function v(e){return e instanceof y||null!=e&&null!=e._isAMomentObject}function M(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function b(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=M(t)),n}function L(e,t,n){var a,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),o=0;for(a=0;a0?"future":"past"];return w(n)?n(t):n.replace(/%s/i,t)}function O(e,t){var n=e.toLowerCase();Ta[n]=Ta[n+"s"]=Ta[t]=e}function W(e){return"string"==typeof e?Ta[e]||Ta[e.toLowerCase()]:void 0}function I(e){var t,n,a={};for(n in e)l(e,n)&&(t=W(n),t&&(a[t]=e[n]));return a}function E(e,t){Sa[e]=t}function R(e){var t=[];for(var n in e)t.push({unit:n,priority:Sa[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}function z(e,n){return function(a){return null!=a?(V(this,e,a),t.updateOffset(this,n),this):N(this,e)}}function N(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function V(e,t,n){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](n)}function B(e){return e=W(e),w(this[e])?this[e]():this}function $(e,t){if("object"==typeof e){e=I(e);for(var n=R(e),a=0;a=0;return(r?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+a}function U(e,t,n,a){var i=a;"string"==typeof a&&(i=function(){return this[a]()}),e&&(Ca[e]=i),t&&(Ca[t[0]]=function(){return J(i.apply(this,arguments),t[1],t[2])}),n&&(Ca[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function G(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function q(e){var t,n,a=e.match(ja);for(t=0,n=a.length;t=0&&Aa.test(e);)e=e.replace(Aa,n),Aa.lastIndex=0,a-=1;return e}function X(e,t,n){Za[e]=w(t)?t:function(e,a){return e&&n?n:t}}function Q(e,t){return l(Za,e)?Za[e](t._strict,t._locale):new RegExp(ee(e))}function ee(e){return te(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,a,i){return t||n||a||i}))}function te(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ne(e,t){var n,a=t;for("string"==typeof e&&(e=[e]),"number"==typeof t&&(a=function(e,n){n[t]=b(e)}),n=0;n=0&&isFinite(s.getFullYear())&&s.setFullYear(e),s}function Me(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function be(e,t,n){var a=7+t-n,i=(7+Me(e,0,a).getUTCDay()-t)%7;return-i+a-1}function Le(e,t,n,a,i){var r,o,s=(7+n-a)%7,d=be(e,a,i),l=1+7*(t-1)+s+d;return l<=0?(r=e-1,o=pe(r)+l):l>pe(e)?(r=e+1,o=l-pe(e)):(r=e,o=l),{year:r,dayOfYear:o}}function ke(e,t,n){var a,i,r=be(e.year(),t,n),o=Math.floor((e.dayOfYear()-r-1)/7)+1;return o<1?(i=e.year()-1,a=o+Ye(i,t,n)):o>Ye(e.year(),t,n)?(a=o-Ye(e.year(),t,n),i=e.year()+1):(i=e.year(),a=o),{week:a,year:i}}function Ye(e,t,n){var a=be(e,t,n),i=be(e+1,t,n);return(pe(e)-a+i)/7}function xe(e){return ke(e,this._week.dow,this._week.doy).week}function we(){return this._week.dow}function De(){return this._week.doy}function Te(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Se(e){var t=ke(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function je(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function Ae(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function He(e,t){return i(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]}function Ce(e){return this._weekdaysShort[e.day()]}function Pe(e){return this._weekdaysMin[e.day()]}function Fe(e,t,n){var a,i,r,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;a<7;++a)r=c([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?(i=ba.call(this._weekdaysParse,o),i!==-1?i:null):"ddd"===t?(i=ba.call(this._shortWeekdaysParse,o),i!==-1?i:null):(i=ba.call(this._minWeekdaysParse,o),i!==-1?i:null):"dddd"===t?(i=ba.call(this._weekdaysParse,o),i!==-1?i:(i=ba.call(this._shortWeekdaysParse,o),i!==-1?i:(i=ba.call(this._minWeekdaysParse,o),i!==-1?i:null))):"ddd"===t?(i=ba.call(this._shortWeekdaysParse,o),i!==-1?i:(i=ba.call(this._weekdaysParse,o),i!==-1?i:(i=ba.call(this._minWeekdaysParse,o),i!==-1?i:null))):(i=ba.call(this._minWeekdaysParse,o),i!==-1?i:(i=ba.call(this._weekdaysParse,o),i!==-1?i:(i=ba.call(this._shortWeekdaysParse,o),i!==-1?i:null)))}function Oe(e,t,n){var a,i,r;if(this._weekdaysParseExact)return Fe.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){if(i=c([2e3,1]).day(a),n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp("^"+this.weekdays(i,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[a]=new RegExp("^"+this.weekdaysShort(i,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[a]=new RegExp("^"+this.weekdaysMin(i,"").replace(".",".?")+"$","i")),this._weekdaysParse[a]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[a]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[a].test(e))return a;if(n&&"ddd"===t&&this._shortWeekdaysParse[a].test(e))return a;if(n&&"dd"===t&&this._minWeekdaysParse[a].test(e))return a;if(!n&&this._weekdaysParse[a].test(e))return a}}function We(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=je(e,this.localeData()),this.add(e-t,"d")):t}function Ie(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function Ee(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Ae(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Re(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Ve.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=yi),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function ze(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Ve.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=vi),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ne(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Ve.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Mi),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ve(){function e(e,t){return t.length-e.length}var t,n,a,i,r,o=[],s=[],d=[],l=[];for(t=0;t<7;t++)n=c([2e3,1]).day(t),a=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),o.push(a),s.push(i),d.push(r),l.push(a),l.push(i),l.push(r);for(o.sort(e),s.sort(e),d.sort(e),l.sort(e),t=0;t<7;t++)s[t]=te(s[t]),d[t]=te(d[t]),l[t]=te(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Be(){return this.hours()%12||12}function $e(){return this.hours()||24}function Je(e,t){U(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Ue(e,t){return t._meridiemParse}function Ge(e){return"p"===(e+"").toLowerCase().charAt(0)}function qe(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}function Ke(e){return e?e.toLowerCase().replace("_","-"):e}function Ze(e){for(var t,n,a,i,r=0;r0;){if(a=Xe(i.slice(0,t).join("-")))return a;if(n&&n.length>=t&&L(i,n,!0)>=t-1)break;t--}r++}return null}function Xe(t){var a=null;if(!xi[t]&&"undefined"!=typeof e&&e&&e.exports)try{a=bi._abbr,n(360)("./"+t),Qe(a)}catch(i){}return xi[t]}function Qe(e,t){var n;return e&&(n=p(t)?nt(e):et(e,t),n&&(bi=n)),bi._abbr}function et(e,t){if(null!==t){var n=Yi;return t.abbr=e,null!=xi[e]?(x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=xi[e]._config):null!=t.parentLocale&&(null!=xi[t.parentLocale]?n=xi[t.parentLocale]._config:x("parentLocaleUndefined","specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/")),xi[e]=new S(T(n,t)),Qe(e),xi[e]}return delete xi[e],null}function tt(e,t){if(null!=t){var n,a=Yi;null!=xi[e]&&(a=xi[e]._config),t=T(a,t),n=new S(t),n.parentLocale=xi[e],xi[e]=n,Qe(e)}else null!=xi[e]&&(null!=xi[e].parentLocale?xi[e]=xi[e].parentLocale:null!=xi[e]&&delete xi[e]);return xi[e]}function nt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return bi;if(!i(e)){if(t=Xe(e))return t;e=[e]}return Ze(e)}function at(){return Ma(xi)}function it(e){var t,n=e._a;return n&&_(e).overflow===-2&&(t=n[ei]<0||n[ei]>11?ei:n[ti]<1||n[ti]>re(n[Qa],n[ei])?ti:n[ni]<0||n[ni]>24||24===n[ni]&&(0!==n[ai]||0!==n[ii]||0!==n[ri])?ni:n[ai]<0||n[ai]>59?ai:n[ii]<0||n[ii]>59?ii:n[ri]<0||n[ri]>999?ri:-1,_(e)._overflowDayOfYear&&(tti)&&(t=ti),_(e)._overflowWeeks&&t===-1&&(t=oi),_(e)._overflowWeekday&&t===-1&&(t=si),_(e).overflow=t),e}function rt(e){var t,n,a,i,r,o,s=e._i,d=wi.exec(s)||Di.exec(s);if(d){for(_(e).iso=!0,t=0,n=Si.length;tpe(i)&&(_(e)._overflowDayOfYear=!0),n=Me(i,0,e._dayOfYear),e._a[ei]=n.getUTCMonth(),e._a[ti]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=r[t]=a[t];for(;t<7;t++)e._a[t]=r[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ni]&&0===e._a[ai]&&0===e._a[ii]&&0===e._a[ri]&&(e._nextDay=!0,e._a[ni]=0),e._d=(e._useUTC?Me:ve).apply(null,r),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ni]=24)}}function ut(e){var t,n,a,i,r,o,s,d;t=e._w,null!=t.GG||null!=t.W||null!=t.E?(r=1,o=4,n=st(t.GG,e._a[Qa],ke(vt(),1,4).year),a=st(t.W,1),i=st(t.E,1),(i<1||i>7)&&(d=!0)):(r=e._locale._week.dow,o=e._locale._week.doy,n=st(t.gg,e._a[Qa],ke(vt(),r,o).year),a=st(t.w,1),null!=t.d?(i=t.d,(i<0||i>6)&&(d=!0)):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(d=!0)):i=r),a<1||a>Ye(n,r,o)?_(e)._overflowWeeks=!0:null!=d?_(e)._overflowWeekday=!0:(s=Le(n,a,i,r,o),e._a[Qa]=s.year,e._dayOfYear=s.dayOfYear)}function ct(e){if(e._f===t.ISO_8601)return void rt(e);e._a=[],_(e).empty=!0;var n,a,i,r,o,s=""+e._i,d=s.length,l=0;for(i=Z(e._f,e._locale).match(ja)||[],n=0;n0&&_(e).unusedInput.push(o),s=s.slice(s.indexOf(a)+a.length),l+=a.length),Ca[r]?(a?_(e).empty=!1:_(e).unusedTokens.push(r),ie(r,a,e)):e._strict&&!a&&_(e).unusedTokens.push(r);_(e).charsLeftOver=d-l,s.length>0&&_(e).unusedInput.push(s),e._a[ni]<=12&&_(e).bigHour===!0&&e._a[ni]>0&&(_(e).bigHour=void 0),_(e).parsedDateParts=e._a.slice(0),_(e).meridiem=e._meridiem,e._a[ni]=ht(e._locale,e._a[ni],e._meridiem),lt(e),it(e)}function ht(e,t,n){var a;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(a=e.isPM(n),a&&t<12&&(t+=12),a||12!==t||(t=0),t):t}function _t(e){var t,n,a,i,r;if(0===e._f.length)return _(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;ithis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ot(){if(!p(this._isDSTShifted))return this._isDSTShifted;var e={};if(g(e,this),e=pt(e),e._a){var t=e._isUTC?c(e._a):vt(e._a);this._isDSTShifted=this.isValid()&&L(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Wt(){return!!this.isValid()&&!this._isUTC}function It(){return!!this.isValid()&&this._isUTC}function Et(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Rt(e,t){var n,a,i,r=e,o=null;return Yt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:"number"==typeof e?(r={},t?r[t]=e:r.milliseconds=e):(o=Oi.exec(e))?(n="-"===o[1]?-1:1,r={y:0,d:b(o[ti])*n,h:b(o[ni])*n,m:b(o[ai])*n,s:b(o[ii])*n,ms:b(o[ri])*n}):(o=Wi.exec(e))?(n="-"===o[1]?-1:1,r={y:zt(o[2],n),M:zt(o[3],n),w:zt(o[4],n),d:zt(o[5],n),h:zt(o[6],n),m:zt(o[7],n),s:zt(o[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=Vt(vt(r.from),vt(r.to)),r={},r.ms=i.milliseconds,r.M=i.months),a=new kt(r),Yt(e)&&l(e,"_locale")&&(a._locale=e._locale),a}function zt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Nt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Vt(e,t){var n;return e.isValid()&&t.isValid()?(t=Dt(t,e),e.isBefore(t)?n=Nt(e,t):(n=Nt(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Bt(e){return e<0?Math.round(-1*e)*-1:Math.round(e)}function $t(e,t){return function(n,a){var i,r;return null===a||isNaN(+a)||(x(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=n,n=a,a=r),n="string"==typeof n?+n:n,i=Rt(n,a),Jt(this,i,e),this}}function Jt(e,n,a,i){var r=n._milliseconds,o=Bt(n._days),s=Bt(n._months);e.isValid()&&(i=null==i||i,r&&e._d.setTime(e._d.valueOf()+r*a),o&&V(e,"Date",N(e,"Date")+o*a),s&&ue(e,N(e,"Month")+s*a),i&&t.updateOffset(e,o||s))}function Ut(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function Gt(e,n){var a=e||vt(),i=Dt(a,this).startOf("day"),r=t.calendarFormat(this,i)||"sameElse",o=n&&(w(n[r])?n[r].call(this,a):n[r]);return this.format(o||this.localeData().calendar(r,this,vt(a)))}function qt(){return new y(this)}function Kt(e,t){var n=v(e)?e:vt(e);return!(!this.isValid()||!n.isValid())&&(t=W(p(t)?"millisecond":t),"millisecond"===t?this.valueOf()>n.valueOf():n.valueOf()r&&(t=r),Hn.call(this,e,t,n,a,i))}function Hn(e,t,n,a,i){var r=Le(e,t,n,a,i),o=Me(r.year,0,r.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function Cn(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Pn(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function Fn(e,t){t[ri]=b(1e3*("0."+e))}function On(){return this._isUTC?"UTC":""}function Wn(){return this._isUTC?"Coordinated Universal Time":""}function In(e){return vt(1e3*e)}function En(){return vt.apply(null,arguments).parseZone()}function Rn(e){return e}function zn(e,t,n,a){var i=nt(),r=c().set(a,t);return i[n](r,e)}function Nn(e,t,n){if("number"==typeof e&&(t=e,e=void 0),e=e||"",null!=t)return zn(e,t,n,"month");var a,i=[];for(a=0;a<12;a++)i[a]=zn(e,a,n,"month");return i}function Vn(e,t,n,a){"boolean"==typeof e?("number"==typeof t&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,"number"==typeof t&&(n=t,t=void 0),t=t||"");var i=nt(),r=e?i._week.dow:0;if(null!=n)return zn(t,(n+r)%7,a,"day");var o,s=[];for(o=0;o<7;o++)s[o]=zn(t,(o+r)%7,a,"day"); -return s}function Bn(e,t){return Nn(e,t,"months")}function $n(e,t){return Nn(e,t,"monthsShort")}function Jn(e,t,n){return Vn(e,t,n,"weekdays")}function Un(e,t,n){return Vn(e,t,n,"weekdaysShort")}function Gn(e,t,n){return Vn(e,t,n,"weekdaysMin")}function qn(){var e=this._data;return this._milliseconds=qi(this._milliseconds),this._days=qi(this._days),this._months=qi(this._months),e.milliseconds=qi(e.milliseconds),e.seconds=qi(e.seconds),e.minutes=qi(e.minutes),e.hours=qi(e.hours),e.months=qi(e.months),e.years=qi(e.years),this}function Kn(e,t,n,a){var i=Rt(t,n);return e._milliseconds+=a*i._milliseconds,e._days+=a*i._days,e._months+=a*i._months,e._bubble()}function Zn(e,t){return Kn(this,e,t,1)}function Xn(e,t){return Kn(this,e,t,-1)}function Qn(e){return e<0?Math.floor(e):Math.ceil(e)}function ea(){var e,t,n,a,i,r=this._milliseconds,o=this._days,s=this._months,d=this._data;return r>=0&&o>=0&&s>=0||r<=0&&o<=0&&s<=0||(r+=864e5*Qn(na(s)+o),o=0,s=0),d.milliseconds=r%1e3,e=M(r/1e3),d.seconds=e%60,t=M(e/60),d.minutes=t%60,n=M(t/60),d.hours=n%24,o+=M(n/24),i=M(ta(o)),s+=i,o-=Qn(na(i)),a=M(s/12),s%=12,d.days=o,d.months=s,d.years=a,this}function ta(e){return 4800*e/146097}function na(e){return 146097*e/4800}function aa(e){var t,n,a=this._milliseconds;if(e=W(e),"month"===e||"year"===e)return t=this._days+a/864e5,n=this._months+ta(t),"month"===e?n:n/12;switch(t=this._days+Math.round(na(this._months)),e){case"week":return t/7+a/6048e5;case"day":return t+a/864e5;case"hour":return 24*t+a/36e5;case"minute":return 1440*t+a/6e4;case"second":return 86400*t+a/1e3;case"millisecond":return Math.floor(864e5*t)+a;default:throw new Error("Unknown unit "+e)}}function ia(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*b(this._months/12)}function ra(e){return function(){return this.as(e)}}function oa(e){return e=W(e),this[e+"s"]()}function sa(e){return function(){return this._data[e]}}function da(){return M(this.days()/7)}function la(e,t,n,a,i){return i.relativeTime(t||1,!!n,e,a)}function ua(e,t,n){var a=Rt(e).abs(),i=cr(a.as("s")),r=cr(a.as("m")),o=cr(a.as("h")),s=cr(a.as("d")),d=cr(a.as("M")),l=cr(a.as("y")),u=i0,u[4]=n,la.apply(null,u)}function ca(e){return void 0===e?cr:"function"==typeof e&&(cr=e,!0)}function ha(e,t){return void 0!==hr[e]&&(void 0===t?hr[e]:(hr[e]=t,!0))}function _a(e){var t=this.localeData(),n=ua(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}function fa(){var e,t,n,a=_r(this._milliseconds)/1e3,i=_r(this._days),r=_r(this._months);e=M(a/60),t=M(e/60),a%=60,e%=60,n=M(r/12),r%=12;var o=n,s=r,d=i,l=t,u=e,c=a,h=this.asSeconds();return h?(h<0?"-":"")+"P"+(o?o+"Y":"")+(s?s+"M":"")+(d?d+"D":"")+(l||u||c?"T":"")+(l?l+"H":"")+(u?u+"M":"")+(c?c+"S":""):"P0D"}var ma,pa;pa=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,a=0;a68?1900:2e3)};var _i=z("FullYear",!0);U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),O("week","w"),O("isoWeek","W"),E("week",5),E("isoWeek",5),X("w",Ea),X("ww",Ea,Fa),X("W",Ea),X("WW",Ea,Fa),ae(["w","ww","W","WW"],function(e,t,n,a){t[a.substr(0,1)]=b(e)});var fi={dow:0,doy:6};U("d",0,"do","day"),U("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),U("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),U("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),O("day","d"),O("weekday","e"),O("isoWeekday","E"),E("day",11),E("weekday",11),E("isoWeekday",11),X("d",Ea),X("e",Ea),X("E",Ea),X("dd",function(e,t){return t.weekdaysMinRegex(e)}),X("ddd",function(e,t){return t.weekdaysShortRegex(e)}),X("dddd",function(e,t){return t.weekdaysRegex(e)}),ae(["dd","ddd","dddd"],function(e,t,n,a){var i=n._locale.weekdaysParse(e,a,n._strict);null!=i?t.d=i:_(n).invalidWeekday=e}),ae(["d","e","E"],function(e,t,n,a){t[a]=b(e)});var mi="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),pi="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),gi="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),yi=Ka,vi=Ka,Mi=Ka;U("H",["HH",2],0,"hour"),U("h",["hh",2],0,Be),U("k",["kk",2],0,$e),U("hmm",0,0,function(){return""+Be.apply(this)+J(this.minutes(),2)}),U("hmmss",0,0,function(){return""+Be.apply(this)+J(this.minutes(),2)+J(this.seconds(),2)}),U("Hmm",0,0,function(){return""+this.hours()+J(this.minutes(),2)}),U("Hmmss",0,0,function(){return""+this.hours()+J(this.minutes(),2)+J(this.seconds(),2)}),Je("a",!0),Je("A",!1),O("hour","h"),E("hour",13),X("a",Ue),X("A",Ue),X("H",Ea),X("h",Ea),X("HH",Ea,Fa),X("hh",Ea,Fa),X("hmm",Ra),X("hmmss",za),X("Hmm",Ra),X("Hmmss",za),ne(["H","HH"],ni),ne(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ne(["h","hh"],function(e,t,n){t[ni]=b(e),_(n).bigHour=!0}),ne("hmm",function(e,t,n){var a=e.length-2;t[ni]=b(e.substr(0,a)),t[ai]=b(e.substr(a)),_(n).bigHour=!0}),ne("hmmss",function(e,t,n){var a=e.length-4,i=e.length-2;t[ni]=b(e.substr(0,a)),t[ai]=b(e.substr(a,2)),t[ii]=b(e.substr(i)),_(n).bigHour=!0}),ne("Hmm",function(e,t,n){var a=e.length-2;t[ni]=b(e.substr(0,a)),t[ai]=b(e.substr(a))}),ne("Hmmss",function(e,t,n){var a=e.length-4,i=e.length-2;t[ni]=b(e.substr(0,a)),t[ai]=b(e.substr(a,2)),t[ii]=b(e.substr(i))});var bi,Li=/[ap]\.?m?\.?/i,ki=z("Hours",!0),Yi={calendar:La,longDateFormat:ka,invalidDate:Ya,ordinal:xa,ordinalParse:wa,relativeTime:Da,months:li,monthsShort:ui,week:fi,weekdays:mi,weekdaysMin:gi,weekdaysShort:pi,meridiemParse:Li},xi={},wi=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Di=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Ti=/Z|[+-]\d\d(?::?\d\d)?/,Si=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],ji=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Ai=/^\/?Date\((\-?\d+)/i;t.createFromInputFallback=Y("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),t.ISO_8601=function(){};var Hi=Y("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=vt.apply(null,arguments);return this.isValid()&&e.isValid()?ethis?this:e:m()}),Pi=function(){return Date.now?Date.now():+new Date};xt("Z",":"),xt("ZZ",""),X("Z",Ga),X("ZZ",Ga),ne(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=wt(Ga,e)});var Fi=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var Oi=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,Wi=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Rt.fn=kt.prototype;var Ii=$t(1,"add"),Ei=$t(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Ri=Y("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});U(0,["gg",2],0,function(){return this.weekYear()%100}),U(0,["GG",2],0,function(){return this.isoWeekYear()%100}),wn("gggg","weekYear"),wn("ggggg","weekYear"),wn("GGGG","isoWeekYear"),wn("GGGGG","isoWeekYear"),O("weekYear","gg"),O("isoWeekYear","GG"),E("weekYear",1),E("isoWeekYear",1),X("G",Ja),X("g",Ja),X("GG",Ea,Fa),X("gg",Ea,Fa),X("GGGG",Va,Wa),X("gggg",Va,Wa),X("GGGGG",Ba,Ia),X("ggggg",Ba,Ia),ae(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,a){t[a.substr(0,2)]=b(e)}),ae(["gg","GG"],function(e,n,a,i){n[i]=t.parseTwoDigitYear(e)}),U("Q",0,"Qo","quarter"),O("quarter","Q"),E("quarter",7),X("Q",Pa),ne("Q",function(e,t){t[ei]=3*(b(e)-1)}),U("D",["DD",2],"Do","date"),O("date","D"),E("date",9),X("D",Ea),X("DD",Ea,Fa),X("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),ne(["D","DD"],ti),ne("Do",function(e,t){t[ti]=b(e.match(Ea)[0],10)});var zi=z("Date",!0);U("DDD",["DDDD",3],"DDDo","dayOfYear"),O("dayOfYear","DDD"),E("dayOfYear",4),X("DDD",Na),X("DDDD",Oa),ne(["DDD","DDDD"],function(e,t,n){n._dayOfYear=b(e)}),U("m",["mm",2],0,"minute"),O("minute","m"),E("minute",14),X("m",Ea),X("mm",Ea,Fa),ne(["m","mm"],ai);var Ni=z("Minutes",!1);U("s",["ss",2],0,"second"),O("second","s"),E("second",15),X("s",Ea),X("ss",Ea,Fa),ne(["s","ss"],ii);var Vi=z("Seconds",!1);U("S",0,0,function(){return~~(this.millisecond()/100)}),U(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,function(){return 10*this.millisecond()}),U(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),U(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),U(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),U(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),U(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),O("millisecond","ms"),E("millisecond",16),X("S",Na,Pa),X("SS",Na,Fa),X("SSS",Na,Oa);var Bi;for(Bi="SSSS";Bi.length<=9;Bi+="S")X(Bi,$a);for(Bi="S";Bi.length<=9;Bi+="S")ne(Bi,Fn);var $i=z("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var Ji=y.prototype;Ji.add=Ii,Ji.calendar=Gt,Ji.clone=qt,Ji.diff=nn,Ji.endOf=mn,Ji.format=sn,Ji.from=dn,Ji.fromNow=ln,Ji.to=un,Ji.toNow=cn,Ji.get=B,Ji.invalidAt=Yn,Ji.isAfter=Kt,Ji.isBefore=Zt,Ji.isBetween=Xt,Ji.isSame=Qt,Ji.isSameOrAfter=en,Ji.isSameOrBefore=tn,Ji.isValid=Ln,Ji.lang=Ri,Ji.locale=hn,Ji.localeData=_n,Ji.max=Ci,Ji.min=Hi,Ji.parsingFlags=kn,Ji.set=$,Ji.startOf=fn,Ji.subtract=Ei,Ji.toArray=vn,Ji.toObject=Mn,Ji.toDate=yn,Ji.toISOString=on,Ji.toJSON=bn,Ji.toString=rn,Ji.unix=gn,Ji.valueOf=pn,Ji.creationData=xn,Ji.year=_i,Ji.isLeapYear=ye,Ji.weekYear=Dn,Ji.isoWeekYear=Tn,Ji.quarter=Ji.quarters=Cn,Ji.month=ce,Ji.daysInMonth=he,Ji.week=Ji.weeks=Te,Ji.isoWeek=Ji.isoWeeks=Se,Ji.weeksInYear=jn,Ji.isoWeeksInYear=Sn,Ji.date=zi,Ji.day=Ji.days=We,Ji.weekday=Ie,Ji.isoWeekday=Ee,Ji.dayOfYear=Pn,Ji.hour=Ji.hours=ki,Ji.minute=Ji.minutes=Ni,Ji.second=Ji.seconds=Vi,Ji.millisecond=Ji.milliseconds=$i,Ji.utcOffset=St,Ji.utc=At,Ji.local=Ht,Ji.parseZone=Ct,Ji.hasAlignedHourOffset=Pt,Ji.isDST=Ft,Ji.isLocal=Wt,Ji.isUtcOffset=It,Ji.isUtc=Et,Ji.isUTC=Et,Ji.zoneAbbr=On,Ji.zoneName=Wn,Ji.dates=Y("dates accessor is deprecated. Use date instead.",zi),Ji.months=Y("months accessor is deprecated. Use month instead",ce),Ji.years=Y("years accessor is deprecated. Use year instead",_i),Ji.zone=Y("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",jt),Ji.isDSTShifted=Y("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ot);var Ui=Ji,Gi=S.prototype;Gi.calendar=j,Gi.longDateFormat=A,Gi.invalidDate=H,Gi.ordinal=C,Gi.preparse=Rn,Gi.postformat=Rn,Gi.relativeTime=P,Gi.pastFuture=F,Gi.set=D,Gi.months=oe,Gi.monthsShort=se,Gi.monthsParse=le,Gi.monthsRegex=fe,Gi.monthsShortRegex=_e,Gi.week=xe,Gi.firstDayOfYear=De,Gi.firstDayOfWeek=we,Gi.weekdays=He,Gi.weekdaysMin=Pe,Gi.weekdaysShort=Ce,Gi.weekdaysParse=Oe,Gi.weekdaysRegex=Re,Gi.weekdaysShortRegex=ze,Gi.weekdaysMinRegex=Ne,Gi.isPM=Ge,Gi.meridiem=qe,Qe("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===b(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),t.lang=Y("moment.lang is deprecated. Use moment.locale instead.",Qe),t.langData=Y("moment.langData is deprecated. Use moment.localeData instead.",nt);var qi=Math.abs,Ki=ra("ms"),Zi=ra("s"),Xi=ra("m"),Qi=ra("h"),er=ra("d"),tr=ra("w"),nr=ra("M"),ar=ra("y"),ir=sa("milliseconds"),rr=sa("seconds"),or=sa("minutes"),sr=sa("hours"),dr=sa("days"),lr=sa("months"),ur=sa("years"),cr=Math.round,hr={s:45,m:45,h:22,d:26,M:11},_r=Math.abs,fr=kt.prototype;fr.abs=qn,fr.add=Zn,fr.subtract=Xn,fr.as=aa,fr.asMilliseconds=Ki,fr.asSeconds=Zi,fr.asMinutes=Xi,fr.asHours=Qi,fr.asDays=er,fr.asWeeks=tr,fr.asMonths=nr,fr.asYears=ar,fr.valueOf=ia,fr._bubble=ea,fr.get=oa,fr.milliseconds=ir,fr.seconds=rr,fr.minutes=or,fr.hours=sr,fr.days=dr,fr.weeks=da,fr.months=lr,fr.years=ur,fr.humanize=_a,fr.toISOString=fa,fr.toString=fa,fr.toJSON=fa,fr.locale=hn,fr.localeData=_n,fr.toIsoString=Y("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",fa),fr.lang=Ri,U("X",0,0,"unix"),U("x",0,0,"valueOf"),X("x",Ja),X("X",qa),ne("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ne("x",function(e,t,n){n._d=new Date(b(e))}),t.version="2.14.1",a(vt),t.fn=Ui,t.min=bt,t.max=Lt,t.now=Pi,t.utc=c,t.unix=In,t.months=Bn,t.isDate=s,t.locale=Qe,t.invalid=m,t.duration=Rt,t.isMoment=v,t.weekdays=Jn,t.parseZone=En,t.localeData=nt,t.isDuration=Yt,t.monthsShort=$n,t.weekdaysMin=Gn,t.defineLocale=et,t.updateLocale=tt,t.locales=at,t.weekdaysShort=Un,t.normalizeUnits=W,t.relativeTimeRounding=ca,t.relativeTimeThreshold=ha,t.calendarFormat=Ut,t.prototype=Ui;var mr=t;return mr})}).call(t,n(48)(e))},function(e,t,n){var a=n(68),i="object"==typeof self&&self&&self.Object===Object&&self,r=a||i||Function("return this")();e.exports=r},function(e,t){var n=Array.isArray;e.exports=n},function(e,t){function n(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=n},function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){return(0,o["default"])(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.mergeOptions=i;var r=n(338),o=a(r)},function(e,t,n){var a=n(212)();n(211)(a),n(207)(a),n(210)(a),n(206)(a),n(208)(a),n(209)(a),n(213)(a),n(217)(a),n(215)(a),n(216)(a),n(218)(a),n(214)(a),n(219)(a),n(220)(a),n(221)(a),n(222)(a),n(223)(a),n(226)(a),n(224)(a),n(225)(a),n(227)(a),n(228)(a),n(229)(a),n(200)(a),n(201)(a),n(202)(a),n(203)(a),n(204)(a),n(205)(a),n(193)(a),n(194)(a),n(195)(a),n(196)(a),n(197)(a),n(198)(a),n(199)(a),window.Chart=e.exports=a},function(e,t,n){function a(e,t){var n=r(e,t);return i(n)?n:void 0}var i=n(254),r=n(288);e.exports=a},function(e,t,n){(function(t){/*! - * Vue.js v1.0.26 +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VueChartJs=t():e.VueChartJs=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="/",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var a=n(214),i=r(a),o=n(216),s=r(o),d=n(217),u=r(d),l=n(218),c=r(l),h=n(219),_=r(h),f=n(220),m=r(f),p=n(215),g=r(p),y={Bar:i.default,Doughnut:s.default,Line:u.default,Pie:c.default,PolarArea:_.default,Radar:m.default,Bubble:g.default};e.exports=y},function(e,t,n){(function(e){!function(t,n){e.exports=n()}(this,function(){"use strict";function t(){return br.apply(null,arguments)}function r(e){br=e}function a(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){var t;for(t in e)return!1;return!0}function s(e){return void 0===e}function d(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function u(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function l(e,t){var n,r=[];for(n=0;n0)for(n=0;n0?"future":"past"];return D(n)?n(t):n.replace(/%s/i,t)}function W(e,t){var n=e.toLowerCase();Fr[n]=Fr[n+"s"]=Fr[t]=e}function I(e){return"string"==typeof e?Fr[e]||Fr[e.toLowerCase()]:void 0}function E(e){var t,n,r={};for(n in e)c(e,n)&&(t=I(n),t&&(r[t]=e[n]));return r}function z(e,t){Wr[e]=t}function R(e){var t=[];for(var n in e)t.push({unit:n,priority:Wr[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}function N(e,n){return function(r){return null!=r?(B(this,e,r),t.updateOffset(this,n),this):V(this,e)}}function V(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function B(e,t,n){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](n)}function $(e){return e=I(e),D(this[e])?this[e]():this}function J(e,t){if("object"==typeof e){e=E(e);for(var n=R(e),r=0;r=0;return(i?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}function q(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(Rr[e]=a),t&&(Rr[t[0]]=function(){return U(a.apply(this,arguments),t[1],t[2])}),n&&(Rr[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function G(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function K(e){var t,n,r=e.match(Ir);for(t=0,n=r.length;t=0&&Er.test(e);)e=e.replace(Er,n),Er.lastIndex=0,r-=1;return e}function X(e,t,n){ia[e]=D(t)?t:function(e,r){return e&&n?n:t}}function ee(e,t){return c(ia,e)?ia[e](t._strict,t._locale):new RegExp(te(e))}function te(e){return ne(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,r,a){return t||n||r||a}))}function ne(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function re(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),d(t)&&(r=function(e,n){n[t]=L(e)}),n=0;n=0&&isFinite(s.getFullYear())&&s.setFullYear(e),s}function be(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function Le(e,t,n){var r=7+t-n,a=(7+be(e,0,r).getUTCDay()-t)%7;return-a+r-1}function ke(e,t,n,r,a){var i,o,s=(7+n-r)%7,d=Le(e,r,a),u=1+7*(t-1)+s+d;return u<=0?(i=e-1,o=ge(i)+u):u>ge(e)?(i=e+1,o=u-ge(e)):(i=e,o=u),{year:i,dayOfYear:o}}function Ye(e,t,n){var r,a,i=Le(e.year(),t,n),o=Math.floor((e.dayOfYear()-i-1)/7)+1;return o<1?(a=e.year()-1,r=o+xe(a,t,n)):o>xe(e.year(),t,n)?(r=o-xe(e.year(),t,n),a=e.year()+1):(a=e.year(),r=o),{week:r,year:a}}function xe(e,t,n){var r=Le(e,t,n),a=Le(e+1,t,n);return(ge(e)-r+a)/7}function we(e){return Ye(e,this._week.dow,this._week.doy).week}function De(){return this._week.dow}function Te(){return this._week.doy}function Se(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function je(e){var t=Ye(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function He(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function Ae(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Oe(e,t){return e?a(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:a(this._weekdays)?this._weekdays:this._weekdays.standalone}function Pe(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Ce(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Fe(e,t,n){var r,a,i,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=_([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?(a=pa.call(this._weekdaysParse,o),a!==-1?a:null):"ddd"===t?(a=pa.call(this._shortWeekdaysParse,o),a!==-1?a:null):(a=pa.call(this._minWeekdaysParse,o),a!==-1?a:null):"dddd"===t?(a=pa.call(this._weekdaysParse,o),a!==-1?a:(a=pa.call(this._shortWeekdaysParse,o),a!==-1?a:(a=pa.call(this._minWeekdaysParse,o),a!==-1?a:null))):"ddd"===t?(a=pa.call(this._shortWeekdaysParse,o),a!==-1?a:(a=pa.call(this._weekdaysParse,o),a!==-1?a:(a=pa.call(this._minWeekdaysParse,o),a!==-1?a:null))):(a=pa.call(this._minWeekdaysParse,o),a!==-1?a:(a=pa.call(this._weekdaysParse,o),a!==-1?a:(a=pa.call(this._shortWeekdaysParse,o),a!==-1?a:null)))}function We(e,t,n){var r,a,i;if(this._weekdaysParseExact)return Fe.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=_([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".",".?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function Ie(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=He(e,this.localeData()),this.add(e-t,"d")):t}function Ee(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function ze(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Ae(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Re(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=Da),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Ne(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ta),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ve(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Sa),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Be(){function e(e,t){return t.length-e.length}var t,n,r,a,i,o=[],s=[],d=[],u=[];for(t=0;t<7;t++)n=_([2e3,1]).day(t),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),i=this.weekdays(n,""),o.push(r),s.push(a),d.push(i),u.push(r),u.push(a),u.push(i);for(o.sort(e),s.sort(e),d.sort(e),u.sort(e),t=0;t<7;t++)s[t]=ne(s[t]),d[t]=ne(d[t]),u[t]=ne(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function $e(){return this.hours()%12||12}function Je(){return this.hours()||24}function Ue(e,t){q(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function qe(e,t){return t._meridiemParse}function Ge(e){return"p"===(e+"").toLowerCase().charAt(0)}function Ke(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}function Ze(e){return e?e.toLowerCase().replace("_","-"):e}function Qe(e){for(var t,n,r,a,i=0;i0;){if(r=Xe(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&k(a,n,!0)>=t-1)break;t--}i++}return null}function Xe(t){var r=null;if(!Pa[t]&&"undefined"!=typeof e&&e&&e.exports)try{r=ja._abbr,n(394)("./"+t),et(r)}catch(e){}return Pa[t]}function et(e,t){var n;return e&&(n=s(t)?rt(e):tt(e,t),n&&(ja=n)),ja._abbr}function tt(e,t){if(null!==t){var n=Oa;if(t.abbr=e,null!=Pa[e])w("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Pa[e]._config;else if(null!=t.parentLocale){if(null==Pa[t.parentLocale])return Ca[t.parentLocale]||(Ca[t.parentLocale]=[]),Ca[t.parentLocale].push({name:e,config:t}),null;n=Pa[t.parentLocale]._config}return Pa[e]=new j(S(n,t)),Ca[e]&&Ca[e].forEach(function(e){tt(e.name,e.config)}),et(e),Pa[e]}return delete Pa[e],null}function nt(e,t){if(null!=t){var n,r=Oa;null!=Pa[e]&&(r=Pa[e]._config),t=S(r,t),n=new j(t),n.parentLocale=Pa[e],Pa[e]=n,et(e)}else null!=Pa[e]&&(null!=Pa[e].parentLocale?Pa[e]=Pa[e].parentLocale:null!=Pa[e]&&delete Pa[e]);return Pa[e]}function rt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return ja;if(!a(e)){if(t=Xe(e))return t;e=[e]}return Qe(e)}function at(){return Sr(Pa)}function it(e){var t,n=e._a;return n&&m(e).overflow===-2&&(t=n[da]<0||n[da]>11?da:n[ua]<1||n[ua]>oe(n[sa],n[da])?ua:n[la]<0||n[la]>24||24===n[la]&&(0!==n[ca]||0!==n[ha]||0!==n[_a])?la:n[ca]<0||n[ca]>59?ca:n[ha]<0||n[ha]>59?ha:n[_a]<0||n[_a]>999?_a:-1,m(e)._overflowDayOfYear&&(tua)&&(t=ua),m(e)._overflowWeeks&&t===-1&&(t=fa),m(e)._overflowWeekday&&t===-1&&(t=ma),m(e).overflow=t),e}function ot(e){var t,n,r,a,i,o,s=e._i,d=Fa.exec(s)||Wa.exec(s);if(d){for(m(e).iso=!0,t=0,n=Ea.length;t10?"YYYY ":"YY "),i="HH:mm"+(n[4]?":ss":""),n[1]){var c=new Date(n[2]),h=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][c.getDay()];if(n[1].substr(0,3)!==h)return m(e).weekdayMismatch=!0,void(e._isValid=!1)}switch(n[5].length){case 2:0===d?s=" +0000":(d=l.indexOf(n[5][1].toUpperCase())-12,s=(d<0?" -":" +")+(""+d).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:s=u[n[5]];break;default:s=u[" GMT"]}n[5]=s,e._i=n.splice(1).join(""),o=" ZZ",e._f=r+a+i+o,_t(e),m(e).rfc2822=!0}else e._isValid=!1}function dt(e){var n=Ra.exec(e._i);return null!==n?void(e._d=new Date(+n[1])):(ot(e),void(e._isValid===!1&&(delete e._isValid,st(e),e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e)))))}function ut(e,t,n){return null!=e?e:null!=t?t:n}function lt(e){var n=new Date(t.now());return e._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function ct(e){var t,n,r,a,i=[];if(!e._d){for(r=lt(e),e._w&&null==e._a[ua]&&null==e._a[da]&&ht(e),null!=e._dayOfYear&&(a=ut(e._a[sa],r[sa]),(e._dayOfYear>ge(a)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),n=be(a,0,e._dayOfYear),e._a[da]=n.getUTCMonth(),e._a[ua]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=i[t]=r[t];for(;t<7;t++)e._a[t]=i[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[la]&&0===e._a[ca]&&0===e._a[ha]&&0===e._a[_a]&&(e._nextDay=!0,e._a[la]=0),e._d=(e._useUTC?be:Me).apply(null,i),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[la]=24)}}function ht(e){var t,n,r,a,i,o,s,d;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)i=1,o=4,n=ut(t.GG,e._a[sa],Ye(bt(),1,4).year),r=ut(t.W,1),a=ut(t.E,1),(a<1||a>7)&&(d=!0);else{i=e._locale._week.dow,o=e._locale._week.doy;var u=Ye(bt(),i,o);n=ut(t.gg,e._a[sa],u.year),r=ut(t.w,u.week),null!=t.d?(a=t.d,(a<0||a>6)&&(d=!0)):null!=t.e?(a=t.e+i,(t.e<0||t.e>6)&&(d=!0)):a=i}r<1||r>xe(n,i,o)?m(e)._overflowWeeks=!0:null!=d?m(e)._overflowWeekday=!0:(s=ke(n,r,a,i,o),e._a[sa]=s.year,e._dayOfYear=s.dayOfYear)}function _t(e){if(e._f===t.ISO_8601)return void ot(e);if(e._f===t.RFC_2822)return void st(e);e._a=[],m(e).empty=!0;var n,r,a,i,o,s=""+e._i,d=s.length,u=0;for(a=Q(e._f,e._locale).match(Ir)||[],n=0;n0&&m(e).unusedInput.push(o),s=s.slice(s.indexOf(r)+r.length),u+=r.length),Rr[i]?(r?m(e).empty=!1:m(e).unusedTokens.push(i),ie(i,r,e)):e._strict&&!r&&m(e).unusedTokens.push(i);m(e).charsLeftOver=d-u,s.length>0&&m(e).unusedInput.push(s),e._a[la]<=12&&m(e).bigHour===!0&&e._a[la]>0&&(m(e).bigHour=void 0),m(e).parsedDateParts=e._a.slice(0),m(e).meridiem=e._meridiem,e._a[la]=ft(e._locale,e._a[la],e._meridiem),ct(e),it(e)}function ft(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(r=e.isPM(n),r&&t<12&&(t+=12),r||12!==t||(t=0),t):t}function mt(e){var t,n,r,a,i;if(0===e._f.length)return m(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Nt(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(y(e,this),e=yt(e),e._a){var t=e._isUTC?_(e._a):bt(e._a);this._isDSTShifted=this.isValid()&&k(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Vt(){return!!this.isValid()&&!this._isUTC}function Bt(){return!!this.isValid()&&this._isUTC}function $t(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Jt(e,t){var n,r,a,i=e,o=null;return St(e)?i={ms:e._milliseconds,d:e._days,M:e._months}:d(e)?(i={},t?i[t]=e:i.milliseconds=e):(o=qa.exec(e))?(n="-"===o[1]?-1:1,i={y:0,d:L(o[ua])*n,h:L(o[la])*n,m:L(o[ca])*n,s:L(o[ha])*n,ms:L(jt(1e3*o[_a]))*n}):(o=Ga.exec(e))?(n="-"===o[1]?-1:1,i={y:Ut(o[2],n),M:Ut(o[3],n),w:Ut(o[4],n),d:Ut(o[5],n),h:Ut(o[6],n),m:Ut(o[7],n),s:Ut(o[8],n)}):null==i?i={}:"object"==typeof i&&("from"in i||"to"in i)&&(a=Gt(bt(i.from),bt(i.to)),i={},i.ms=a.milliseconds,i.M=a.months),r=new Tt(i),St(e)&&c(e,"_locale")&&(r._locale=e._locale),r}function Ut(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function qt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Gt(e,t){var n;return e.isValid()&&t.isValid()?(t=Ot(t,e),e.isBefore(t)?n=qt(e,t):(n=qt(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Kt(e,t){return function(n,r){var a,i;return null===r||isNaN(+r)||(w(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=r,r=i),n="string"==typeof n?+n:n,a=Jt(n,r),Zt(this,a,e),this}}function Zt(e,n,r,a){var i=n._milliseconds,o=jt(n._days),s=jt(n._months);e.isValid()&&(a=null==a||a,i&&e._d.setTime(e._d.valueOf()+i*r),o&&B(e,"Date",V(e,"Date")+o*r),s&&ce(e,V(e,"Month")+s*r),a&&t.updateOffset(e,o||s))}function Qt(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function Xt(e,n){var r=e||bt(),a=Ot(r,this).startOf("day"),i=t.calendarFormat(this,a)||"sameElse",o=n&&(D(n[i])?n[i].call(this,r):n[i]);return this.format(o||this.localeData().calendar(i,this,bt(r)))}function en(){return new v(this)}function tn(e,t){var n=M(e)?e:bt(e);return!(!this.isValid()||!n.isValid())&&(t=I(s(t)?"millisecond":t),"millisecond"===t?this.valueOf()>n.valueOf():n.valueOf()9999?Z(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):D(Date.prototype.toISOString)?this.toDate().toISOString():Z(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function hn(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a="-MM-DD[T]HH:mm:ss.SSS",i=t+'[")]';return this.format(n+r+a+i)}function _n(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var n=Z(this,e);return this.localeData().postformat(n)}function fn(e,t){return this.isValid()&&(M(e)&&e.isValid()||bt(e).isValid())?Jt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function mn(e){return this.from(bt(),e)}function pn(e,t){return this.isValid()&&(M(e)&&e.isValid()||bt(e).isValid())?Jt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function gn(e){return this.to(bt(),e)}function yn(e){var t;return void 0===e?this._locale._abbr:(t=rt(e),null!=t&&(this._locale=t),this)}function vn(){return this._locale}function Mn(e){switch(e=I(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this}function bn(e){return e=I(e),void 0===e||"millisecond"===e?this:("date"===e&&(e="day"), +this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))}function Ln(){return this._d.valueOf()-6e4*(this._offset||0)}function kn(){return Math.floor(this.valueOf()/1e3)}function Yn(){return new Date(this.valueOf())}function xn(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function wn(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Dn(){return this.isValid()?this.toISOString():null}function Tn(){return p(this)}function Sn(){return h({},m(this))}function jn(){return m(this).overflow}function Hn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function An(e,t){q(0,[e,e.length],0,t)}function On(e){return Wn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Pn(e){return Wn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function Cn(){return xe(this.year(),1,4)}function Fn(){var e=this.localeData()._week;return xe(this.year(),e.dow,e.doy)}function Wn(e,t,n,r,a){var i;return null==e?Ye(this,r,a).year:(i=xe(e,r,a),t>i&&(t=i),In.call(this,e,t,n,r,a))}function In(e,t,n,r,a){var i=ke(e,t,n,r,a),o=be(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function En(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function zn(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function Rn(e,t){t[_a]=L(1e3*("0."+e))}function Nn(){return this._isUTC?"UTC":""}function Vn(){return this._isUTC?"Coordinated Universal Time":""}function Bn(e){return bt(1e3*e)}function $n(){return bt.apply(null,arguments).parseZone()}function Jn(e){return e}function Un(e,t,n,r){var a=rt(),i=_().set(r,t);return a[n](i,e)}function qn(e,t,n){if(d(e)&&(t=e,e=void 0),e=e||"",null!=t)return Un(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=Un(e,r,n,"month");return a}function Gn(e,t,n,r){"boolean"==typeof e?(d(t)&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,d(t)&&(n=t,t=void 0),t=t||"");var a=rt(),i=e?a._week.dow:0;if(null!=n)return Un(t,(n+i)%7,r,"day");var o,s=[];for(o=0;o<7;o++)s[o]=Un(t,(o+i)%7,r,"day");return s}function Kn(e,t){return qn(e,t,"months")}function Zn(e,t){return qn(e,t,"monthsShort")}function Qn(e,t,n){return Gn(e,t,n,"weekdays")}function Xn(e,t,n){return Gn(e,t,n,"weekdaysShort")}function er(e,t,n){return Gn(e,t,n,"weekdaysMin")}function tr(){var e=this._data;return this._milliseconds=oi(this._milliseconds),this._days=oi(this._days),this._months=oi(this._months),e.milliseconds=oi(e.milliseconds),e.seconds=oi(e.seconds),e.minutes=oi(e.minutes),e.hours=oi(e.hours),e.months=oi(e.months),e.years=oi(e.years),this}function nr(e,t,n,r){var a=Jt(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function rr(e,t){return nr(this,e,t,1)}function ar(e,t){return nr(this,e,t,-1)}function ir(e){return e<0?Math.floor(e):Math.ceil(e)}function or(){var e,t,n,r,a,i=this._milliseconds,o=this._days,s=this._months,d=this._data;return i>=0&&o>=0&&s>=0||i<=0&&o<=0&&s<=0||(i+=864e5*ir(dr(s)+o),o=0,s=0),d.milliseconds=i%1e3,e=b(i/1e3),d.seconds=e%60,t=b(e/60),d.minutes=t%60,n=b(t/60),d.hours=n%24,o+=b(n/24),a=b(sr(o)),s+=a,o-=ir(dr(a)),r=b(s/12),s%=12,d.days=o,d.months=s,d.years=r,this}function sr(e){return 4800*e/146097}function dr(e){return 146097*e/4800}function ur(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if(e=I(e),"month"===e||"year"===e)return t=this._days+r/864e5,n=this._months+sr(t),"month"===e?n:n/12;switch(t=this._days+Math.round(dr(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}}function lr(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*L(this._months/12):NaN}function cr(e){return function(){return this.as(e)}}function hr(e){return e=I(e),this.isValid()?this[e+"s"]():NaN}function _r(e){return function(){return this.isValid()?this._data[e]:NaN}}function fr(){return b(this.days()/7)}function mr(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}function pr(e,t,n){var r=Jt(e).abs(),a=Li(r.as("s")),i=Li(r.as("m")),o=Li(r.as("h")),s=Li(r.as("d")),d=Li(r.as("M")),u=Li(r.as("y")),l=a<=ki.ss&&["s",a]||a0,l[4]=n,mr.apply(null,l)}function gr(e){return void 0===e?Li:"function"==typeof e&&(Li=e,!0)}function yr(e,t){return void 0!==ki[e]&&(void 0===t?ki[e]:(ki[e]=t,"s"===e&&(ki.ss=t-1),!0))}function vr(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=pr(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}function Mr(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r=Yi(this._milliseconds)/1e3,a=Yi(this._days),i=Yi(this._months);e=b(r/60),t=b(e/60),r%=60,e%=60,n=b(i/12),i%=12;var o=n,s=i,d=a,u=t,l=e,c=r,h=this.asSeconds();return h?(h<0?"-":"")+"P"+(o?o+"Y":"")+(s?s+"M":"")+(d?d+"D":"")+(u||l||c?"T":"")+(u?u+"H":"")+(l?l+"M":"")+(c?c+"S":""):"P0D"}var br,Lr;Lr=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,r=0;r68?1900:2e3)};var La=N("FullYear",!0);q("w",["ww",2],"wo","week"),q("W",["WW",2],"Wo","isoWeek"),W("week","w"),W("isoWeek","W"),z("week",5),z("isoWeek",5),X("w",Ur),X("ww",Ur,Vr),X("W",Ur),X("WW",Ur,Vr),ae(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=L(e)});var ka={dow:0,doy:6};q("d",0,"do","day"),q("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),q("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),q("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),q("e",0,0,"weekday"),q("E",0,0,"isoWeekday"),W("day","d"),W("weekday","e"),W("isoWeekday","E"),z("day",11),z("weekday",11),z("isoWeekday",11),X("d",Ur),X("e",Ur),X("E",Ur),X("dd",function(e,t){return t.weekdaysMinRegex(e)}),X("ddd",function(e,t){return t.weekdaysShortRegex(e)}),X("dddd",function(e,t){return t.weekdaysRegex(e)}),ae(["dd","ddd","dddd"],function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:m(n).invalidWeekday=e}),ae(["d","e","E"],function(e,t,n,r){t[r]=L(e)});var Ya="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),xa="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),wa="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Da=aa,Ta=aa,Sa=aa;q("H",["HH",2],0,"hour"),q("h",["hh",2],0,$e),q("k",["kk",2],0,Je),q("hmm",0,0,function(){return""+$e.apply(this)+U(this.minutes(),2)}),q("hmmss",0,0,function(){return""+$e.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)}),q("Hmm",0,0,function(){return""+this.hours()+U(this.minutes(),2)}),q("Hmmss",0,0,function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)}),Ue("a",!0),Ue("A",!1),W("hour","h"),z("hour",13),X("a",qe),X("A",qe),X("H",Ur),X("h",Ur),X("k",Ur),X("HH",Ur,Vr),X("hh",Ur,Vr),X("kk",Ur,Vr),X("hmm",qr),X("hmmss",Gr),X("Hmm",qr),X("Hmmss",Gr),re(["H","HH"],la),re(["k","kk"],function(e,t,n){var r=L(e);t[la]=24===r?0:r}),re(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),re(["h","hh"],function(e,t,n){t[la]=L(e),m(n).bigHour=!0}),re("hmm",function(e,t,n){var r=e.length-2;t[la]=L(e.substr(0,r)),t[ca]=L(e.substr(r)),m(n).bigHour=!0}),re("hmmss",function(e,t,n){var r=e.length-4,a=e.length-2;t[la]=L(e.substr(0,r)),t[ca]=L(e.substr(r,2)),t[ha]=L(e.substr(a)),m(n).bigHour=!0}),re("Hmm",function(e,t,n){var r=e.length-2;t[la]=L(e.substr(0,r)),t[ca]=L(e.substr(r))}),re("Hmmss",function(e,t,n){var r=e.length-4,a=e.length-2;t[la]=L(e.substr(0,r)),t[ca]=L(e.substr(r,2)),t[ha]=L(e.substr(a))});var ja,Ha=/[ap]\.?m?\.?/i,Aa=N("Hours",!0),Oa={calendar:jr,longDateFormat:Hr,invalidDate:Ar,ordinal:Or,dayOfMonthOrdinalParse:Pr,relativeTime:Cr,months:ya,monthsShort:va,week:ka,weekdays:Ya,weekdaysMin:wa,weekdaysShort:xa,meridiemParse:Ha},Pa={},Ca={},Fa=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Wa=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ia=/Z|[+-]\d\d(?::?\d\d)?/,Ea=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],za=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Ra=/^\/?Date\((\-?\d+)/i,Na=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;t.createFromInputFallback=x("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),t.ISO_8601=function(){},t.RFC_2822=function(){};var Va=x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=bt.apply(null,arguments);return this.isValid()&&e.isValid()?ethis?this:e:g()}),$a=function(){return Date.now?Date.now():+new Date},Ja=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ht("Z",":"),Ht("ZZ",""),X("Z",na),X("ZZ",na),re(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=At(na,e)});var Ua=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var qa=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ga=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Jt.fn=Tt.prototype,Jt.invalid=Dt;var Ka=Kt(1,"add"),Za=Kt(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Qa=x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});q(0,["gg",2],0,function(){return this.weekYear()%100}),q(0,["GG",2],0,function(){return this.isoWeekYear()%100}),An("gggg","weekYear"),An("ggggg","weekYear"),An("GGGG","isoWeekYear"),An("GGGGG","isoWeekYear"),W("weekYear","gg"),W("isoWeekYear","GG"),z("weekYear",1),z("isoWeekYear",1),X("G",ea),X("g",ea),X("GG",Ur,Vr),X("gg",Ur,Vr),X("GGGG",Zr,$r),X("gggg",Zr,$r),X("GGGGG",Qr,Jr),X("ggggg",Qr,Jr),ae(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,r){t[r.substr(0,2)]=L(e)}),ae(["gg","GG"],function(e,n,r,a){n[a]=t.parseTwoDigitYear(e)}),q("Q",0,"Qo","quarter"),W("quarter","Q"),z("quarter",7),X("Q",Nr),re("Q",function(e,t){t[da]=3*(L(e)-1)}),q("D",["DD",2],"Do","date"),W("date","D"),z("date",9),X("D",Ur),X("DD",Ur,Vr),X("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),re(["D","DD"],ua),re("Do",function(e,t){t[ua]=L(e.match(Ur)[0],10)});var Xa=N("Date",!0);q("DDD",["DDDD",3],"DDDo","dayOfYear"),W("dayOfYear","DDD"),z("dayOfYear",4),X("DDD",Kr),X("DDDD",Br),re(["DDD","DDDD"],function(e,t,n){n._dayOfYear=L(e)}),q("m",["mm",2],0,"minute"),W("minute","m"),z("minute",14),X("m",Ur),X("mm",Ur,Vr),re(["m","mm"],ca);var ei=N("Minutes",!1);q("s",["ss",2],0,"second"),W("second","s"),z("second",15),X("s",Ur),X("ss",Ur,Vr),re(["s","ss"],ha);var ti=N("Seconds",!1);q("S",0,0,function(){return~~(this.millisecond()/100)}),q(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),q(0,["SSS",3],0,"millisecond"),q(0,["SSSS",4],0,function(){return 10*this.millisecond()}),q(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),q(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),q(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),q(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),q(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),W("millisecond","ms"),z("millisecond",16),X("S",Kr,Nr),X("SS",Kr,Vr),X("SSS",Kr,Br);var ni;for(ni="SSSS";ni.length<=9;ni+="S")X(ni,Xr);for(ni="S";ni.length<=9;ni+="S")re(ni,Rn);var ri=N("Milliseconds",!1);q("z",0,0,"zoneAbbr"),q("zz",0,0,"zoneName");var ai=v.prototype;ai.add=Ka,ai.calendar=Xt,ai.clone=en,ai.diff=dn,ai.endOf=bn,ai.format=_n,ai.from=fn,ai.fromNow=mn,ai.to=pn,ai.toNow=gn,ai.get=$,ai.invalidAt=jn,ai.isAfter=tn,ai.isBefore=nn,ai.isBetween=rn,ai.isSame=an,ai.isSameOrAfter=on,ai.isSameOrBefore=sn,ai.isValid=Tn,ai.lang=Qa,ai.locale=yn,ai.localeData=vn,ai.max=Ba,ai.min=Va,ai.parsingFlags=Sn,ai.set=J,ai.startOf=Mn,ai.subtract=Za,ai.toArray=xn,ai.toObject=wn,ai.toDate=Yn,ai.toISOString=cn,ai.inspect=hn,ai.toJSON=Dn,ai.toString=ln,ai.unix=kn,ai.valueOf=Ln,ai.creationData=Hn,ai.year=La,ai.isLeapYear=ve,ai.weekYear=On,ai.isoWeekYear=Pn,ai.quarter=ai.quarters=En,ai.month=he,ai.daysInMonth=_e,ai.week=ai.weeks=Se,ai.isoWeek=ai.isoWeeks=je,ai.weeksInYear=Fn,ai.isoWeeksInYear=Cn,ai.date=Xa,ai.day=ai.days=Ie,ai.weekday=Ee,ai.isoWeekday=ze,ai.dayOfYear=zn,ai.hour=ai.hours=Aa,ai.minute=ai.minutes=ei,ai.second=ai.seconds=ti,ai.millisecond=ai.milliseconds=ri,ai.utcOffset=Ct,ai.utc=Wt,ai.local=It,ai.parseZone=Et,ai.hasAlignedHourOffset=zt,ai.isDST=Rt,ai.isLocal=Vt,ai.isUtcOffset=Bt,ai.isUtc=$t,ai.isUTC=$t,ai.zoneAbbr=Nn,ai.zoneName=Vn,ai.dates=x("dates accessor is deprecated. Use date instead.",Xa),ai.months=x("months accessor is deprecated. Use month instead",he),ai.years=x("years accessor is deprecated. Use year instead",La),ai.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ft),ai.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Nt);var ii=j.prototype;ii.calendar=H,ii.longDateFormat=A,ii.invalidDate=O,ii.ordinal=P,ii.preparse=Jn,ii.postformat=Jn,ii.relativeTime=C,ii.pastFuture=F,ii.set=T,ii.months=se,ii.monthsShort=de,ii.monthsParse=le,ii.monthsRegex=me,ii.monthsShortRegex=fe,ii.week=we,ii.firstDayOfYear=Te,ii.firstDayOfWeek=De,ii.weekdays=Oe,ii.weekdaysMin=Ce,ii.weekdaysShort=Pe,ii.weekdaysParse=We,ii.weekdaysRegex=Re,ii.weekdaysShortRegex=Ne,ii.weekdaysMinRegex=Ve,ii.isPM=Ge,ii.meridiem=Ke,et("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===L(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),t.lang=x("moment.lang is deprecated. Use moment.locale instead.",et),t.langData=x("moment.langData is deprecated. Use moment.localeData instead.",rt);var oi=Math.abs,si=cr("ms"),di=cr("s"),ui=cr("m"),li=cr("h"),ci=cr("d"),hi=cr("w"),_i=cr("M"),fi=cr("y"),mi=_r("milliseconds"),pi=_r("seconds"),gi=_r("minutes"),yi=_r("hours"),vi=_r("days"),Mi=_r("months"),bi=_r("years"),Li=Math.round,ki={ss:44,s:45,m:45,h:22,d:26,M:11},Yi=Math.abs,xi=Tt.prototype;return xi.isValid=wt,xi.abs=tr,xi.add=rr,xi.subtract=ar,xi.as=ur,xi.asMilliseconds=si,xi.asSeconds=di,xi.asMinutes=ui,xi.asHours=li,xi.asDays=ci,xi.asWeeks=hi,xi.asMonths=_i,xi.asYears=fi,xi.valueOf=lr,xi._bubble=or,xi.get=hr,xi.milliseconds=mi,xi.seconds=pi,xi.minutes=gi,xi.hours=yi,xi.days=vi,xi.weeks=fr,xi.months=Mi,xi.years=bi,xi.humanize=vr,xi.toISOString=Mr,xi.toString=Mr,xi.toJSON=Mr,xi.locale=yn,xi.localeData=vn,xi.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Mr),xi.lang=Qa,q("X",0,0,"unix"),q("x",0,0,"valueOf"),X("x",ea),X("X",ra),re("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),re("x",function(e,t,n){n._d=new Date(L(e))}),t.version="2.18.1",r(bt),t.fn=ai,t.min=kt,t.max=Yt,t.now=$a,t.utc=_,t.unix=Bn,t.months=Kn,t.isDate=u,t.locale=et,t.invalid=g,t.duration=Jt,t.isMoment=M,t.weekdays=Qn,t.parseZone=$n,t.localeData=rt,t.isDuration=St,t.monthsShort=Zn,t.weekdaysMin=er,t.defineLocale=tt,t.updateLocale=nt,t.locales=at,t.weekdaysShort=Xn,t.normalizeUnits=I,t.relativeTimeRounding=gr,t.relativeTimeThreshold=yr,t.calendarFormat=Qt,t.prototype=ai,t})}).call(t,n(32)(e))},function(e,t,n){var r=n(76),a="object"==typeof self&&self&&self.Object===Object&&self,i=r||a||Function("return this")();e.exports=i},function(e,t){var n=Array.isArray;e.exports=n},function(e,t){function n(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=n},function(e,t){function n(e){return null!=e&&"object"==typeof e}e.exports=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){return(0,o.default)(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.mergeOptions=a;var i=n(377),o=r(i)},function(e,t,n){var r=n(241)();n(239)(r),n(253)(r),n(235)(r),n(238)(r),n(243)(r),n(234)(r),n(236)(r),n(237)(r),n(242)(r),n(245)(r),n(246)(r),n(244)(r),n(240)(r),n(247)(r),n(248)(r),n(249)(r),n(250)(r),n(251)(r),n(259)(r),n(257)(r),n(258)(r),n(260)(r),n(261)(r),n(262)(r),n(228)(r),n(229)(r),n(230)(r),n(231)(r),n(232)(r),n(233)(r),n(221)(r),n(222)(r),n(223)(r),n(224)(r),n(225)(r),n(226)(r),n(227)(r);var a=[];a.push(n(254)(r),n(255)(r),n(256)(r)),r.plugins.register(a),e.exports=r,"undefined"!=typeof window&&(window.Chart=r)},function(e,t,n){function r(e,t){var n=i(e,t);return a(n)?n:void 0}var a=n(287),i=n(324);e.exports=r},function(e,t,n){/*! + * Vue.js v1.0.28 * (c) 2016 Evan You * Released under the MIT License. */ -"use strict";function n(e,t,a){if(i(e,t))return void(e[t]=a);if(e._isVue)return void n(e._data,t,a);var r=e.__ob__;if(!r)return void(e[t]=a);if(r.convert(t,a),r.dep.notify(),r.vms)for(var o=r.vms.length;o--;){var s=r.vms[o];s._proxy(t),s._digest()}return a}function a(e,t){if(i(e,t)){delete e[t];var n=e.__ob__;if(!n)return void(e._isVue&&(delete e._data[t],e._digest()));if(n.dep.notify(),n.vms)for(var a=n.vms.length;a--;){var r=n.vms[a];r._unproxy(t),r._digest()}}}function i(e,t){return jn.call(e,t)}function r(e){return An.test(e)}function o(e){var t=(e+"").charCodeAt(0);return 36===t||95===t}function s(e){return null==e?"":e.toString()}function d(e){if("string"!=typeof e)return e;var t=Number(e);return isNaN(t)?e:t}function l(e){return"true"===e||"false"!==e&&e}function u(e){var t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t!==n||34!==t&&39!==t?e:e.slice(1,-1)}function c(e){return e.replace(Hn,h)}function h(e,t){return t?t.toUpperCase():""}function _(e){return e.replace(Cn,"$1-$2").toLowerCase()}function f(e){return e.replace(Pn,h)}function m(e,t){return function(n){var a=arguments.length;return a?a>1?e.apply(t,arguments):e.call(t,n):e.call(t)}}function p(e,t){t=t||0;for(var n=e.length-t,a=new Array(n);n--;)a[n]=e[n+t];return a}function g(e,t){for(var n=Object.keys(t),a=n.length;a--;)e[n[a]]=t[n[a]];return e}function y(e){return null!==e&&"object"==typeof e}function v(e){return Fn.call(e)===On}function M(e,t,n,a){Object.defineProperty(e,t,{value:n,enumerable:!!a,writable:!0,configurable:!0})}function b(e,t){var n,a,i,r,o,s=function d(){var s=Date.now()-r;s=0?n=setTimeout(d,t-s):(n=null,o=e.apply(i,a),n||(i=a=null))};return function(){return i=this,a=arguments,r=Date.now(),n||(n=setTimeout(s,t)),o}}function L(e,t){for(var n=e.length;n--;)if(e[n]===t)return n;return-1}function k(e){var t=function n(){if(!n.cancelled)return e.apply(this,arguments)};return t.cancel=function(){t.cancelled=!0},t}function Y(e,t){return e==t||!(!y(e)||!y(t))&&JSON.stringify(e)===JSON.stringify(t)}function x(e){this.size=0,this.limit=e,this.head=this.tail=void 0,this._keymap=Object.create(null)}function w(){var e,t=ia.slice(ua,da).trim();if(t){e={};var n=t.match(ga);e.name=n[0],n.length>1&&(e.args=n.slice(1).map(D))}e&&(ra.filters=ra.filters||[]).push(e),ua=da+1}function D(e){if(ya.test(e))return{value:d(e),dynamic:!1};var t=u(e),n=t===e;return{value:n?e:t,dynamic:n}}function T(e){var t=pa.get(e);if(t)return t;for(ia=e,ca=ha=!1,_a=fa=ma=0,ua=0,ra={},da=0,la=ia.length;dal&&d.push({value:e.slice(l,a)}),i=ka.test(n[0]),r=i?n[1]:n[2],o=r.charCodeAt(0),s=42===o,r=s?r.slice(1):r,d.push({tag:!0,value:r.trim(),html:i,oneTime:s}),l=a+n[0].length;return l1?e.map(function(e){return C(e,t)}).join("+"):C(e[0],t,!0)}function C(e,t,n){return e.tag?e.oneTime&&t?'"'+t.$eval(e.value)+'"':P(e.value,n):'"'+e.value+'"'}function P(e,t){if(Ya.test(e)){var n=T(e);return n.filters?"this._applyFilters("+n.expression+",null,"+JSON.stringify(n.filters)+",false)":"("+e+")"}return t?e:"("+e+")"}function F(e,t,n,a){I(e,1,function(){t.appendChild(e)},n,a)}function O(e,t,n,a){I(e,1,function(){B(e,t)},n,a)}function W(e,t,n){I(e,-1,function(){J(e)},t,n)}function I(e,t,n,a,i){var r=e.__v_trans;if(!r||!r.hooks&&!Kn||!a._isCompiled||a.$parent&&!a.$parent._isCompiled)return n(),void(i&&i());var o=t>0?"enter":"leave";r[o](n,i)}function E(e){if("string"==typeof e){e=document.querySelector(e)}return e}function R(e){if(!e)return!1;var t=e.ownerDocument.documentElement,n=e.parentNode;return t===e||t===n||!(!n||1!==n.nodeType||!t.contains(n))}function z(e,t){var n=e.getAttribute(t);return null!==n&&e.removeAttribute(t),n}function N(e,t){var n=z(e,":"+t);return null===n&&(n=z(e,"v-bind:"+t)),n}function V(e,t){return e.hasAttribute(t)||e.hasAttribute(":"+t)||e.hasAttribute("v-bind:"+t)}function B(e,t){t.parentNode.insertBefore(e,t)}function $(e,t){t.nextSibling?B(e,t.nextSibling):t.parentNode.appendChild(e)}function J(e){e.parentNode.removeChild(e)}function U(e,t){t.firstChild?B(e,t.firstChild):t.appendChild(e)}function G(e,t){var n=e.parentNode;n&&n.replaceChild(t,e)}function q(e,t,n,a){e.addEventListener(t,n,a)}function K(e,t,n){e.removeEventListener(t,n)}function Z(e){var t=e.className;return"object"==typeof t&&(t=t.baseVal||""),t}function X(e,t){Vn&&!/svg$/.test(e.namespaceURI)?e.className=t:e.setAttribute("class",t)}function Q(e,t){if(e.classList)e.classList.add(t);else{var n=" "+Z(e)+" ";n.indexOf(" "+t+" ")<0&&X(e,(n+t).trim())}}function ee(e,t){if(e.classList)e.classList.remove(t);else{for(var n=" "+Z(e)+" ",a=" "+t+" ";n.indexOf(a)>=0;)n=n.replace(a," ");X(e,n.trim())}e.className||e.removeAttribute("class")}function te(e,t){var n,a;if(ie(e)&&le(e.content)&&(e=e.content),e.hasChildNodes())for(ne(e),a=t?document.createDocumentFragment():document.createElement("div");n=e.firstChild;)a.appendChild(n);return a}function ne(e){for(var t;t=e.firstChild,ae(t);)e.removeChild(t);for(;t=e.lastChild,ae(t);)e.removeChild(t)}function ae(e){return e&&(3===e.nodeType&&!e.data.trim()||8===e.nodeType)}function ie(e){return e.tagName&&"template"===e.tagName.toLowerCase()}function re(e,t){var n=Ta.debug?document.createComment(e):document.createTextNode(t?" ":"");return n.__v_anchor=!0,n}function oe(e){if(e.hasAttributes())for(var t=e.attributes,n=0,a=t.length;n=d.length){for(var e=0;e=97&&t<=122||t>=65&&t<=90?"ident":t>=49&&t<=57?"number":"else"}function Se(e){var t=e.trim();return("0"!==e.charAt(0)||!isNaN(e))&&(r(t)?u(t):"*"+t)}function je(e){function t(){var t=e[u+1];if(c===Qa&&"'"===t||c===ei&&'"'===t)return u++,a="\\"+t,_[Ba](),!0}var n,a,i,r,o,s,d,l=[],u=-1,c=Ga,h=0,_=[];for(_[$a]=function(){void 0!==i&&(l.push(i),i=void 0)},_[Ba]=function(){void 0===i?i=a:i+=a},_[Ja]=function(){_[Ba](),h++},_[Ua]=function(){if(h>0)h--,c=Xa,_[Ba]();else{if(h=0,i=Se(i),i===!1)return!1;_[$a]()}};null!=c;)if(u++,n=e[u],"\\"!==n||!t()){if(r=Te(n),d=ai[c],o=d[r]||d["else"]||ni,o===ni)return;if(c=o[0],s=_[o[1]],s&&(a=o[2],a=void 0===a?n:a,s()===!1))return;if(c===ti)return l.raw=e,l}}function Ae(e){var t=Va.get(e);return t||(t=je(e),t&&Va.put(e,t)),t}function He(e,t){return ze(t).get(e)}function Ce(e,t,a){var i=e;if("string"==typeof t&&(t=je(t)),!t||!y(e))return!1;for(var r,o,s=0,d=t.length;s-1?n.replace(_i,We):n,t+"scope."+n)}function We(e,t){return gi[t]}function Ie(e){li.test(e),gi.length=0;var t=e.replace(hi,Fe).replace(ui,"");return t=(" "+t).replace(mi,Oe).replace(_i,We),Ee(t)}function Ee(e){try{return new Function("scope","return "+e+";")}catch(t){return Pe}}function Re(e){var t=Ae(e);if(t)return function(e,n){Ce(e,t,n)}}function ze(e,t){e=e.trim();var n=ri.get(e);if(n)return t&&!n.set&&(n.set=Re(n.exp)),n;var a={exp:e};return a.get=Ne(e)&&e.indexOf("[")<0?Ee("scope."+e):Ie(e),t&&(a.set=Re(e)),ri.put(e,a),a}function Ne(e){return fi.test(e)&&!pi.test(e)&&"Math."!==e.slice(0,5)}function Ve(){vi.length=0,Mi.length=0,bi={},Li={},ki=!1}function Be(){for(var e=!0;e;)e=!1,$e(vi),$e(Mi),vi.length?e=!0:(Rn&&Ta.devtools&&Rn.emit("flush"),Ve())}function $e(e){for(var t=0;t0){var o=r+(a?t:ue(t));i=Wi.get(o),i||(i=Ot(n,e.$options,!0),Wi.put(o,i))}else i=Ot(n,e.$options,!0);this.linker=i}function dt(e,t,n){var a=e.node.previousSibling;if(a){for(e=a.__v_frag;!(e&&e.forId===n&&e.inserted||a===t);){if(a=a.previousSibling,!a)return;e=a.__v_frag}return e}}function lt(e){var t=e.node;if(e.end)for(;!t.__vue__&&t!==e.end&&t.nextSibling;)t=t.nextSibling;return t.__vue__}function ut(e){for(var t=-1,n=new Array(Math.floor(e));++t47&&t<58?parseInt(e,10):1===e.length&&(t=e.toUpperCase().charCodeAt(0),t>64&&t<91)?t:ir[e]});return n=[].concat.apply([],n),function(t){if(n.indexOf(t.keyCode)>-1)return e.call(this,t)}}function mt(e){return function(t){return t.stopPropagation(),e.call(this,t)}}function pt(e){return function(t){return t.preventDefault(),e.call(this,t)}}function gt(e){return function(t){if(t.target===t.currentTarget)return e.call(this,t)}}function yt(e){if(lr[e])return lr[e];var t=vt(e);return lr[e]=lr[t]=t,t}function vt(e){e=_(e);var t=c(e),n=t.charAt(0).toUpperCase()+t.slice(1);ur||(ur=document.createElement("div"));var a,i=or.length;if("filter"!==t&&t in ur.style)return{kebab:e,camel:t};for(;i--;)if(a=sr[i]+n,a in ur.style)return{kebab:or[i]+e,camel:a}}function Mt(e){var t=[];if(Wn(e))for(var n=0,a=e.length;n=i?n():e[r].call(t,a)}var i=e.length,r=0;e[0].call(t,a)}function kt(e,t,n){for(var a,i,o,s,d,l,u,h=[],f=Object.keys(t),m=f.length;m--;)if(i=f[m],a=t[i]||wr,d=c(i),Dr.test(d)){if(u={name:i,path:d,options:a,mode:xr.ONE_WAY,raw:null},o=_(i),null===(s=N(e,o))&&(null!==(s=N(e,o+".sync"))?u.mode=xr.TWO_WAY:null!==(s=N(e,o+".once"))&&(u.mode=xr.ONE_TIME)),null!==s)u.raw=s,l=T(s),s=l.expression,u.filters=l.filters,r(s)&&!l.filters?u.optimizedLiteral=!0:u.dynamic=!0,u.parentPath=s;else if(null!==(s=z(e,o)))u.raw=s;else;h.push(u)}return Yt(h)}function Yt(e){return function(t,n){t._props={};for(var a,r,o,s,c,h=t.$options.propsData,f=e.length;f--;)if(a=e[f],c=a.raw,r=a.path,o=a.options,t._props[r]=a,h&&i(h,r)&&wt(t,a,h[r]),null===c)wt(t,a,void 0);else if(a.dynamic)a.mode===xr.ONE_TIME?(s=(n||t._context||t).$get(a.parentPath),wt(t,a,s)):t._context?t._bindDir({name:"prop",def:Sr,prop:a},null,null,n):wt(t,a,t.$get(a.parentPath));else if(a.optimizedLiteral){var m=u(c);s=m===c?l(d(c)):m,wt(t,a,s)}else s=o.type===Boolean&&(""===c||c===_(a.name))||c,wt(t,a,s)}}function xt(e,t,n,a){var i=t.dynamic&&Ne(t.parentPath),r=n;void 0===r&&(r=Tt(e,t)),r=jt(t,r,e);var o=r!==n;St(t,r,e)||(r=void 0),i&&!o?be(function(){a(r)}):a(r)}function wt(e,t,n){xt(e,t,n,function(n){we(e,t.path,n)})}function Dt(e,t,n){xt(e,t,n,function(n){e[t.path]=n})}function Tt(e,t){var n=t.options;if(!i(n,"default"))return n.type!==Boolean&&void 0;var a=n["default"];return y(a),"function"==typeof a&&n.type!==Function?a.call(e):a}function St(e,t,n){if(!e.options.required&&(null===e.raw||null==t))return!0;var a=e.options,i=a.type,r=!i,o=[];if(i){Wn(i)||(i=[i]);for(var s=0;st?-1:e===t?0:1}function Et(e,t,n,a){function i(i){Rt(e,t,i),n&&a&&Rt(n,a)}return i.dirs=t,i}function Rt(e,t,n){for(var a=t.length;a--;)t[a]._teardown()}function zt(e,t,n,a){var i=kt(t,n,e),r=Wt(function(){i(e,a)},e);return Et(e,r)}function Nt(e,t,n){var a,i,r=t._containerAttrs,o=t._replacerAttrs;if(11!==e.nodeType)t._asComponent?(r&&n&&(a=nn(r,n)),o&&(i=nn(o,t))):i=nn(e.attributes,t);else;return t._containerAttrs=t._replacerAttrs=null,function(e,t,n){var r,o=e._context;o&&a&&(r=Wt(function(){a(o,t,null,n)},o));var s=Wt(function(){i&&i(e,t)},e);return Et(e,s,o,r)}}function Vt(e,t){var n=e.nodeType;return 1!==n||sn(e)?3===n&&e.data.trim()?$t(e,t):null:Bt(e,t)}function Bt(e,t){if("TEXTAREA"===e.tagName){var n=A(e.value);n&&(e.setAttribute(":value",H(n)),e.value="")}var a,i=e.hasAttributes(),r=i&&p(e.attributes);return i&&(a=Qt(e,r,t)),a||(a=Zt(e,t)),a||(a=Xt(e,t)),!a&&i&&(a=nn(r,t)),a}function $t(e,t){if(e._skip)return Jt;var n=A(e.wholeText);if(!n)return null;for(var a=e.nextSibling;a&&3===a.nodeType;)a._skip=!0,a=a.nextSibling;for(var i,r,o=document.createDocumentFragment(),s=0,d=n.length;s_.priority)&&(_=h,u=i.name,s=an(i.name),o=i.value,l=d[1],c=d[2]));return _?tn(e,l,o,n,_,u,c,s):void 0}function en(){}function tn(e,t,n,a,i,r,o,s){var d=T(n),l={name:t,arg:o,expression:d.expression,filters:d.filters,raw:n,attr:r,modifiers:s,def:i};"for"!==t&&"router-view"!==t||(l.ref=oe(e));var u=function(e,t,n,a,i){l.ref&&we((a||e).$refs,l.ref,null),e._bindDir(l,t,n,a,i)};return u.terminal=!0,u}function nn(e,t){function n(e,t,n){var a=n&&on(n),i=!a&&T(r);m.push({name:e,attr:o,raw:s,def:t,arg:l,modifiers:u,expression:i&&i.expression,filters:i&&i.filters,interp:n,hasOneTime:a})}for(var a,i,r,o,s,d,l,u,c,h,_,f=e.length,m=[];f--;)if(a=e[f],i=o=a.name,r=s=a.value,h=A(r),l=null,u=an(i),i=i.replace(Br,""),h)r=H(h),l=i,n("bind",Lr.bind,h);else if($r.test(i))u.literal=!zr.test(i),n("transition",Rr.transition);else if(Nr.test(i))l=i.replace(Nr,""),n("on",Lr.on);else if(zr.test(i))d=i.replace(zr,""),"style"===d||"class"===d?n(d,Rr[d]):(l=d,n("bind",Lr.bind));else if(_=i.match(Vr)){if(d=_[1],l=_[2],"else"===d)continue;c=ve(t,"directives",d,!0),c&&n(d,c)}if(m.length)return rn(m)}function an(e){var t=Object.create(null),n=e.match(Br);if(n)for(var a=n.length;a--;)t[n[a].slice(1)]=!0;return t}function rn(e){return function(t,n,a,i,r){for(var o=e.length;o--;)t._bindDir(e[o],n,a,i,r)}}function on(e){for(var t=e.length;t--;)if(e[t].oneTime)return!0}function sn(e){return"SCRIPT"===e.tagName&&(!e.hasAttribute("type")||"text/javascript"===e.getAttribute("type"))}function dn(e,t){return t&&(t._containerAttrs=un(e)),ie(e)&&(e=Qe(e)),t&&(t._asComponent&&!t.template&&(t.template=""),t.template&&(t._content=te(e),e=ln(e,t))),le(e)&&(U(re("v-start",!0),e),e.appendChild(re("v-end",!0))),e}function ln(e,t){var n=t.template,a=Qe(n,!0);if(a){var i=a.firstChild,r=i.tagName&&i.tagName.toLowerCase();return t.replace?(e===document.body,a.childNodes.length>1||1!==i.nodeType||"component"===r||ve(t,"components",r)||V(i,"is")||ve(t,"elementDirectives",r)||i.hasAttribute("v-for")||i.hasAttribute("v-if")?a:(t._replacerAttrs=un(i),cn(e,i),i)):(e.appendChild(a),e)}}function un(e){if(1===e.nodeType&&e.hasAttributes())return p(e.attributes)}function cn(e,t){for(var n,a,i=e.attributes,r=i.length;r--;)n=i[r].name,a=i[r].value,t.hasAttribute(n)||Gr.test(n)?"class"===n&&!A(a)&&(a=a.trim())&&a.split(/\s+/).forEach(function(e){Q(t,e)}):t.setAttribute(n,a)}function hn(e,t){if(t){for(var n,a,i=e._slotContents=Object.create(null),r=0,o=t.children.length;r1?p(n):n;var i=t&&n.some(function(e){return e._fromParent});i&&(a=!1);for(var r=p(arguments,1),o=0,s=n.length;ot?r:-r}var n=null,a=void 0;e=to(e);var i=p(arguments,1),r=i[i.length-1];"number"==typeof r?(r=r<0?-1:1,i=i.length>1?i.slice(0,-1):i):r=1;var o=i[0];return o?("function"==typeof o?n=function(e,t){return o(e,t)*r}:(a=Array.prototype.concat.apply([],i),n=function(e,i,r){return r=r||0,r>=a.length-1?t(e,i,r):t(e,i,r)||n(e,i,r+1)}),e.slice().sort(n)):e}function Tn(e,t){var n;if(v(e)){var a=Object.keys(e);for(n=a.length;n--;)if(Tn(e[a[n]],t))return!0}else if(Wn(e)){for(n=e.length;n--;)if(Tn(e[n],t))return!0}else if(null!=e)return e.toString().toLowerCase().indexOf(t)>-1}function Sn(e){function t(e){return new Function("return function "+f(e)+" (options) { this._init(options) }")()}e.options={directives:Lr,elementDirectives:eo,filters:ao,transitions:{},components:{},partials:{},replace:!0},e.util=za,e.config=Ta,e.set=n,e["delete"]=a,e.nextTick=ta,e.compiler=qr,e.FragmentFactory=st,e.internalDirectives=Rr,e.parsers={path:ii,text:xa,template:Fi,directive:va,expression:yi},e.cid=0;var i=1;e.extend=function(e){e=e||{};var n=this,a=0===n.cid;if(a&&e._Ctor)return e._Ctor;var r=e.name||n.options.name,o=t(r||"VueComponent");return o.prototype=Object.create(n.prototype),o.prototype.constructor=o,o.cid=i++,o.options=ye(n.options,e),o["super"]=n,o.extend=n.extend,Ta._assetTypes.forEach(function(e){o[e]=n[e]}),r&&(o.options.components[r]=o),a&&(e._Ctor=o),o},e.use=function(e){if(!e.installed){var t=p(arguments,1);return t.unshift(this),"function"==typeof e.install?e.install.apply(e,t):e.apply(null,t),e.installed=!0,this}},e.mixin=function(t){e.options=ye(e.options,t)},Ta._assetTypes.forEach(function(t){e[t]=function(n,a){return a?("component"===t&&v(a)&&(a.name||(a.name=n),a=e.extend(a)),this.options[t+"s"][n]=a,a):this.options[t+"s"][n]}}),g(e.transition,ja)}var jn=Object.prototype.hasOwnProperty,An=/^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/,Hn=/-(\w)/g,Cn=/([a-z\d])([A-Z])/g,Pn=/(?:^|[-_\/])(\w)/g,Fn=Object.prototype.toString,On="[object Object]",Wn=Array.isArray,In="__proto__"in{},En="undefined"!=typeof window&&"[object Object]"!==Object.prototype.toString.call(window),Rn=En&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,zn=En&&window.navigator.userAgent.toLowerCase(),Nn=zn&&zn.indexOf("trident")>0,Vn=zn&&zn.indexOf("msie 9.0")>0,Bn=zn&&zn.indexOf("android")>0,$n=zn&&/(iphone|ipad|ipod|ios)/i.test(zn),Jn=$n&&zn.match(/os ([\d_]+)/),Un=Jn&&Jn[1].split("_"),Gn=Un&&Number(Un[0])>=9&&Number(Un[1])>=3&&!window.indexedDB,qn=void 0,Kn=void 0,Zn=void 0,Xn=void 0;if(En&&!Vn){var Qn=void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend,ea=void 0===window.onanimationend&&void 0!==window.onwebkitanimationend;qn=Qn?"WebkitTransition":"transition",Kn=Qn?"webkitTransitionEnd":"transitionend",Zn=ea?"WebkitAnimation":"animation",Xn=ea?"webkitAnimationEnd":"animationend"}var ta=function(){function e(){i=!1;var e=a.slice(0);a=[];for(var t=0;t=this.length&&(this.length=Number(e)+1),this.splice(e,1,t)[0]}),M(Wa,"$remove",function(e){if(this.length){var t=L(this,e);return t>-1?this.splice(t,1):void 0}});var Ea=Object.getOwnPropertyNames(Ia),Ra=!0;Le.prototype.walk=function(e){for(var t=Object.keys(e),n=0,a=t.length;n",""],tr:[2,"","
"],col:[2,"","
"]};Si.td=Si.th=[3,"","
"],Si.option=Si.optgroup=[1,'"],Si.thead=Si.tbody=Si.colgroup=Si.caption=Si.tfoot=[1,"","
"],Si.g=Si.defs=Si.symbol=Si.use=Si.image=Si.text=Si.circle=Si.ellipse=Si.line=Si.path=Si.polygon=Si.polyline=Si.rect=[1,'',""];var ji=/<([\w:-]+)/,Ai=/&#?\w+?;/,Hi=/\n\t // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n\t // +0200, so we adjust the time as needed, to be valid.\n\t //\n\t // Keeping the time actually adds/subtracts (one hour)\n\t // from the actual represented time. That is why we call updateOffset\n\t // a second time. In case it wants us to change the offset again\n\t // _changeInProgress == true case, then we have to adjust, because\n\t // there is no such time in the given timezone.\n\t function getSetOffset (input, keepLocalTime) {\n\t var offset = this._offset || 0,\n\t localAdjust;\n\t if (!this.isValid()) {\n\t return input != null ? this : NaN;\n\t }\n\t if (input != null) {\n\t if (typeof input === 'string') {\n\t input = offsetFromString(matchShortOffset, input);\n\t } else if (Math.abs(input) < 16) {\n\t input = input * 60;\n\t }\n\t if (!this._isUTC && keepLocalTime) {\n\t localAdjust = getDateOffset(this);\n\t }\n\t this._offset = input;\n\t this._isUTC = true;\n\t if (localAdjust != null) {\n\t this.add(localAdjust, 'm');\n\t }\n\t if (offset !== input) {\n\t if (!keepLocalTime || this._changeInProgress) {\n\t add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false);\n\t } else if (!this._changeInProgress) {\n\t this._changeInProgress = true;\n\t utils_hooks__hooks.updateOffset(this, true);\n\t this._changeInProgress = null;\n\t }\n\t }\n\t return this;\n\t } else {\n\t return this._isUTC ? offset : getDateOffset(this);\n\t }\n\t }\n\t\n\t function getSetZone (input, keepLocalTime) {\n\t if (input != null) {\n\t if (typeof input !== 'string') {\n\t input = -input;\n\t }\n\t\n\t this.utcOffset(input, keepLocalTime);\n\t\n\t return this;\n\t } else {\n\t return -this.utcOffset();\n\t }\n\t }\n\t\n\t function setOffsetToUTC (keepLocalTime) {\n\t return this.utcOffset(0, keepLocalTime);\n\t }\n\t\n\t function setOffsetToLocal (keepLocalTime) {\n\t if (this._isUTC) {\n\t this.utcOffset(0, keepLocalTime);\n\t this._isUTC = false;\n\t\n\t if (keepLocalTime) {\n\t this.subtract(getDateOffset(this), 'm');\n\t }\n\t }\n\t return this;\n\t }\n\t\n\t function setOffsetToParsedOffset () {\n\t if (this._tzm) {\n\t this.utcOffset(this._tzm);\n\t } else if (typeof this._i === 'string') {\n\t this.utcOffset(offsetFromString(matchOffset, this._i));\n\t }\n\t return this;\n\t }\n\t\n\t function hasAlignedHourOffset (input) {\n\t if (!this.isValid()) {\n\t return false;\n\t }\n\t input = input ? local__createLocal(input).utcOffset() : 0;\n\t\n\t return (this.utcOffset() - input) % 60 === 0;\n\t }\n\t\n\t function isDaylightSavingTime () {\n\t return (\n\t this.utcOffset() > this.clone().month(0).utcOffset() ||\n\t this.utcOffset() > this.clone().month(5).utcOffset()\n\t );\n\t }\n\t\n\t function isDaylightSavingTimeShifted () {\n\t if (!isUndefined(this._isDSTShifted)) {\n\t return this._isDSTShifted;\n\t }\n\t\n\t var c = {};\n\t\n\t copyConfig(c, this);\n\t c = prepareConfig(c);\n\t\n\t if (c._a) {\n\t var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a);\n\t this._isDSTShifted = this.isValid() &&\n\t compareArrays(c._a, other.toArray()) > 0;\n\t } else {\n\t this._isDSTShifted = false;\n\t }\n\t\n\t return this._isDSTShifted;\n\t }\n\t\n\t function isLocal () {\n\t return this.isValid() ? !this._isUTC : false;\n\t }\n\t\n\t function isUtcOffset () {\n\t return this.isValid() ? this._isUTC : false;\n\t }\n\t\n\t function isUtc () {\n\t return this.isValid() ? this._isUTC && this._offset === 0 : false;\n\t }\n\t\n\t // ASP.NET json date format regex\n\t var aspNetRegex = /^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)\\.?(\\d{3})?\\d*)?$/;\n\t\n\t // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n\t // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n\t // and further modified to allow for strings containing both week and day\n\t var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;\n\t\n\t function create__createDuration (input, key) {\n\t var duration = input,\n\t // matching against regexp is expensive, do it on demand\n\t match = null,\n\t sign,\n\t ret,\n\t diffRes;\n\t\n\t if (isDuration(input)) {\n\t duration = {\n\t ms : input._milliseconds,\n\t d : input._days,\n\t M : input._months\n\t };\n\t } else if (typeof input === 'number') {\n\t duration = {};\n\t if (key) {\n\t duration[key] = input;\n\t } else {\n\t duration.milliseconds = input;\n\t }\n\t } else if (!!(match = aspNetRegex.exec(input))) {\n\t sign = (match[1] === '-') ? -1 : 1;\n\t duration = {\n\t y : 0,\n\t d : toInt(match[DATE]) * sign,\n\t h : toInt(match[HOUR]) * sign,\n\t m : toInt(match[MINUTE]) * sign,\n\t s : toInt(match[SECOND]) * sign,\n\t ms : toInt(match[MILLISECOND]) * sign\n\t };\n\t } else if (!!(match = isoRegex.exec(input))) {\n\t sign = (match[1] === '-') ? -1 : 1;\n\t duration = {\n\t y : parseIso(match[2], sign),\n\t M : parseIso(match[3], sign),\n\t w : parseIso(match[4], sign),\n\t d : parseIso(match[5], sign),\n\t h : parseIso(match[6], sign),\n\t m : parseIso(match[7], sign),\n\t s : parseIso(match[8], sign)\n\t };\n\t } else if (duration == null) {// checks for null or undefined\n\t duration = {};\n\t } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n\t diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to));\n\t\n\t duration = {};\n\t duration.ms = diffRes.milliseconds;\n\t duration.M = diffRes.months;\n\t }\n\t\n\t ret = new Duration(duration);\n\t\n\t if (isDuration(input) && hasOwnProp(input, '_locale')) {\n\t ret._locale = input._locale;\n\t }\n\t\n\t return ret;\n\t }\n\t\n\t create__createDuration.fn = Duration.prototype;\n\t\n\t function parseIso (inp, sign) {\n\t // We'd normally use ~~inp for this, but unfortunately it also\n\t // converts floats to ints.\n\t // inp may be undefined, so careful calling replace on it.\n\t var res = inp && parseFloat(inp.replace(',', '.'));\n\t // apply sign while we're at it\n\t return (isNaN(res) ? 0 : res) * sign;\n\t }\n\t\n\t function positiveMomentsDifference(base, other) {\n\t var res = {milliseconds: 0, months: 0};\n\t\n\t res.months = other.month() - base.month() +\n\t (other.year() - base.year()) * 12;\n\t if (base.clone().add(res.months, 'M').isAfter(other)) {\n\t --res.months;\n\t }\n\t\n\t res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\t\n\t return res;\n\t }\n\t\n\t function momentsDifference(base, other) {\n\t var res;\n\t if (!(base.isValid() && other.isValid())) {\n\t return {milliseconds: 0, months: 0};\n\t }\n\t\n\t other = cloneWithOffset(other, base);\n\t if (base.isBefore(other)) {\n\t res = positiveMomentsDifference(base, other);\n\t } else {\n\t res = positiveMomentsDifference(other, base);\n\t res.milliseconds = -res.milliseconds;\n\t res.months = -res.months;\n\t }\n\t\n\t return res;\n\t }\n\t\n\t function absRound (number) {\n\t if (number < 0) {\n\t return Math.round(-1 * number) * -1;\n\t } else {\n\t return Math.round(number);\n\t }\n\t }\n\t\n\t // TODO: remove 'name' arg after deprecation is removed\n\t function createAdder(direction, name) {\n\t return function (val, period) {\n\t var dur, tmp;\n\t //invert the arguments, but complain about it\n\t if (period !== null && !isNaN(+period)) {\n\t deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n\t 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n\t tmp = val; val = period; period = tmp;\n\t }\n\t\n\t val = typeof val === 'string' ? +val : val;\n\t dur = create__createDuration(val, period);\n\t add_subtract__addSubtract(this, dur, direction);\n\t return this;\n\t };\n\t }\n\t\n\t function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) {\n\t var milliseconds = duration._milliseconds,\n\t days = absRound(duration._days),\n\t months = absRound(duration._months);\n\t\n\t if (!mom.isValid()) {\n\t // No op\n\t return;\n\t }\n\t\n\t updateOffset = updateOffset == null ? true : updateOffset;\n\t\n\t if (milliseconds) {\n\t mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n\t }\n\t if (days) {\n\t get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding);\n\t }\n\t if (months) {\n\t setMonth(mom, get_set__get(mom, 'Month') + months * isAdding);\n\t }\n\t if (updateOffset) {\n\t utils_hooks__hooks.updateOffset(mom, days || months);\n\t }\n\t }\n\t\n\t var add_subtract__add = createAdder(1, 'add');\n\t var add_subtract__subtract = createAdder(-1, 'subtract');\n\t\n\t function getCalendarFormat(myMoment, now) {\n\t var diff = myMoment.diff(now, 'days', true);\n\t return diff < -6 ? 'sameElse' :\n\t diff < -1 ? 'lastWeek' :\n\t diff < 0 ? 'lastDay' :\n\t diff < 1 ? 'sameDay' :\n\t diff < 2 ? 'nextDay' :\n\t diff < 7 ? 'nextWeek' : 'sameElse';\n\t }\n\t\n\t function moment_calendar__calendar (time, formats) {\n\t // We want to compare the start of today, vs this.\n\t // Getting start-of-today depends on whether we're local/utc/offset or not.\n\t var now = time || local__createLocal(),\n\t sod = cloneWithOffset(now, this).startOf('day'),\n\t format = utils_hooks__hooks.calendarFormat(this, sod) || 'sameElse';\n\t\n\t var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\t\n\t return this.format(output || this.localeData().calendar(format, this, local__createLocal(now)));\n\t }\n\t\n\t function clone () {\n\t return new Moment(this);\n\t }\n\t\n\t function isAfter (input, units) {\n\t var localInput = isMoment(input) ? input : local__createLocal(input);\n\t if (!(this.isValid() && localInput.isValid())) {\n\t return false;\n\t }\n\t units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n\t if (units === 'millisecond') {\n\t return this.valueOf() > localInput.valueOf();\n\t } else {\n\t return localInput.valueOf() < this.clone().startOf(units).valueOf();\n\t }\n\t }\n\t\n\t function isBefore (input, units) {\n\t var localInput = isMoment(input) ? input : local__createLocal(input);\n\t if (!(this.isValid() && localInput.isValid())) {\n\t return false;\n\t }\n\t units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n\t if (units === 'millisecond') {\n\t return this.valueOf() < localInput.valueOf();\n\t } else {\n\t return this.clone().endOf(units).valueOf() < localInput.valueOf();\n\t }\n\t }\n\t\n\t function isBetween (from, to, units, inclusivity) {\n\t inclusivity = inclusivity || '()';\n\t return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&\n\t (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));\n\t }\n\t\n\t function isSame (input, units) {\n\t var localInput = isMoment(input) ? input : local__createLocal(input),\n\t inputMs;\n\t if (!(this.isValid() && localInput.isValid())) {\n\t return false;\n\t }\n\t units = normalizeUnits(units || 'millisecond');\n\t if (units === 'millisecond') {\n\t return this.valueOf() === localInput.valueOf();\n\t } else {\n\t inputMs = localInput.valueOf();\n\t return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n\t }\n\t }\n\t\n\t function isSameOrAfter (input, units) {\n\t return this.isSame(input, units) || this.isAfter(input,units);\n\t }\n\t\n\t function isSameOrBefore (input, units) {\n\t return this.isSame(input, units) || this.isBefore(input,units);\n\t }\n\t\n\t function diff (input, units, asFloat) {\n\t var that,\n\t zoneDelta,\n\t delta, output;\n\t\n\t if (!this.isValid()) {\n\t return NaN;\n\t }\n\t\n\t that = cloneWithOffset(input, this);\n\t\n\t if (!that.isValid()) {\n\t return NaN;\n\t }\n\t\n\t zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\t\n\t units = normalizeUnits(units);\n\t\n\t if (units === 'year' || units === 'month' || units === 'quarter') {\n\t output = monthDiff(this, that);\n\t if (units === 'quarter') {\n\t output = output / 3;\n\t } else if (units === 'year') {\n\t output = output / 12;\n\t }\n\t } else {\n\t delta = this - that;\n\t output = units === 'second' ? delta / 1e3 : // 1000\n\t units === 'minute' ? delta / 6e4 : // 1000 * 60\n\t units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60\n\t units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst\n\t units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst\n\t delta;\n\t }\n\t return asFloat ? output : absFloor(output);\n\t }\n\t\n\t function monthDiff (a, b) {\n\t // difference in months\n\t var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n\t // b is in (anchor - 1 month, anchor + 1 month)\n\t anchor = a.clone().add(wholeMonthDiff, 'months'),\n\t anchor2, adjust;\n\t\n\t if (b - anchor < 0) {\n\t anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n\t // linear across the month\n\t adjust = (b - anchor) / (anchor - anchor2);\n\t } else {\n\t anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n\t // linear across the month\n\t adjust = (b - anchor) / (anchor2 - anchor);\n\t }\n\t\n\t //check for negative zero, return zero if negative zero\n\t return -(wholeMonthDiff + adjust) || 0;\n\t }\n\t\n\t utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n\t utils_hooks__hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\t\n\t function toString () {\n\t return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n\t }\n\t\n\t function moment_format__toISOString () {\n\t var m = this.clone().utc();\n\t if (0 < m.year() && m.year() <= 9999) {\n\t if (isFunction(Date.prototype.toISOString)) {\n\t // native implementation is ~50x faster, use it when we can\n\t return this.toDate().toISOString();\n\t } else {\n\t return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n\t }\n\t } else {\n\t return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n\t }\n\t }\n\t\n\t function format (inputString) {\n\t if (!inputString) {\n\t inputString = this.isUtc() ? utils_hooks__hooks.defaultFormatUtc : utils_hooks__hooks.defaultFormat;\n\t }\n\t var output = formatMoment(this, inputString);\n\t return this.localeData().postformat(output);\n\t }\n\t\n\t function from (time, withoutSuffix) {\n\t if (this.isValid() &&\n\t ((isMoment(time) && time.isValid()) ||\n\t local__createLocal(time).isValid())) {\n\t return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n\t } else {\n\t return this.localeData().invalidDate();\n\t }\n\t }\n\t\n\t function fromNow (withoutSuffix) {\n\t return this.from(local__createLocal(), withoutSuffix);\n\t }\n\t\n\t function to (time, withoutSuffix) {\n\t if (this.isValid() &&\n\t ((isMoment(time) && time.isValid()) ||\n\t local__createLocal(time).isValid())) {\n\t return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n\t } else {\n\t return this.localeData().invalidDate();\n\t }\n\t }\n\t\n\t function toNow (withoutSuffix) {\n\t return this.to(local__createLocal(), withoutSuffix);\n\t }\n\t\n\t // If passed a locale key, it will set the locale for this\n\t // instance. Otherwise, it will return the locale configuration\n\t // variables for this instance.\n\t function locale (key) {\n\t var newLocaleData;\n\t\n\t if (key === undefined) {\n\t return this._locale._abbr;\n\t } else {\n\t newLocaleData = locale_locales__getLocale(key);\n\t if (newLocaleData != null) {\n\t this._locale = newLocaleData;\n\t }\n\t return this;\n\t }\n\t }\n\t\n\t var lang = deprecate(\n\t 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n\t function (key) {\n\t if (key === undefined) {\n\t return this.localeData();\n\t } else {\n\t return this.locale(key);\n\t }\n\t }\n\t );\n\t\n\t function localeData () {\n\t return this._locale;\n\t }\n\t\n\t function startOf (units) {\n\t units = normalizeUnits(units);\n\t // the following switch intentionally omits break keywords\n\t // to utilize falling through the cases.\n\t switch (units) {\n\t case 'year':\n\t this.month(0);\n\t /* falls through */\n\t case 'quarter':\n\t case 'month':\n\t this.date(1);\n\t /* falls through */\n\t case 'week':\n\t case 'isoWeek':\n\t case 'day':\n\t case 'date':\n\t this.hours(0);\n\t /* falls through */\n\t case 'hour':\n\t this.minutes(0);\n\t /* falls through */\n\t case 'minute':\n\t this.seconds(0);\n\t /* falls through */\n\t case 'second':\n\t this.milliseconds(0);\n\t }\n\t\n\t // weeks are a special case\n\t if (units === 'week') {\n\t this.weekday(0);\n\t }\n\t if (units === 'isoWeek') {\n\t this.isoWeekday(1);\n\t }\n\t\n\t // quarters are also special\n\t if (units === 'quarter') {\n\t this.month(Math.floor(this.month() / 3) * 3);\n\t }\n\t\n\t return this;\n\t }\n\t\n\t function endOf (units) {\n\t units = normalizeUnits(units);\n\t if (units === undefined || units === 'millisecond') {\n\t return this;\n\t }\n\t\n\t // 'date' is an alias for 'day', so it should be considered as such.\n\t if (units === 'date') {\n\t units = 'day';\n\t }\n\t\n\t return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n\t }\n\t\n\t function to_type__valueOf () {\n\t return this._d.valueOf() - ((this._offset || 0) * 60000);\n\t }\n\t\n\t function unix () {\n\t return Math.floor(this.valueOf() / 1000);\n\t }\n\t\n\t function toDate () {\n\t return new Date(this.valueOf());\n\t }\n\t\n\t function toArray () {\n\t var m = this;\n\t return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n\t }\n\t\n\t function toObject () {\n\t var m = this;\n\t return {\n\t years: m.year(),\n\t months: m.month(),\n\t date: m.date(),\n\t hours: m.hours(),\n\t minutes: m.minutes(),\n\t seconds: m.seconds(),\n\t milliseconds: m.milliseconds()\n\t };\n\t }\n\t\n\t function toJSON () {\n\t // new Date(NaN).toJSON() === null\n\t return this.isValid() ? this.toISOString() : null;\n\t }\n\t\n\t function moment_valid__isValid () {\n\t return valid__isValid(this);\n\t }\n\t\n\t function parsingFlags () {\n\t return extend({}, getParsingFlags(this));\n\t }\n\t\n\t function invalidAt () {\n\t return getParsingFlags(this).overflow;\n\t }\n\t\n\t function creationData() {\n\t return {\n\t input: this._i,\n\t format: this._f,\n\t locale: this._locale,\n\t isUTC: this._isUTC,\n\t strict: this._strict\n\t };\n\t }\n\t\n\t // FORMATTING\n\t\n\t addFormatToken(0, ['gg', 2], 0, function () {\n\t return this.weekYear() % 100;\n\t });\n\t\n\t addFormatToken(0, ['GG', 2], 0, function () {\n\t return this.isoWeekYear() % 100;\n\t });\n\t\n\t function addWeekYearFormatToken (token, getter) {\n\t addFormatToken(0, [token, token.length], 0, getter);\n\t }\n\t\n\t addWeekYearFormatToken('gggg', 'weekYear');\n\t addWeekYearFormatToken('ggggg', 'weekYear');\n\t addWeekYearFormatToken('GGGG', 'isoWeekYear');\n\t addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\t\n\t // ALIASES\n\t\n\t addUnitAlias('weekYear', 'gg');\n\t addUnitAlias('isoWeekYear', 'GG');\n\t\n\t // PRIORITY\n\t\n\t addUnitPriority('weekYear', 1);\n\t addUnitPriority('isoWeekYear', 1);\n\t\n\t\n\t // PARSING\n\t\n\t addRegexToken('G', matchSigned);\n\t addRegexToken('g', matchSigned);\n\t addRegexToken('GG', match1to2, match2);\n\t addRegexToken('gg', match1to2, match2);\n\t addRegexToken('GGGG', match1to4, match4);\n\t addRegexToken('gggg', match1to4, match4);\n\t addRegexToken('GGGGG', match1to6, match6);\n\t addRegexToken('ggggg', match1to6, match6);\n\t\n\t addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n\t week[token.substr(0, 2)] = toInt(input);\n\t });\n\t\n\t addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n\t week[token] = utils_hooks__hooks.parseTwoDigitYear(input);\n\t });\n\t\n\t // MOMENTS\n\t\n\t function getSetWeekYear (input) {\n\t return getSetWeekYearHelper.call(this,\n\t input,\n\t this.week(),\n\t this.weekday(),\n\t this.localeData()._week.dow,\n\t this.localeData()._week.doy);\n\t }\n\t\n\t function getSetISOWeekYear (input) {\n\t return getSetWeekYearHelper.call(this,\n\t input, this.isoWeek(), this.isoWeekday(), 1, 4);\n\t }\n\t\n\t function getISOWeeksInYear () {\n\t return weeksInYear(this.year(), 1, 4);\n\t }\n\t\n\t function getWeeksInYear () {\n\t var weekInfo = this.localeData()._week;\n\t return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n\t }\n\t\n\t function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n\t var weeksTarget;\n\t if (input == null) {\n\t return weekOfYear(this, dow, doy).year;\n\t } else {\n\t weeksTarget = weeksInYear(input, dow, doy);\n\t if (week > weeksTarget) {\n\t week = weeksTarget;\n\t }\n\t return setWeekAll.call(this, input, week, weekday, dow, doy);\n\t }\n\t }\n\t\n\t function setWeekAll(weekYear, week, weekday, dow, doy) {\n\t var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n\t date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\t\n\t this.year(date.getUTCFullYear());\n\t this.month(date.getUTCMonth());\n\t this.date(date.getUTCDate());\n\t return this;\n\t }\n\t\n\t // FORMATTING\n\t\n\t addFormatToken('Q', 0, 'Qo', 'quarter');\n\t\n\t // ALIASES\n\t\n\t addUnitAlias('quarter', 'Q');\n\t\n\t // PRIORITY\n\t\n\t addUnitPriority('quarter', 7);\n\t\n\t // PARSING\n\t\n\t addRegexToken('Q', match1);\n\t addParseToken('Q', function (input, array) {\n\t array[MONTH] = (toInt(input) - 1) * 3;\n\t });\n\t\n\t // MOMENTS\n\t\n\t function getSetQuarter (input) {\n\t return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n\t }\n\t\n\t // FORMATTING\n\t\n\t addFormatToken('D', ['DD', 2], 'Do', 'date');\n\t\n\t // ALIASES\n\t\n\t addUnitAlias('date', 'D');\n\t\n\t // PRIOROITY\n\t addUnitPriority('date', 9);\n\t\n\t // PARSING\n\t\n\t addRegexToken('D', match1to2);\n\t addRegexToken('DD', match1to2, match2);\n\t addRegexToken('Do', function (isStrict, locale) {\n\t return isStrict ? locale._ordinalParse : locale._ordinalParseLenient;\n\t });\n\t\n\t addParseToken(['D', 'DD'], DATE);\n\t addParseToken('Do', function (input, array) {\n\t array[DATE] = toInt(input.match(match1to2)[0], 10);\n\t });\n\t\n\t // MOMENTS\n\t\n\t var getSetDayOfMonth = makeGetSet('Date', true);\n\t\n\t // FORMATTING\n\t\n\t addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\t\n\t // ALIASES\n\t\n\t addUnitAlias('dayOfYear', 'DDD');\n\t\n\t // PRIORITY\n\t addUnitPriority('dayOfYear', 4);\n\t\n\t // PARSING\n\t\n\t addRegexToken('DDD', match1to3);\n\t addRegexToken('DDDD', match3);\n\t addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n\t config._dayOfYear = toInt(input);\n\t });\n\t\n\t // HELPERS\n\t\n\t // MOMENTS\n\t\n\t function getSetDayOfYear (input) {\n\t var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n\t return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n\t }\n\t\n\t // FORMATTING\n\t\n\t addFormatToken('m', ['mm', 2], 0, 'minute');\n\t\n\t // ALIASES\n\t\n\t addUnitAlias('minute', 'm');\n\t\n\t // PRIORITY\n\t\n\t addUnitPriority('minute', 14);\n\t\n\t // PARSING\n\t\n\t addRegexToken('m', match1to2);\n\t addRegexToken('mm', match1to2, match2);\n\t addParseToken(['m', 'mm'], MINUTE);\n\t\n\t // MOMENTS\n\t\n\t var getSetMinute = makeGetSet('Minutes', false);\n\t\n\t // FORMATTING\n\t\n\t addFormatToken('s', ['ss', 2], 0, 'second');\n\t\n\t // ALIASES\n\t\n\t addUnitAlias('second', 's');\n\t\n\t // PRIORITY\n\t\n\t addUnitPriority('second', 15);\n\t\n\t // PARSING\n\t\n\t addRegexToken('s', match1to2);\n\t addRegexToken('ss', match1to2, match2);\n\t addParseToken(['s', 'ss'], SECOND);\n\t\n\t // MOMENTS\n\t\n\t var getSetSecond = makeGetSet('Seconds', false);\n\t\n\t // FORMATTING\n\t\n\t addFormatToken('S', 0, 0, function () {\n\t return ~~(this.millisecond() / 100);\n\t });\n\t\n\t addFormatToken(0, ['SS', 2], 0, function () {\n\t return ~~(this.millisecond() / 10);\n\t });\n\t\n\t addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n\t addFormatToken(0, ['SSSS', 4], 0, function () {\n\t return this.millisecond() * 10;\n\t });\n\t addFormatToken(0, ['SSSSS', 5], 0, function () {\n\t return this.millisecond() * 100;\n\t });\n\t addFormatToken(0, ['SSSSSS', 6], 0, function () {\n\t return this.millisecond() * 1000;\n\t });\n\t addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n\t return this.millisecond() * 10000;\n\t });\n\t addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n\t return this.millisecond() * 100000;\n\t });\n\t addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n\t return this.millisecond() * 1000000;\n\t });\n\t\n\t\n\t // ALIASES\n\t\n\t addUnitAlias('millisecond', 'ms');\n\t\n\t // PRIORITY\n\t\n\t addUnitPriority('millisecond', 16);\n\t\n\t // PARSING\n\t\n\t addRegexToken('S', match1to3, match1);\n\t addRegexToken('SS', match1to3, match2);\n\t addRegexToken('SSS', match1to3, match3);\n\t\n\t var token;\n\t for (token = 'SSSS'; token.length <= 9; token += 'S') {\n\t addRegexToken(token, matchUnsigned);\n\t }\n\t\n\t function parseMs(input, array) {\n\t array[MILLISECOND] = toInt(('0.' + input) * 1000);\n\t }\n\t\n\t for (token = 'S'; token.length <= 9; token += 'S') {\n\t addParseToken(token, parseMs);\n\t }\n\t // MOMENTS\n\t\n\t var getSetMillisecond = makeGetSet('Milliseconds', false);\n\t\n\t // FORMATTING\n\t\n\t addFormatToken('z', 0, 0, 'zoneAbbr');\n\t addFormatToken('zz', 0, 0, 'zoneName');\n\t\n\t // MOMENTS\n\t\n\t function getZoneAbbr () {\n\t return this._isUTC ? 'UTC' : '';\n\t }\n\t\n\t function getZoneName () {\n\t return this._isUTC ? 'Coordinated Universal Time' : '';\n\t }\n\t\n\t var momentPrototype__proto = Moment.prototype;\n\t\n\t momentPrototype__proto.add = add_subtract__add;\n\t momentPrototype__proto.calendar = moment_calendar__calendar;\n\t momentPrototype__proto.clone = clone;\n\t momentPrototype__proto.diff = diff;\n\t momentPrototype__proto.endOf = endOf;\n\t momentPrototype__proto.format = format;\n\t momentPrototype__proto.from = from;\n\t momentPrototype__proto.fromNow = fromNow;\n\t momentPrototype__proto.to = to;\n\t momentPrototype__proto.toNow = toNow;\n\t momentPrototype__proto.get = stringGet;\n\t momentPrototype__proto.invalidAt = invalidAt;\n\t momentPrototype__proto.isAfter = isAfter;\n\t momentPrototype__proto.isBefore = isBefore;\n\t momentPrototype__proto.isBetween = isBetween;\n\t momentPrototype__proto.isSame = isSame;\n\t momentPrototype__proto.isSameOrAfter = isSameOrAfter;\n\t momentPrototype__proto.isSameOrBefore = isSameOrBefore;\n\t momentPrototype__proto.isValid = moment_valid__isValid;\n\t momentPrototype__proto.lang = lang;\n\t momentPrototype__proto.locale = locale;\n\t momentPrototype__proto.localeData = localeData;\n\t momentPrototype__proto.max = prototypeMax;\n\t momentPrototype__proto.min = prototypeMin;\n\t momentPrototype__proto.parsingFlags = parsingFlags;\n\t momentPrototype__proto.set = stringSet;\n\t momentPrototype__proto.startOf = startOf;\n\t momentPrototype__proto.subtract = add_subtract__subtract;\n\t momentPrototype__proto.toArray = toArray;\n\t momentPrototype__proto.toObject = toObject;\n\t momentPrototype__proto.toDate = toDate;\n\t momentPrototype__proto.toISOString = moment_format__toISOString;\n\t momentPrototype__proto.toJSON = toJSON;\n\t momentPrototype__proto.toString = toString;\n\t momentPrototype__proto.unix = unix;\n\t momentPrototype__proto.valueOf = to_type__valueOf;\n\t momentPrototype__proto.creationData = creationData;\n\t\n\t // Year\n\t momentPrototype__proto.year = getSetYear;\n\t momentPrototype__proto.isLeapYear = getIsLeapYear;\n\t\n\t // Week Year\n\t momentPrototype__proto.weekYear = getSetWeekYear;\n\t momentPrototype__proto.isoWeekYear = getSetISOWeekYear;\n\t\n\t // Quarter\n\t momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter;\n\t\n\t // Month\n\t momentPrototype__proto.month = getSetMonth;\n\t momentPrototype__proto.daysInMonth = getDaysInMonth;\n\t\n\t // Week\n\t momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek;\n\t momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek;\n\t momentPrototype__proto.weeksInYear = getWeeksInYear;\n\t momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear;\n\t\n\t // Day\n\t momentPrototype__proto.date = getSetDayOfMonth;\n\t momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek;\n\t momentPrototype__proto.weekday = getSetLocaleDayOfWeek;\n\t momentPrototype__proto.isoWeekday = getSetISODayOfWeek;\n\t momentPrototype__proto.dayOfYear = getSetDayOfYear;\n\t\n\t // Hour\n\t momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour;\n\t\n\t // Minute\n\t momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute;\n\t\n\t // Second\n\t momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond;\n\t\n\t // Millisecond\n\t momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond;\n\t\n\t // Offset\n\t momentPrototype__proto.utcOffset = getSetOffset;\n\t momentPrototype__proto.utc = setOffsetToUTC;\n\t momentPrototype__proto.local = setOffsetToLocal;\n\t momentPrototype__proto.parseZone = setOffsetToParsedOffset;\n\t momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset;\n\t momentPrototype__proto.isDST = isDaylightSavingTime;\n\t momentPrototype__proto.isLocal = isLocal;\n\t momentPrototype__proto.isUtcOffset = isUtcOffset;\n\t momentPrototype__proto.isUtc = isUtc;\n\t momentPrototype__proto.isUTC = isUtc;\n\t\n\t // Timezone\n\t momentPrototype__proto.zoneAbbr = getZoneAbbr;\n\t momentPrototype__proto.zoneName = getZoneName;\n\t\n\t // Deprecations\n\t momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n\t momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n\t momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n\t momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n\t momentPrototype__proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\t\n\t var momentPrototype = momentPrototype__proto;\n\t\n\t function moment__createUnix (input) {\n\t return local__createLocal(input * 1000);\n\t }\n\t\n\t function moment__createInZone () {\n\t return local__createLocal.apply(null, arguments).parseZone();\n\t }\n\t\n\t function preParsePostFormat (string) {\n\t return string;\n\t }\n\t\n\t var prototype__proto = Locale.prototype;\n\t\n\t prototype__proto.calendar = locale_calendar__calendar;\n\t prototype__proto.longDateFormat = longDateFormat;\n\t prototype__proto.invalidDate = invalidDate;\n\t prototype__proto.ordinal = ordinal;\n\t prototype__proto.preparse = preParsePostFormat;\n\t prototype__proto.postformat = preParsePostFormat;\n\t prototype__proto.relativeTime = relative__relativeTime;\n\t prototype__proto.pastFuture = pastFuture;\n\t prototype__proto.set = locale_set__set;\n\t\n\t // Month\n\t prototype__proto.months = localeMonths;\n\t prototype__proto.monthsShort = localeMonthsShort;\n\t prototype__proto.monthsParse = localeMonthsParse;\n\t prototype__proto.monthsRegex = monthsRegex;\n\t prototype__proto.monthsShortRegex = monthsShortRegex;\n\t\n\t // Week\n\t prototype__proto.week = localeWeek;\n\t prototype__proto.firstDayOfYear = localeFirstDayOfYear;\n\t prototype__proto.firstDayOfWeek = localeFirstDayOfWeek;\n\t\n\t // Day of Week\n\t prototype__proto.weekdays = localeWeekdays;\n\t prototype__proto.weekdaysMin = localeWeekdaysMin;\n\t prototype__proto.weekdaysShort = localeWeekdaysShort;\n\t prototype__proto.weekdaysParse = localeWeekdaysParse;\n\t\n\t prototype__proto.weekdaysRegex = weekdaysRegex;\n\t prototype__proto.weekdaysShortRegex = weekdaysShortRegex;\n\t prototype__proto.weekdaysMinRegex = weekdaysMinRegex;\n\t\n\t // Hours\n\t prototype__proto.isPM = localeIsPM;\n\t prototype__proto.meridiem = localeMeridiem;\n\t\n\t function lists__get (format, index, field, setter) {\n\t var locale = locale_locales__getLocale();\n\t var utc = create_utc__createUTC().set(setter, index);\n\t return locale[field](utc, format);\n\t }\n\t\n\t function listMonthsImpl (format, index, field) {\n\t if (typeof format === 'number') {\n\t index = format;\n\t format = undefined;\n\t }\n\t\n\t format = format || '';\n\t\n\t if (index != null) {\n\t return lists__get(format, index, field, 'month');\n\t }\n\t\n\t var i;\n\t var out = [];\n\t for (i = 0; i < 12; i++) {\n\t out[i] = lists__get(format, i, field, 'month');\n\t }\n\t return out;\n\t }\n\t\n\t // ()\n\t // (5)\n\t // (fmt, 5)\n\t // (fmt)\n\t // (true)\n\t // (true, 5)\n\t // (true, fmt, 5)\n\t // (true, fmt)\n\t function listWeekdaysImpl (localeSorted, format, index, field) {\n\t if (typeof localeSorted === 'boolean') {\n\t if (typeof format === 'number') {\n\t index = format;\n\t format = undefined;\n\t }\n\t\n\t format = format || '';\n\t } else {\n\t format = localeSorted;\n\t index = format;\n\t localeSorted = false;\n\t\n\t if (typeof format === 'number') {\n\t index = format;\n\t format = undefined;\n\t }\n\t\n\t format = format || '';\n\t }\n\t\n\t var locale = locale_locales__getLocale(),\n\t shift = localeSorted ? locale._week.dow : 0;\n\t\n\t if (index != null) {\n\t return lists__get(format, (index + shift) % 7, field, 'day');\n\t }\n\t\n\t var i;\n\t var out = [];\n\t for (i = 0; i < 7; i++) {\n\t out[i] = lists__get(format, (i + shift) % 7, field, 'day');\n\t }\n\t return out;\n\t }\n\t\n\t function lists__listMonths (format, index) {\n\t return listMonthsImpl(format, index, 'months');\n\t }\n\t\n\t function lists__listMonthsShort (format, index) {\n\t return listMonthsImpl(format, index, 'monthsShort');\n\t }\n\t\n\t function lists__listWeekdays (localeSorted, format, index) {\n\t return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n\t }\n\t\n\t function lists__listWeekdaysShort (localeSorted, format, index) {\n\t return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n\t }\n\t\n\t function lists__listWeekdaysMin (localeSorted, format, index) {\n\t return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n\t }\n\t\n\t locale_locales__getSetGlobalLocale('en', {\n\t ordinalParse: /\\d{1,2}(th|st|nd|rd)/,\n\t ordinal : function (number) {\n\t var b = number % 10,\n\t output = (toInt(number % 100 / 10) === 1) ? 'th' :\n\t (b === 1) ? 'st' :\n\t (b === 2) ? 'nd' :\n\t (b === 3) ? 'rd' : 'th';\n\t return number + output;\n\t }\n\t });\n\t\n\t // Side effect imports\n\t utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale);\n\t utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale);\n\t\n\t var mathAbs = Math.abs;\n\t\n\t function duration_abs__abs () {\n\t var data = this._data;\n\t\n\t this._milliseconds = mathAbs(this._milliseconds);\n\t this._days = mathAbs(this._days);\n\t this._months = mathAbs(this._months);\n\t\n\t data.milliseconds = mathAbs(data.milliseconds);\n\t data.seconds = mathAbs(data.seconds);\n\t data.minutes = mathAbs(data.minutes);\n\t data.hours = mathAbs(data.hours);\n\t data.months = mathAbs(data.months);\n\t data.years = mathAbs(data.years);\n\t\n\t return this;\n\t }\n\t\n\t function duration_add_subtract__addSubtract (duration, input, value, direction) {\n\t var other = create__createDuration(input, value);\n\t\n\t duration._milliseconds += direction * other._milliseconds;\n\t duration._days += direction * other._days;\n\t duration._months += direction * other._months;\n\t\n\t return duration._bubble();\n\t }\n\t\n\t // supports only 2.0-style add(1, 's') or add(duration)\n\t function duration_add_subtract__add (input, value) {\n\t return duration_add_subtract__addSubtract(this, input, value, 1);\n\t }\n\t\n\t // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\t function duration_add_subtract__subtract (input, value) {\n\t return duration_add_subtract__addSubtract(this, input, value, -1);\n\t }\n\t\n\t function absCeil (number) {\n\t if (number < 0) {\n\t return Math.floor(number);\n\t } else {\n\t return Math.ceil(number);\n\t }\n\t }\n\t\n\t function bubble () {\n\t var milliseconds = this._milliseconds;\n\t var days = this._days;\n\t var months = this._months;\n\t var data = this._data;\n\t var seconds, minutes, hours, years, monthsFromDays;\n\t\n\t // if we have a mix of positive and negative values, bubble down first\n\t // check: https://github.com/moment/moment/issues/2166\n\t if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n\t (milliseconds <= 0 && days <= 0 && months <= 0))) {\n\t milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n\t days = 0;\n\t months = 0;\n\t }\n\t\n\t // The following code bubbles up values, see the tests for\n\t // examples of what that means.\n\t data.milliseconds = milliseconds % 1000;\n\t\n\t seconds = absFloor(milliseconds / 1000);\n\t data.seconds = seconds % 60;\n\t\n\t minutes = absFloor(seconds / 60);\n\t data.minutes = minutes % 60;\n\t\n\t hours = absFloor(minutes / 60);\n\t data.hours = hours % 24;\n\t\n\t days += absFloor(hours / 24);\n\t\n\t // convert days to months\n\t monthsFromDays = absFloor(daysToMonths(days));\n\t months += monthsFromDays;\n\t days -= absCeil(monthsToDays(monthsFromDays));\n\t\n\t // 12 months -> 1 year\n\t years = absFloor(months / 12);\n\t months %= 12;\n\t\n\t data.days = days;\n\t data.months = months;\n\t data.years = years;\n\t\n\t return this;\n\t }\n\t\n\t function daysToMonths (days) {\n\t // 400 years have 146097 days (taking into account leap year rules)\n\t // 400 years have 12 months === 4800\n\t return days * 4800 / 146097;\n\t }\n\t\n\t function monthsToDays (months) {\n\t // the reverse of daysToMonths\n\t return months * 146097 / 4800;\n\t }\n\t\n\t function as (units) {\n\t var days;\n\t var months;\n\t var milliseconds = this._milliseconds;\n\t\n\t units = normalizeUnits(units);\n\t\n\t if (units === 'month' || units === 'year') {\n\t days = this._days + milliseconds / 864e5;\n\t months = this._months + daysToMonths(days);\n\t return units === 'month' ? months : months / 12;\n\t } else {\n\t // handle milliseconds separately because of floating point math errors (issue #1867)\n\t days = this._days + Math.round(monthsToDays(this._months));\n\t switch (units) {\n\t case 'week' : return days / 7 + milliseconds / 6048e5;\n\t case 'day' : return days + milliseconds / 864e5;\n\t case 'hour' : return days * 24 + milliseconds / 36e5;\n\t case 'minute' : return days * 1440 + milliseconds / 6e4;\n\t case 'second' : return days * 86400 + milliseconds / 1000;\n\t // Math.floor prevents floating point math errors here\n\t case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n\t default: throw new Error('Unknown unit ' + units);\n\t }\n\t }\n\t }\n\t\n\t // TODO: Use this.as('ms')?\n\t function duration_as__valueOf () {\n\t return (\n\t this._milliseconds +\n\t this._days * 864e5 +\n\t (this._months % 12) * 2592e6 +\n\t toInt(this._months / 12) * 31536e6\n\t );\n\t }\n\t\n\t function makeAs (alias) {\n\t return function () {\n\t return this.as(alias);\n\t };\n\t }\n\t\n\t var asMilliseconds = makeAs('ms');\n\t var asSeconds = makeAs('s');\n\t var asMinutes = makeAs('m');\n\t var asHours = makeAs('h');\n\t var asDays = makeAs('d');\n\t var asWeeks = makeAs('w');\n\t var asMonths = makeAs('M');\n\t var asYears = makeAs('y');\n\t\n\t function duration_get__get (units) {\n\t units = normalizeUnits(units);\n\t return this[units + 's']();\n\t }\n\t\n\t function makeGetter(name) {\n\t return function () {\n\t return this._data[name];\n\t };\n\t }\n\t\n\t var milliseconds = makeGetter('milliseconds');\n\t var seconds = makeGetter('seconds');\n\t var minutes = makeGetter('minutes');\n\t var hours = makeGetter('hours');\n\t var days = makeGetter('days');\n\t var months = makeGetter('months');\n\t var years = makeGetter('years');\n\t\n\t function weeks () {\n\t return absFloor(this.days() / 7);\n\t }\n\t\n\t var round = Math.round;\n\t var thresholds = {\n\t s: 45, // seconds to minute\n\t m: 45, // minutes to hour\n\t h: 22, // hours to day\n\t d: 26, // days to month\n\t M: 11 // months to year\n\t };\n\t\n\t // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\t function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n\t return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n\t }\n\t\n\t function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) {\n\t var duration = create__createDuration(posNegDuration).abs();\n\t var seconds = round(duration.as('s'));\n\t var minutes = round(duration.as('m'));\n\t var hours = round(duration.as('h'));\n\t var days = round(duration.as('d'));\n\t var months = round(duration.as('M'));\n\t var years = round(duration.as('y'));\n\t\n\t var a = seconds < thresholds.s && ['s', seconds] ||\n\t minutes <= 1 && ['m'] ||\n\t minutes < thresholds.m && ['mm', minutes] ||\n\t hours <= 1 && ['h'] ||\n\t hours < thresholds.h && ['hh', hours] ||\n\t days <= 1 && ['d'] ||\n\t days < thresholds.d && ['dd', days] ||\n\t months <= 1 && ['M'] ||\n\t months < thresholds.M && ['MM', months] ||\n\t years <= 1 && ['y'] || ['yy', years];\n\t\n\t a[2] = withoutSuffix;\n\t a[3] = +posNegDuration > 0;\n\t a[4] = locale;\n\t return substituteTimeAgo.apply(null, a);\n\t }\n\t\n\t // This function allows you to set the rounding function for relative time strings\n\t function duration_humanize__getSetRelativeTimeRounding (roundingFunction) {\n\t if (roundingFunction === undefined) {\n\t return round;\n\t }\n\t if (typeof(roundingFunction) === 'function') {\n\t round = roundingFunction;\n\t return true;\n\t }\n\t return false;\n\t }\n\t\n\t // This function allows you to set a threshold for relative time strings\n\t function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) {\n\t if (thresholds[threshold] === undefined) {\n\t return false;\n\t }\n\t if (limit === undefined) {\n\t return thresholds[threshold];\n\t }\n\t thresholds[threshold] = limit;\n\t return true;\n\t }\n\t\n\t function humanize (withSuffix) {\n\t var locale = this.localeData();\n\t var output = duration_humanize__relativeTime(this, !withSuffix, locale);\n\t\n\t if (withSuffix) {\n\t output = locale.pastFuture(+this, output);\n\t }\n\t\n\t return locale.postformat(output);\n\t }\n\t\n\t var iso_string__abs = Math.abs;\n\t\n\t function iso_string__toISOString() {\n\t // for ISO strings we do not use the normal bubbling rules:\n\t // * milliseconds bubble up until they become hours\n\t // * days do not bubble at all\n\t // * months bubble up until they become years\n\t // This is because there is no context-free conversion between hours and days\n\t // (think of clock changes)\n\t // and also not between days and months (28-31 days per month)\n\t var seconds = iso_string__abs(this._milliseconds) / 1000;\n\t var days = iso_string__abs(this._days);\n\t var months = iso_string__abs(this._months);\n\t var minutes, hours, years;\n\t\n\t // 3600 seconds -> 60 minutes -> 1 hour\n\t minutes = absFloor(seconds / 60);\n\t hours = absFloor(minutes / 60);\n\t seconds %= 60;\n\t minutes %= 60;\n\t\n\t // 12 months -> 1 year\n\t years = absFloor(months / 12);\n\t months %= 12;\n\t\n\t\n\t // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\t var Y = years;\n\t var M = months;\n\t var D = days;\n\t var h = hours;\n\t var m = minutes;\n\t var s = seconds;\n\t var total = this.asSeconds();\n\t\n\t if (!total) {\n\t // this is the same as C#'s (Noda) and python (isodate)...\n\t // but not other JS (goog.date)\n\t return 'P0D';\n\t }\n\t\n\t return (total < 0 ? '-' : '') +\n\t 'P' +\n\t (Y ? Y + 'Y' : '') +\n\t (M ? M + 'M' : '') +\n\t (D ? D + 'D' : '') +\n\t ((h || m || s) ? 'T' : '') +\n\t (h ? h + 'H' : '') +\n\t (m ? m + 'M' : '') +\n\t (s ? s + 'S' : '');\n\t }\n\t\n\t var duration_prototype__proto = Duration.prototype;\n\t\n\t duration_prototype__proto.abs = duration_abs__abs;\n\t duration_prototype__proto.add = duration_add_subtract__add;\n\t duration_prototype__proto.subtract = duration_add_subtract__subtract;\n\t duration_prototype__proto.as = as;\n\t duration_prototype__proto.asMilliseconds = asMilliseconds;\n\t duration_prototype__proto.asSeconds = asSeconds;\n\t duration_prototype__proto.asMinutes = asMinutes;\n\t duration_prototype__proto.asHours = asHours;\n\t duration_prototype__proto.asDays = asDays;\n\t duration_prototype__proto.asWeeks = asWeeks;\n\t duration_prototype__proto.asMonths = asMonths;\n\t duration_prototype__proto.asYears = asYears;\n\t duration_prototype__proto.valueOf = duration_as__valueOf;\n\t duration_prototype__proto._bubble = bubble;\n\t duration_prototype__proto.get = duration_get__get;\n\t duration_prototype__proto.milliseconds = milliseconds;\n\t duration_prototype__proto.seconds = seconds;\n\t duration_prototype__proto.minutes = minutes;\n\t duration_prototype__proto.hours = hours;\n\t duration_prototype__proto.days = days;\n\t duration_prototype__proto.weeks = weeks;\n\t duration_prototype__proto.months = months;\n\t duration_prototype__proto.years = years;\n\t duration_prototype__proto.humanize = humanize;\n\t duration_prototype__proto.toISOString = iso_string__toISOString;\n\t duration_prototype__proto.toString = iso_string__toISOString;\n\t duration_prototype__proto.toJSON = iso_string__toISOString;\n\t duration_prototype__proto.locale = locale;\n\t duration_prototype__proto.localeData = localeData;\n\t\n\t // Deprecations\n\t duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString);\n\t duration_prototype__proto.lang = lang;\n\t\n\t // Side effect imports\n\t\n\t // FORMATTING\n\t\n\t addFormatToken('X', 0, 0, 'unix');\n\t addFormatToken('x', 0, 0, 'valueOf');\n\t\n\t // PARSING\n\t\n\t addRegexToken('x', matchSigned);\n\t addRegexToken('X', matchTimestamp);\n\t addParseToken('X', function (input, array, config) {\n\t config._d = new Date(parseFloat(input, 10) * 1000);\n\t });\n\t addParseToken('x', function (input, array, config) {\n\t config._d = new Date(toInt(input));\n\t });\n\t\n\t // Side effect imports\n\t\n\t\n\t utils_hooks__hooks.version = '2.14.1';\n\t\n\t setHookCallback(local__createLocal);\n\t\n\t utils_hooks__hooks.fn = momentPrototype;\n\t utils_hooks__hooks.min = min;\n\t utils_hooks__hooks.max = max;\n\t utils_hooks__hooks.now = now;\n\t utils_hooks__hooks.utc = create_utc__createUTC;\n\t utils_hooks__hooks.unix = moment__createUnix;\n\t utils_hooks__hooks.months = lists__listMonths;\n\t utils_hooks__hooks.isDate = isDate;\n\t utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale;\n\t utils_hooks__hooks.invalid = valid__createInvalid;\n\t utils_hooks__hooks.duration = create__createDuration;\n\t utils_hooks__hooks.isMoment = isMoment;\n\t utils_hooks__hooks.weekdays = lists__listWeekdays;\n\t utils_hooks__hooks.parseZone = moment__createInZone;\n\t utils_hooks__hooks.localeData = locale_locales__getLocale;\n\t utils_hooks__hooks.isDuration = isDuration;\n\t utils_hooks__hooks.monthsShort = lists__listMonthsShort;\n\t utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin;\n\t utils_hooks__hooks.defineLocale = defineLocale;\n\t utils_hooks__hooks.updateLocale = updateLocale;\n\t utils_hooks__hooks.locales = locale_locales__listLocales;\n\t utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort;\n\t utils_hooks__hooks.normalizeUnits = normalizeUnits;\n\t utils_hooks__hooks.relativeTimeRounding = duration_humanize__getSetRelativeTimeRounding;\n\t utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold;\n\t utils_hooks__hooks.calendarFormat = getCalendarFormat;\n\t utils_hooks__hooks.prototype = momentPrototype;\n\t\n\t var _moment = utils_hooks__hooks;\n\t\n\t return _moment;\n\t\n\t}));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(48)(module)))\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar freeGlobal = __webpack_require__(68);\n\t\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\t\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\t\n\tmodule.exports = root;\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\t\n\tmodule.exports = isArray;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\t\n\tmodule.exports = isObject;\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.mergeOptions = mergeOptions;\n\t\n\tvar _merge = __webpack_require__(338);\n\t\n\tvar _merge2 = _interopRequireDefault(_merge);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction mergeOptions(obj, src) {\n\t return (0, _merge2.default)(obj, src);\n\t}\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * @namespace Chart\n\t */\n\tvar Chart = __webpack_require__(212)();\n\t\n\t__webpack_require__(211)(Chart);\n\t__webpack_require__(207)(Chart);\n\t__webpack_require__(210)(Chart);\n\t__webpack_require__(206)(Chart);\n\t__webpack_require__(208)(Chart);\n\t__webpack_require__(209)(Chart);\n\t__webpack_require__(213)(Chart);\n\t__webpack_require__(217)(Chart);\n\t__webpack_require__(215)(Chart);\n\t__webpack_require__(216)(Chart);\n\t__webpack_require__(218)(Chart);\n\t__webpack_require__(214)(Chart);\n\t__webpack_require__(219)(Chart);\n\t\n\t__webpack_require__(220)(Chart);\n\t__webpack_require__(221)(Chart);\n\t__webpack_require__(222)(Chart);\n\t__webpack_require__(223)(Chart);\n\t\n\t__webpack_require__(226)(Chart);\n\t__webpack_require__(224)(Chart);\n\t__webpack_require__(225)(Chart);\n\t__webpack_require__(227)(Chart);\n\t__webpack_require__(228)(Chart);\n\t__webpack_require__(229)(Chart);\n\t\n\t// Controllers must be loaded after elements\n\t// See Chart.core.datasetController.dataElementType\n\t__webpack_require__(200)(Chart);\n\t__webpack_require__(201)(Chart);\n\t__webpack_require__(202)(Chart);\n\t__webpack_require__(203)(Chart);\n\t__webpack_require__(204)(Chart);\n\t__webpack_require__(205)(Chart);\n\t\n\t__webpack_require__(193)(Chart);\n\t__webpack_require__(194)(Chart);\n\t__webpack_require__(195)(Chart);\n\t__webpack_require__(196)(Chart);\n\t__webpack_require__(197)(Chart);\n\t__webpack_require__(198)(Chart);\n\t__webpack_require__(199)(Chart);\n\t\n\twindow.Chart = module.exports = Chart;\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar baseIsNative = __webpack_require__(254),\n\t getValue = __webpack_require__(288);\n\t\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\t\n\tmodule.exports = getNative;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/*!\n\t * Vue.js v1.0.26\n\t * (c) 2016 Evan You\n\t * Released under the MIT License.\n\t */\n\t'use strict';\n\t\n\tfunction set(obj, key, val) {\n\t if (hasOwn(obj, key)) {\n\t obj[key] = val;\n\t return;\n\t }\n\t if (obj._isVue) {\n\t set(obj._data, key, val);\n\t return;\n\t }\n\t var ob = obj.__ob__;\n\t if (!ob) {\n\t obj[key] = val;\n\t return;\n\t }\n\t ob.convert(key, val);\n\t ob.dep.notify();\n\t if (ob.vms) {\n\t var i = ob.vms.length;\n\t while (i--) {\n\t var vm = ob.vms[i];\n\t vm._proxy(key);\n\t vm._digest();\n\t }\n\t }\n\t return val;\n\t}\n\t\n\t/**\n\t * Delete a property and trigger change if necessary.\n\t *\n\t * @param {Object} obj\n\t * @param {String} key\n\t */\n\t\n\tfunction del(obj, key) {\n\t if (!hasOwn(obj, key)) {\n\t return;\n\t }\n\t delete obj[key];\n\t var ob = obj.__ob__;\n\t if (!ob) {\n\t if (obj._isVue) {\n\t delete obj._data[key];\n\t obj._digest();\n\t }\n\t return;\n\t }\n\t ob.dep.notify();\n\t if (ob.vms) {\n\t var i = ob.vms.length;\n\t while (i--) {\n\t var vm = ob.vms[i];\n\t vm._unproxy(key);\n\t vm._digest();\n\t }\n\t }\n\t}\n\t\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\t/**\n\t * Check whether the object has the property.\n\t *\n\t * @param {Object} obj\n\t * @param {String} key\n\t * @return {Boolean}\n\t */\n\t\n\tfunction hasOwn(obj, key) {\n\t return hasOwnProperty.call(obj, key);\n\t}\n\t\n\t/**\n\t * Check if an expression is a literal value.\n\t *\n\t * @param {String} exp\n\t * @return {Boolean}\n\t */\n\t\n\tvar literalValueRE = /^\\s?(true|false|-?[\\d\\.]+|'[^']*'|\"[^\"]*\")\\s?$/;\n\t\n\tfunction isLiteral(exp) {\n\t return literalValueRE.test(exp);\n\t}\n\t\n\t/**\n\t * Check if a string starts with $ or _\n\t *\n\t * @param {String} str\n\t * @return {Boolean}\n\t */\n\t\n\tfunction isReserved(str) {\n\t var c = (str + '').charCodeAt(0);\n\t return c === 0x24 || c === 0x5F;\n\t}\n\t\n\t/**\n\t * Guard text output, make sure undefined outputs\n\t * empty string\n\t *\n\t * @param {*} value\n\t * @return {String}\n\t */\n\t\n\tfunction _toString(value) {\n\t return value == null ? '' : value.toString();\n\t}\n\t\n\t/**\n\t * Check and convert possible numeric strings to numbers\n\t * before setting back to data\n\t *\n\t * @param {*} value\n\t * @return {*|Number}\n\t */\n\t\n\tfunction toNumber(value) {\n\t if (typeof value !== 'string') {\n\t return value;\n\t } else {\n\t var parsed = Number(value);\n\t return isNaN(parsed) ? value : parsed;\n\t }\n\t}\n\t\n\t/**\n\t * Convert string boolean literals into real booleans.\n\t *\n\t * @param {*} value\n\t * @return {*|Boolean}\n\t */\n\t\n\tfunction toBoolean(value) {\n\t return value === 'true' ? true : value === 'false' ? false : value;\n\t}\n\t\n\t/**\n\t * Strip quotes from a string\n\t *\n\t * @param {String} str\n\t * @return {String | false}\n\t */\n\t\n\tfunction stripQuotes(str) {\n\t var a = str.charCodeAt(0);\n\t var b = str.charCodeAt(str.length - 1);\n\t return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\n\t}\n\t\n\t/**\n\t * Camelize a hyphen-delmited string.\n\t *\n\t * @param {String} str\n\t * @return {String}\n\t */\n\t\n\tvar camelizeRE = /-(\\w)/g;\n\t\n\tfunction camelize(str) {\n\t return str.replace(camelizeRE, toUpper);\n\t}\n\t\n\tfunction toUpper(_, c) {\n\t return c ? c.toUpperCase() : '';\n\t}\n\t\n\t/**\n\t * Hyphenate a camelCase string.\n\t *\n\t * @param {String} str\n\t * @return {String}\n\t */\n\t\n\tvar hyphenateRE = /([a-z\\d])([A-Z])/g;\n\t\n\tfunction hyphenate(str) {\n\t return str.replace(hyphenateRE, '$1-$2').toLowerCase();\n\t}\n\t\n\t/**\n\t * Converts hyphen/underscore/slash delimitered names into\n\t * camelized classNames.\n\t *\n\t * e.g. my-component => MyComponent\n\t * some_else => SomeElse\n\t * some/comp => SomeComp\n\t *\n\t * @param {String} str\n\t * @return {String}\n\t */\n\t\n\tvar classifyRE = /(?:^|[-_\\/])(\\w)/g;\n\t\n\tfunction classify(str) {\n\t return str.replace(classifyRE, toUpper);\n\t}\n\t\n\t/**\n\t * Simple bind, faster than native\n\t *\n\t * @param {Function} fn\n\t * @param {Object} ctx\n\t * @return {Function}\n\t */\n\t\n\tfunction bind(fn, ctx) {\n\t return function (a) {\n\t var l = arguments.length;\n\t return l ? l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a) : fn.call(ctx);\n\t };\n\t}\n\t\n\t/**\n\t * Convert an Array-like object to a real Array.\n\t *\n\t * @param {Array-like} list\n\t * @param {Number} [start] - start index\n\t * @return {Array}\n\t */\n\t\n\tfunction toArray(list, start) {\n\t start = start || 0;\n\t var i = list.length - start;\n\t var ret = new Array(i);\n\t while (i--) {\n\t ret[i] = list[i + start];\n\t }\n\t return ret;\n\t}\n\t\n\t/**\n\t * Mix properties into target object.\n\t *\n\t * @param {Object} to\n\t * @param {Object} from\n\t */\n\t\n\tfunction extend(to, from) {\n\t var keys = Object.keys(from);\n\t var i = keys.length;\n\t while (i--) {\n\t to[keys[i]] = from[keys[i]];\n\t }\n\t return to;\n\t}\n\t\n\t/**\n\t * Quick object check - this is primarily used to tell\n\t * Objects from primitive values when we know the value\n\t * is a JSON-compliant type.\n\t *\n\t * @param {*} obj\n\t * @return {Boolean}\n\t */\n\t\n\tfunction isObject(obj) {\n\t return obj !== null && typeof obj === 'object';\n\t}\n\t\n\t/**\n\t * Strict object type check. Only returns true\n\t * for plain JavaScript objects.\n\t *\n\t * @param {*} obj\n\t * @return {Boolean}\n\t */\n\t\n\tvar toString = Object.prototype.toString;\n\tvar OBJECT_STRING = '[object Object]';\n\t\n\tfunction isPlainObject(obj) {\n\t return toString.call(obj) === OBJECT_STRING;\n\t}\n\t\n\t/**\n\t * Array type check.\n\t *\n\t * @param {*} obj\n\t * @return {Boolean}\n\t */\n\t\n\tvar isArray = Array.isArray;\n\t\n\t/**\n\t * Define a property.\n\t *\n\t * @param {Object} obj\n\t * @param {String} key\n\t * @param {*} val\n\t * @param {Boolean} [enumerable]\n\t */\n\t\n\tfunction def(obj, key, val, enumerable) {\n\t Object.defineProperty(obj, key, {\n\t value: val,\n\t enumerable: !!enumerable,\n\t writable: true,\n\t configurable: true\n\t });\n\t}\n\t\n\t/**\n\t * Debounce a function so it only gets called after the\n\t * input stops arriving after the given wait period.\n\t *\n\t * @param {Function} func\n\t * @param {Number} wait\n\t * @return {Function} - the debounced function\n\t */\n\t\n\tfunction _debounce(func, wait) {\n\t var timeout, args, context, timestamp, result;\n\t var later = function later() {\n\t var last = Date.now() - timestamp;\n\t if (last < wait && last >= 0) {\n\t timeout = setTimeout(later, wait - last);\n\t } else {\n\t timeout = null;\n\t result = func.apply(context, args);\n\t if (!timeout) context = args = null;\n\t }\n\t };\n\t return function () {\n\t context = this;\n\t args = arguments;\n\t timestamp = Date.now();\n\t if (!timeout) {\n\t timeout = setTimeout(later, wait);\n\t }\n\t return result;\n\t };\n\t}\n\t\n\t/**\n\t * Manual indexOf because it's slightly faster than\n\t * native.\n\t *\n\t * @param {Array} arr\n\t * @param {*} obj\n\t */\n\t\n\tfunction indexOf(arr, obj) {\n\t var i = arr.length;\n\t while (i--) {\n\t if (arr[i] === obj) return i;\n\t }\n\t return -1;\n\t}\n\t\n\t/**\n\t * Make a cancellable version of an async callback.\n\t *\n\t * @param {Function} fn\n\t * @return {Function}\n\t */\n\t\n\tfunction cancellable(fn) {\n\t var cb = function cb() {\n\t if (!cb.cancelled) {\n\t return fn.apply(this, arguments);\n\t }\n\t };\n\t cb.cancel = function () {\n\t cb.cancelled = true;\n\t };\n\t return cb;\n\t}\n\t\n\t/**\n\t * Check if two values are loosely equal - that is,\n\t * if they are plain objects, do they have the same shape?\n\t *\n\t * @param {*} a\n\t * @param {*} b\n\t * @return {Boolean}\n\t */\n\t\n\tfunction looseEqual(a, b) {\n\t /* eslint-disable eqeqeq */\n\t return a == b || (isObject(a) && isObject(b) ? JSON.stringify(a) === JSON.stringify(b) : false);\n\t /* eslint-enable eqeqeq */\n\t}\n\t\n\tvar hasProto = ('__proto__' in {});\n\t\n\t// Browser environment sniffing\n\tvar inBrowser = typeof window !== 'undefined' && Object.prototype.toString.call(window) !== '[object Object]';\n\t\n\t// detect devtools\n\tvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\t\n\t// UA sniffing for working around browser-specific quirks\n\tvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\n\tvar isIE = UA && UA.indexOf('trident') > 0;\n\tvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\n\tvar isAndroid = UA && UA.indexOf('android') > 0;\n\tvar isIos = UA && /(iphone|ipad|ipod|ios)/i.test(UA);\n\tvar iosVersionMatch = isIos && UA.match(/os ([\\d_]+)/);\n\tvar iosVersion = iosVersionMatch && iosVersionMatch[1].split('_');\n\t\n\t// detecting iOS UIWebView by indexedDB\n\tvar hasMutationObserverBug = iosVersion && Number(iosVersion[0]) >= 9 && Number(iosVersion[1]) >= 3 && !window.indexedDB;\n\t\n\tvar transitionProp = undefined;\n\tvar transitionEndEvent = undefined;\n\tvar animationProp = undefined;\n\tvar animationEndEvent = undefined;\n\t\n\t// Transition property/event sniffing\n\tif (inBrowser && !isIE9) {\n\t var isWebkitTrans = window.ontransitionend === undefined && window.onwebkittransitionend !== undefined;\n\t var isWebkitAnim = window.onanimationend === undefined && window.onwebkitanimationend !== undefined;\n\t transitionProp = isWebkitTrans ? 'WebkitTransition' : 'transition';\n\t transitionEndEvent = isWebkitTrans ? 'webkitTransitionEnd' : 'transitionend';\n\t animationProp = isWebkitAnim ? 'WebkitAnimation' : 'animation';\n\t animationEndEvent = isWebkitAnim ? 'webkitAnimationEnd' : 'animationend';\n\t}\n\t\n\t/**\n\t * Defer a task to execute it asynchronously. Ideally this\n\t * should be executed as a microtask, so we leverage\n\t * MutationObserver if it's available, and fallback to\n\t * setTimeout(0).\n\t *\n\t * @param {Function} cb\n\t * @param {Object} ctx\n\t */\n\t\n\tvar nextTick = (function () {\n\t var callbacks = [];\n\t var pending = false;\n\t var timerFunc;\n\t function nextTickHandler() {\n\t pending = false;\n\t var copies = callbacks.slice(0);\n\t callbacks = [];\n\t for (var i = 0; i < copies.length; i++) {\n\t copies[i]();\n\t }\n\t }\n\t\n\t /* istanbul ignore if */\n\t if (typeof MutationObserver !== 'undefined' && !hasMutationObserverBug) {\n\t var counter = 1;\n\t var observer = new MutationObserver(nextTickHandler);\n\t var textNode = document.createTextNode(counter);\n\t observer.observe(textNode, {\n\t characterData: true\n\t });\n\t timerFunc = function () {\n\t counter = (counter + 1) % 2;\n\t textNode.data = counter;\n\t };\n\t } else {\n\t // webpack attempts to inject a shim for setImmediate\n\t // if it is used as a global, so we have to work around that to\n\t // avoid bundling unnecessary code.\n\t var context = inBrowser ? window : typeof global !== 'undefined' ? global : {};\n\t timerFunc = context.setImmediate || setTimeout;\n\t }\n\t return function (cb, ctx) {\n\t var func = ctx ? function () {\n\t cb.call(ctx);\n\t } : cb;\n\t callbacks.push(func);\n\t if (pending) return;\n\t pending = true;\n\t timerFunc(nextTickHandler, 0);\n\t };\n\t})();\n\t\n\tvar _Set = undefined;\n\t/* istanbul ignore if */\n\tif (typeof Set !== 'undefined' && Set.toString().match(/native code/)) {\n\t // use native Set when available.\n\t _Set = Set;\n\t} else {\n\t // a non-standard Set polyfill that only works with primitive keys.\n\t _Set = function () {\n\t this.set = Object.create(null);\n\t };\n\t _Set.prototype.has = function (key) {\n\t return this.set[key] !== undefined;\n\t };\n\t _Set.prototype.add = function (key) {\n\t this.set[key] = 1;\n\t };\n\t _Set.prototype.clear = function () {\n\t this.set = Object.create(null);\n\t };\n\t}\n\t\n\tfunction Cache(limit) {\n\t this.size = 0;\n\t this.limit = limit;\n\t this.head = this.tail = undefined;\n\t this._keymap = Object.create(null);\n\t}\n\t\n\tvar p = Cache.prototype;\n\t\n\t/**\n\t * Put into the cache associated with .\n\t * Returns the entry which was removed to make room for\n\t * the new entry. Otherwise undefined is returned.\n\t * (i.e. if there was enough room already).\n\t *\n\t * @param {String} key\n\t * @param {*} value\n\t * @return {Entry|undefined}\n\t */\n\t\n\tp.put = function (key, value) {\n\t var removed;\n\t\n\t var entry = this.get(key, true);\n\t if (!entry) {\n\t if (this.size === this.limit) {\n\t removed = this.shift();\n\t }\n\t entry = {\n\t key: key\n\t };\n\t this._keymap[key] = entry;\n\t if (this.tail) {\n\t this.tail.newer = entry;\n\t entry.older = this.tail;\n\t } else {\n\t this.head = entry;\n\t }\n\t this.tail = entry;\n\t this.size++;\n\t }\n\t entry.value = value;\n\t\n\t return removed;\n\t};\n\t\n\t/**\n\t * Purge the least recently used (oldest) entry from the\n\t * cache. Returns the removed entry or undefined if the\n\t * cache was empty.\n\t */\n\t\n\tp.shift = function () {\n\t var entry = this.head;\n\t if (entry) {\n\t this.head = this.head.newer;\n\t this.head.older = undefined;\n\t entry.newer = entry.older = undefined;\n\t this._keymap[entry.key] = undefined;\n\t this.size--;\n\t }\n\t return entry;\n\t};\n\t\n\t/**\n\t * Get and register recent use of . Returns the value\n\t * associated with or undefined if not in cache.\n\t *\n\t * @param {String} key\n\t * @param {Boolean} returnEntry\n\t * @return {Entry|*}\n\t */\n\t\n\tp.get = function (key, returnEntry) {\n\t var entry = this._keymap[key];\n\t if (entry === undefined) return;\n\t if (entry === this.tail) {\n\t return returnEntry ? entry : entry.value;\n\t }\n\t // HEAD--------------TAIL\n\t // <.older .newer>\n\t // <--- add direction --\n\t // A B C E\n\t if (entry.newer) {\n\t if (entry === this.head) {\n\t this.head = entry.newer;\n\t }\n\t entry.newer.older = entry.older; // C <-- E.\n\t }\n\t if (entry.older) {\n\t entry.older.newer = entry.newer; // C. --> E\n\t }\n\t entry.newer = undefined; // D --x\n\t entry.older = this.tail; // D. --> E\n\t if (this.tail) {\n\t this.tail.newer = entry; // E. <-- D\n\t }\n\t this.tail = entry;\n\t return returnEntry ? entry : entry.value;\n\t};\n\t\n\tvar cache$1 = new Cache(1000);\n\tvar filterTokenRE = /[^\\s'\"]+|'[^']*'|\"[^\"]*\"/g;\n\tvar reservedArgRE = /^in$|^-?\\d+/;\n\t\n\t/**\n\t * Parser state\n\t */\n\t\n\tvar str;\n\tvar dir;\n\tvar c;\n\tvar prev;\n\tvar i;\n\tvar l;\n\tvar lastFilterIndex;\n\tvar inSingle;\n\tvar inDouble;\n\tvar curly;\n\tvar square;\n\tvar paren;\n\t/**\n\t * Push a filter to the current directive object\n\t */\n\t\n\tfunction pushFilter() {\n\t var exp = str.slice(lastFilterIndex, i).trim();\n\t var filter;\n\t if (exp) {\n\t filter = {};\n\t var tokens = exp.match(filterTokenRE);\n\t filter.name = tokens[0];\n\t if (tokens.length > 1) {\n\t filter.args = tokens.slice(1).map(processFilterArg);\n\t }\n\t }\n\t if (filter) {\n\t (dir.filters = dir.filters || []).push(filter);\n\t }\n\t lastFilterIndex = i + 1;\n\t}\n\t\n\t/**\n\t * Check if an argument is dynamic and strip quotes.\n\t *\n\t * @param {String} arg\n\t * @return {Object}\n\t */\n\t\n\tfunction processFilterArg(arg) {\n\t if (reservedArgRE.test(arg)) {\n\t return {\n\t value: toNumber(arg),\n\t dynamic: false\n\t };\n\t } else {\n\t var stripped = stripQuotes(arg);\n\t var dynamic = stripped === arg;\n\t return {\n\t value: dynamic ? arg : stripped,\n\t dynamic: dynamic\n\t };\n\t }\n\t}\n\t\n\t/**\n\t * Parse a directive value and extract the expression\n\t * and its filters into a descriptor.\n\t *\n\t * Example:\n\t *\n\t * \"a + 1 | uppercase\" will yield:\n\t * {\n\t * expression: 'a + 1',\n\t * filters: [\n\t * { name: 'uppercase', args: null }\n\t * ]\n\t * }\n\t *\n\t * @param {String} s\n\t * @return {Object}\n\t */\n\t\n\tfunction parseDirective(s) {\n\t var hit = cache$1.get(s);\n\t if (hit) {\n\t return hit;\n\t }\n\t\n\t // reset parser state\n\t str = s;\n\t inSingle = inDouble = false;\n\t curly = square = paren = 0;\n\t lastFilterIndex = 0;\n\t dir = {};\n\t\n\t for (i = 0, l = str.length; i < l; i++) {\n\t prev = c;\n\t c = str.charCodeAt(i);\n\t if (inSingle) {\n\t // check single quote\n\t if (c === 0x27 && prev !== 0x5C) inSingle = !inSingle;\n\t } else if (inDouble) {\n\t // check double quote\n\t if (c === 0x22 && prev !== 0x5C) inDouble = !inDouble;\n\t } else if (c === 0x7C && // pipe\n\t str.charCodeAt(i + 1) !== 0x7C && str.charCodeAt(i - 1) !== 0x7C) {\n\t if (dir.expression == null) {\n\t // first filter, end of expression\n\t lastFilterIndex = i + 1;\n\t dir.expression = str.slice(0, i).trim();\n\t } else {\n\t // already has filter\n\t pushFilter();\n\t }\n\t } else {\n\t switch (c) {\n\t case 0x22:\n\t inDouble = true;break; // \"\n\t case 0x27:\n\t inSingle = true;break; // '\n\t case 0x28:\n\t paren++;break; // (\n\t case 0x29:\n\t paren--;break; // )\n\t case 0x5B:\n\t square++;break; // [\n\t case 0x5D:\n\t square--;break; // ]\n\t case 0x7B:\n\t curly++;break; // {\n\t case 0x7D:\n\t curly--;break; // }\n\t }\n\t }\n\t }\n\t\n\t if (dir.expression == null) {\n\t dir.expression = str.slice(0, i).trim();\n\t } else if (lastFilterIndex !== 0) {\n\t pushFilter();\n\t }\n\t\n\t cache$1.put(s, dir);\n\t return dir;\n\t}\n\t\n\tvar directive = Object.freeze({\n\t parseDirective: parseDirective\n\t});\n\t\n\tvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n\tvar cache = undefined;\n\tvar tagRE = undefined;\n\tvar htmlRE = undefined;\n\t/**\n\t * Escape a string so it can be used in a RegExp\n\t * constructor.\n\t *\n\t * @param {String} str\n\t */\n\t\n\tfunction escapeRegex(str) {\n\t return str.replace(regexEscapeRE, '\\\\$&');\n\t}\n\t\n\tfunction compileRegex() {\n\t var open = escapeRegex(config.delimiters[0]);\n\t var close = escapeRegex(config.delimiters[1]);\n\t var unsafeOpen = escapeRegex(config.unsafeDelimiters[0]);\n\t var unsafeClose = escapeRegex(config.unsafeDelimiters[1]);\n\t tagRE = new RegExp(unsafeOpen + '((?:.|\\\\n)+?)' + unsafeClose + '|' + open + '((?:.|\\\\n)+?)' + close, 'g');\n\t htmlRE = new RegExp('^' + unsafeOpen + '((?:.|\\\\n)+?)' + unsafeClose + '$');\n\t // reset cache\n\t cache = new Cache(1000);\n\t}\n\t\n\t/**\n\t * Parse a template text string into an array of tokens.\n\t *\n\t * @param {String} text\n\t * @return {Array | null}\n\t * - {String} type\n\t * - {String} value\n\t * - {Boolean} [html]\n\t * - {Boolean} [oneTime]\n\t */\n\t\n\tfunction parseText(text) {\n\t if (!cache) {\n\t compileRegex();\n\t }\n\t var hit = cache.get(text);\n\t if (hit) {\n\t return hit;\n\t }\n\t if (!tagRE.test(text)) {\n\t return null;\n\t }\n\t var tokens = [];\n\t var lastIndex = tagRE.lastIndex = 0;\n\t var match, index, html, value, first, oneTime;\n\t /* eslint-disable no-cond-assign */\n\t while (match = tagRE.exec(text)) {\n\t /* eslint-enable no-cond-assign */\n\t index = match.index;\n\t // push text token\n\t if (index > lastIndex) {\n\t tokens.push({\n\t value: text.slice(lastIndex, index)\n\t });\n\t }\n\t // tag token\n\t html = htmlRE.test(match[0]);\n\t value = html ? match[1] : match[2];\n\t first = value.charCodeAt(0);\n\t oneTime = first === 42; // *\n\t value = oneTime ? value.slice(1) : value;\n\t tokens.push({\n\t tag: true,\n\t value: value.trim(),\n\t html: html,\n\t oneTime: oneTime\n\t });\n\t lastIndex = index + match[0].length;\n\t }\n\t if (lastIndex < text.length) {\n\t tokens.push({\n\t value: text.slice(lastIndex)\n\t });\n\t }\n\t cache.put(text, tokens);\n\t return tokens;\n\t}\n\t\n\t/**\n\t * Format a list of tokens into an expression.\n\t * e.g. tokens parsed from 'a {{b}} c' can be serialized\n\t * into one single expression as '\"a \" + b + \" c\"'.\n\t *\n\t * @param {Array} tokens\n\t * @param {Vue} [vm]\n\t * @return {String}\n\t */\n\t\n\tfunction tokensToExp(tokens, vm) {\n\t if (tokens.length > 1) {\n\t return tokens.map(function (token) {\n\t return formatToken(token, vm);\n\t }).join('+');\n\t } else {\n\t return formatToken(tokens[0], vm, true);\n\t }\n\t}\n\t\n\t/**\n\t * Format a single token.\n\t *\n\t * @param {Object} token\n\t * @param {Vue} [vm]\n\t * @param {Boolean} [single]\n\t * @return {String}\n\t */\n\t\n\tfunction formatToken(token, vm, single) {\n\t return token.tag ? token.oneTime && vm ? '\"' + vm.$eval(token.value) + '\"' : inlineFilters(token.value, single) : '\"' + token.value + '\"';\n\t}\n\t\n\t/**\n\t * For an attribute with multiple interpolation tags,\n\t * e.g. attr=\"some-{{thing | filter}}\", in order to combine\n\t * the whole thing into a single watchable expression, we\n\t * have to inline those filters. This function does exactly\n\t * that. This is a bit hacky but it avoids heavy changes\n\t * to directive parser and watcher mechanism.\n\t *\n\t * @param {String} exp\n\t * @param {Boolean} single\n\t * @return {String}\n\t */\n\t\n\tvar filterRE = /[^|]\\|[^|]/;\n\tfunction inlineFilters(exp, single) {\n\t if (!filterRE.test(exp)) {\n\t return single ? exp : '(' + exp + ')';\n\t } else {\n\t var dir = parseDirective(exp);\n\t if (!dir.filters) {\n\t return '(' + exp + ')';\n\t } else {\n\t return 'this._applyFilters(' + dir.expression + // value\n\t ',null,' + // oldValue (null for read)\n\t JSON.stringify(dir.filters) + // filter descriptors\n\t ',false)'; // write?\n\t }\n\t }\n\t}\n\t\n\tvar text = Object.freeze({\n\t compileRegex: compileRegex,\n\t parseText: parseText,\n\t tokensToExp: tokensToExp\n\t});\n\t\n\tvar delimiters = ['{{', '}}'];\n\tvar unsafeDelimiters = ['{{{', '}}}'];\n\t\n\tvar config = Object.defineProperties({\n\t\n\t /**\n\t * Whether to print debug messages.\n\t * Also enables stack trace for warnings.\n\t *\n\t * @type {Boolean}\n\t */\n\t\n\t debug: false,\n\t\n\t /**\n\t * Whether to suppress warnings.\n\t *\n\t * @type {Boolean}\n\t */\n\t\n\t silent: false,\n\t\n\t /**\n\t * Whether to use async rendering.\n\t */\n\t\n\t async: true,\n\t\n\t /**\n\t * Whether to warn against errors caught when evaluating\n\t * expressions.\n\t */\n\t\n\t warnExpressionErrors: true,\n\t\n\t /**\n\t * Whether to allow devtools inspection.\n\t * Disabled by default in production builds.\n\t */\n\t\n\t devtools: (\"production\") !== 'production',\n\t\n\t /**\n\t * Internal flag to indicate the delimiters have been\n\t * changed.\n\t *\n\t * @type {Boolean}\n\t */\n\t\n\t _delimitersChanged: true,\n\t\n\t /**\n\t * List of asset types that a component can own.\n\t *\n\t * @type {Array}\n\t */\n\t\n\t _assetTypes: ['component', 'directive', 'elementDirective', 'filter', 'transition', 'partial'],\n\t\n\t /**\n\t * prop binding modes\n\t */\n\t\n\t _propBindingModes: {\n\t ONE_WAY: 0,\n\t TWO_WAY: 1,\n\t ONE_TIME: 2\n\t },\n\t\n\t /**\n\t * Max circular updates allowed in a batcher flush cycle.\n\t */\n\t\n\t _maxUpdateCount: 100\n\t\n\t}, {\n\t delimiters: { /**\n\t * Interpolation delimiters. Changing these would trigger\n\t * the text parser to re-compile the regular expressions.\n\t *\n\t * @type {Array}\n\t */\n\t\n\t get: function get() {\n\t return delimiters;\n\t },\n\t set: function set(val) {\n\t delimiters = val;\n\t compileRegex();\n\t },\n\t configurable: true,\n\t enumerable: true\n\t },\n\t unsafeDelimiters: {\n\t get: function get() {\n\t return unsafeDelimiters;\n\t },\n\t set: function set(val) {\n\t unsafeDelimiters = val;\n\t compileRegex();\n\t },\n\t configurable: true,\n\t enumerable: true\n\t }\n\t});\n\t\n\tvar warn = undefined;\n\tvar formatComponentName = undefined;\n\t\n\tif (false) {\n\t (function () {\n\t var hasConsole = typeof console !== 'undefined';\n\t\n\t warn = function (msg, vm) {\n\t if (hasConsole && !config.silent) {\n\t console.error('[Vue warn]: ' + msg + (vm ? formatComponentName(vm) : ''));\n\t }\n\t };\n\t\n\t formatComponentName = function (vm) {\n\t var name = vm._isVue ? vm.$options.name : vm.name;\n\t return name ? ' (found in component: <' + hyphenate(name) + '>)' : '';\n\t };\n\t })();\n\t}\n\t\n\t/**\n\t * Append with transition.\n\t *\n\t * @param {Element} el\n\t * @param {Element} target\n\t * @param {Vue} vm\n\t * @param {Function} [cb]\n\t */\n\t\n\tfunction appendWithTransition(el, target, vm, cb) {\n\t applyTransition(el, 1, function () {\n\t target.appendChild(el);\n\t }, vm, cb);\n\t}\n\t\n\t/**\n\t * InsertBefore with transition.\n\t *\n\t * @param {Element} el\n\t * @param {Element} target\n\t * @param {Vue} vm\n\t * @param {Function} [cb]\n\t */\n\t\n\tfunction beforeWithTransition(el, target, vm, cb) {\n\t applyTransition(el, 1, function () {\n\t before(el, target);\n\t }, vm, cb);\n\t}\n\t\n\t/**\n\t * Remove with transition.\n\t *\n\t * @param {Element} el\n\t * @param {Vue} vm\n\t * @param {Function} [cb]\n\t */\n\t\n\tfunction removeWithTransition(el, vm, cb) {\n\t applyTransition(el, -1, function () {\n\t remove(el);\n\t }, vm, cb);\n\t}\n\t\n\t/**\n\t * Apply transitions with an operation callback.\n\t *\n\t * @param {Element} el\n\t * @param {Number} direction\n\t * 1: enter\n\t * -1: leave\n\t * @param {Function} op - the actual DOM operation\n\t * @param {Vue} vm\n\t * @param {Function} [cb]\n\t */\n\t\n\tfunction applyTransition(el, direction, op, vm, cb) {\n\t var transition = el.__v_trans;\n\t if (!transition ||\n\t // skip if there are no js hooks and CSS transition is\n\t // not supported\n\t !transition.hooks && !transitionEndEvent ||\n\t // skip transitions for initial compile\n\t !vm._isCompiled ||\n\t // if the vm is being manipulated by a parent directive\n\t // during the parent's compilation phase, skip the\n\t // animation.\n\t vm.$parent && !vm.$parent._isCompiled) {\n\t op();\n\t if (cb) cb();\n\t return;\n\t }\n\t var action = direction > 0 ? 'enter' : 'leave';\n\t transition[action](op, cb);\n\t}\n\t\n\tvar transition = Object.freeze({\n\t appendWithTransition: appendWithTransition,\n\t beforeWithTransition: beforeWithTransition,\n\t removeWithTransition: removeWithTransition,\n\t applyTransition: applyTransition\n\t});\n\t\n\t/**\n\t * Query an element selector if it's not an element already.\n\t *\n\t * @param {String|Element} el\n\t * @return {Element}\n\t */\n\t\n\tfunction query(el) {\n\t if (typeof el === 'string') {\n\t var selector = el;\n\t el = document.querySelector(el);\n\t if (!el) {\n\t (\"production\") !== 'production' && warn('Cannot find element: ' + selector);\n\t }\n\t }\n\t return el;\n\t}\n\t\n\t/**\n\t * Check if a node is in the document.\n\t * Note: document.documentElement.contains should work here\n\t * but always returns false for comment nodes in phantomjs,\n\t * making unit tests difficult. This is fixed by doing the\n\t * contains() check on the node's parentNode instead of\n\t * the node itself.\n\t *\n\t * @param {Node} node\n\t * @return {Boolean}\n\t */\n\t\n\tfunction inDoc(node) {\n\t if (!node) return false;\n\t var doc = node.ownerDocument.documentElement;\n\t var parent = node.parentNode;\n\t return doc === node || doc === parent || !!(parent && parent.nodeType === 1 && doc.contains(parent));\n\t}\n\t\n\t/**\n\t * Get and remove an attribute from a node.\n\t *\n\t * @param {Node} node\n\t * @param {String} _attr\n\t */\n\t\n\tfunction getAttr(node, _attr) {\n\t var val = node.getAttribute(_attr);\n\t if (val !== null) {\n\t node.removeAttribute(_attr);\n\t }\n\t return val;\n\t}\n\t\n\t/**\n\t * Get an attribute with colon or v-bind: prefix.\n\t *\n\t * @param {Node} node\n\t * @param {String} name\n\t * @return {String|null}\n\t */\n\t\n\tfunction getBindAttr(node, name) {\n\t var val = getAttr(node, ':' + name);\n\t if (val === null) {\n\t val = getAttr(node, 'v-bind:' + name);\n\t }\n\t return val;\n\t}\n\t\n\t/**\n\t * Check the presence of a bind attribute.\n\t *\n\t * @param {Node} node\n\t * @param {String} name\n\t * @return {Boolean}\n\t */\n\t\n\tfunction hasBindAttr(node, name) {\n\t return node.hasAttribute(name) || node.hasAttribute(':' + name) || node.hasAttribute('v-bind:' + name);\n\t}\n\t\n\t/**\n\t * Insert el before target\n\t *\n\t * @param {Element} el\n\t * @param {Element} target\n\t */\n\t\n\tfunction before(el, target) {\n\t target.parentNode.insertBefore(el, target);\n\t}\n\t\n\t/**\n\t * Insert el after target\n\t *\n\t * @param {Element} el\n\t * @param {Element} target\n\t */\n\t\n\tfunction after(el, target) {\n\t if (target.nextSibling) {\n\t before(el, target.nextSibling);\n\t } else {\n\t target.parentNode.appendChild(el);\n\t }\n\t}\n\t\n\t/**\n\t * Remove el from DOM\n\t *\n\t * @param {Element} el\n\t */\n\t\n\tfunction remove(el) {\n\t el.parentNode.removeChild(el);\n\t}\n\t\n\t/**\n\t * Prepend el to target\n\t *\n\t * @param {Element} el\n\t * @param {Element} target\n\t */\n\t\n\tfunction prepend(el, target) {\n\t if (target.firstChild) {\n\t before(el, target.firstChild);\n\t } else {\n\t target.appendChild(el);\n\t }\n\t}\n\t\n\t/**\n\t * Replace target with el\n\t *\n\t * @param {Element} target\n\t * @param {Element} el\n\t */\n\t\n\tfunction replace(target, el) {\n\t var parent = target.parentNode;\n\t if (parent) {\n\t parent.replaceChild(el, target);\n\t }\n\t}\n\t\n\t/**\n\t * Add event listener shorthand.\n\t *\n\t * @param {Element} el\n\t * @param {String} event\n\t * @param {Function} cb\n\t * @param {Boolean} [useCapture]\n\t */\n\t\n\tfunction on(el, event, cb, useCapture) {\n\t el.addEventListener(event, cb, useCapture);\n\t}\n\t\n\t/**\n\t * Remove event listener shorthand.\n\t *\n\t * @param {Element} el\n\t * @param {String} event\n\t * @param {Function} cb\n\t */\n\t\n\tfunction off(el, event, cb) {\n\t el.removeEventListener(event, cb);\n\t}\n\t\n\t/**\n\t * For IE9 compat: when both class and :class are present\n\t * getAttribute('class') returns wrong value...\n\t *\n\t * @param {Element} el\n\t * @return {String}\n\t */\n\t\n\tfunction getClass(el) {\n\t var classname = el.className;\n\t if (typeof classname === 'object') {\n\t classname = classname.baseVal || '';\n\t }\n\t return classname;\n\t}\n\t\n\t/**\n\t * In IE9, setAttribute('class') will result in empty class\n\t * if the element also has the :class attribute; However in\n\t * PhantomJS, setting `className` does not work on SVG elements...\n\t * So we have to do a conditional check here.\n\t *\n\t * @param {Element} el\n\t * @param {String} cls\n\t */\n\t\n\tfunction setClass(el, cls) {\n\t /* istanbul ignore if */\n\t if (isIE9 && !/svg$/.test(el.namespaceURI)) {\n\t el.className = cls;\n\t } else {\n\t el.setAttribute('class', cls);\n\t }\n\t}\n\t\n\t/**\n\t * Add class with compatibility for IE & SVG\n\t *\n\t * @param {Element} el\n\t * @param {String} cls\n\t */\n\t\n\tfunction addClass(el, cls) {\n\t if (el.classList) {\n\t el.classList.add(cls);\n\t } else {\n\t var cur = ' ' + getClass(el) + ' ';\n\t if (cur.indexOf(' ' + cls + ' ') < 0) {\n\t setClass(el, (cur + cls).trim());\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Remove class with compatibility for IE & SVG\n\t *\n\t * @param {Element} el\n\t * @param {String} cls\n\t */\n\t\n\tfunction removeClass(el, cls) {\n\t if (el.classList) {\n\t el.classList.remove(cls);\n\t } else {\n\t var cur = ' ' + getClass(el) + ' ';\n\t var tar = ' ' + cls + ' ';\n\t while (cur.indexOf(tar) >= 0) {\n\t cur = cur.replace(tar, ' ');\n\t }\n\t setClass(el, cur.trim());\n\t }\n\t if (!el.className) {\n\t el.removeAttribute('class');\n\t }\n\t}\n\t\n\t/**\n\t * Extract raw content inside an element into a temporary\n\t * container div\n\t *\n\t * @param {Element} el\n\t * @param {Boolean} asFragment\n\t * @return {Element|DocumentFragment}\n\t */\n\t\n\tfunction extractContent(el, asFragment) {\n\t var child;\n\t var rawContent;\n\t /* istanbul ignore if */\n\t if (isTemplate(el) && isFragment(el.content)) {\n\t el = el.content;\n\t }\n\t if (el.hasChildNodes()) {\n\t trimNode(el);\n\t rawContent = asFragment ? document.createDocumentFragment() : document.createElement('div');\n\t /* eslint-disable no-cond-assign */\n\t while (child = el.firstChild) {\n\t /* eslint-enable no-cond-assign */\n\t rawContent.appendChild(child);\n\t }\n\t }\n\t return rawContent;\n\t}\n\t\n\t/**\n\t * Trim possible empty head/tail text and comment\n\t * nodes inside a parent.\n\t *\n\t * @param {Node} node\n\t */\n\t\n\tfunction trimNode(node) {\n\t var child;\n\t /* eslint-disable no-sequences */\n\t while ((child = node.firstChild, isTrimmable(child))) {\n\t node.removeChild(child);\n\t }\n\t while ((child = node.lastChild, isTrimmable(child))) {\n\t node.removeChild(child);\n\t }\n\t /* eslint-enable no-sequences */\n\t}\n\t\n\tfunction isTrimmable(node) {\n\t return node && (node.nodeType === 3 && !node.data.trim() || node.nodeType === 8);\n\t}\n\t\n\t/**\n\t * Check if an element is a template tag.\n\t * Note if the template appears inside an SVG its tagName\n\t * will be in lowercase.\n\t *\n\t * @param {Element} el\n\t */\n\t\n\tfunction isTemplate(el) {\n\t return el.tagName && el.tagName.toLowerCase() === 'template';\n\t}\n\t\n\t/**\n\t * Create an \"anchor\" for performing dom insertion/removals.\n\t * This is used in a number of scenarios:\n\t * - fragment instance\n\t * - v-html\n\t * - v-if\n\t * - v-for\n\t * - component\n\t *\n\t * @param {String} content\n\t * @param {Boolean} persist - IE trashes empty textNodes on\n\t * cloneNode(true), so in certain\n\t * cases the anchor needs to be\n\t * non-empty to be persisted in\n\t * templates.\n\t * @return {Comment|Text}\n\t */\n\t\n\tfunction createAnchor(content, persist) {\n\t var anchor = config.debug ? document.createComment(content) : document.createTextNode(persist ? ' ' : '');\n\t anchor.__v_anchor = true;\n\t return anchor;\n\t}\n\t\n\t/**\n\t * Find a component ref attribute that starts with $.\n\t *\n\t * @param {Element} node\n\t * @return {String|undefined}\n\t */\n\t\n\tvar refRE = /^v-ref:/;\n\t\n\tfunction findRef(node) {\n\t if (node.hasAttributes()) {\n\t var attrs = node.attributes;\n\t for (var i = 0, l = attrs.length; i < l; i++) {\n\t var name = attrs[i].name;\n\t if (refRE.test(name)) {\n\t return camelize(name.replace(refRE, ''));\n\t }\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Map a function to a range of nodes .\n\t *\n\t * @param {Node} node\n\t * @param {Node} end\n\t * @param {Function} op\n\t */\n\t\n\tfunction mapNodeRange(node, end, op) {\n\t var next;\n\t while (node !== end) {\n\t next = node.nextSibling;\n\t op(node);\n\t node = next;\n\t }\n\t op(end);\n\t}\n\t\n\t/**\n\t * Remove a range of nodes with transition, store\n\t * the nodes in a fragment with correct ordering,\n\t * and call callback when done.\n\t *\n\t * @param {Node} start\n\t * @param {Node} end\n\t * @param {Vue} vm\n\t * @param {DocumentFragment} frag\n\t * @param {Function} cb\n\t */\n\t\n\tfunction removeNodeRange(start, end, vm, frag, cb) {\n\t var done = false;\n\t var removed = 0;\n\t var nodes = [];\n\t mapNodeRange(start, end, function (node) {\n\t if (node === end) done = true;\n\t nodes.push(node);\n\t removeWithTransition(node, vm, onRemoved);\n\t });\n\t function onRemoved() {\n\t removed++;\n\t if (done && removed >= nodes.length) {\n\t for (var i = 0; i < nodes.length; i++) {\n\t frag.appendChild(nodes[i]);\n\t }\n\t cb && cb();\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Check if a node is a DocumentFragment.\n\t *\n\t * @param {Node} node\n\t * @return {Boolean}\n\t */\n\t\n\tfunction isFragment(node) {\n\t return node && node.nodeType === 11;\n\t}\n\t\n\t/**\n\t * Get outerHTML of elements, taking care\n\t * of SVG elements in IE as well.\n\t *\n\t * @param {Element} el\n\t * @return {String}\n\t */\n\t\n\tfunction getOuterHTML(el) {\n\t if (el.outerHTML) {\n\t return el.outerHTML;\n\t } else {\n\t var container = document.createElement('div');\n\t container.appendChild(el.cloneNode(true));\n\t return container.innerHTML;\n\t }\n\t}\n\t\n\tvar commonTagRE = /^(div|p|span|img|a|b|i|br|ul|ol|li|h1|h2|h3|h4|h5|h6|code|pre|table|th|td|tr|form|label|input|select|option|nav|article|section|header|footer)$/i;\n\tvar reservedTagRE = /^(slot|partial|component)$/i;\n\t\n\tvar isUnknownElement = undefined;\n\tif (false) {\n\t isUnknownElement = function (el, tag) {\n\t if (tag.indexOf('-') > -1) {\n\t // http://stackoverflow.com/a/28210364/1070244\n\t return el.constructor === window.HTMLUnknownElement || el.constructor === window.HTMLElement;\n\t } else {\n\t return (/HTMLUnknownElement/.test(el.toString()) &&\n\t // Chrome returns unknown for several HTML5 elements.\n\t // https://code.google.com/p/chromium/issues/detail?id=540526\n\t // Firefox returns unknown for some \"Interactive elements.\"\n\t !/^(data|time|rtc|rb|details|dialog|summary)$/.test(tag)\n\t );\n\t }\n\t };\n\t}\n\t\n\t/**\n\t * Check if an element is a component, if yes return its\n\t * component id.\n\t *\n\t * @param {Element} el\n\t * @param {Object} options\n\t * @return {Object|undefined}\n\t */\n\t\n\tfunction checkComponentAttr(el, options) {\n\t var tag = el.tagName.toLowerCase();\n\t var hasAttrs = el.hasAttributes();\n\t if (!commonTagRE.test(tag) && !reservedTagRE.test(tag)) {\n\t if (resolveAsset(options, 'components', tag)) {\n\t return { id: tag };\n\t } else {\n\t var is = hasAttrs && getIsBinding(el, options);\n\t if (is) {\n\t return is;\n\t } else if (false) {\n\t var expectedTag = options._componentNameMap && options._componentNameMap[tag];\n\t if (expectedTag) {\n\t warn('Unknown custom element: <' + tag + '> - ' + 'did you mean <' + expectedTag + '>? ' + 'HTML is case-insensitive, remember to use kebab-case in templates.');\n\t } else if (isUnknownElement(el, tag)) {\n\t warn('Unknown custom element: <' + tag + '> - did you ' + 'register the component correctly? For recursive components, ' + 'make sure to provide the \"name\" option.');\n\t }\n\t }\n\t }\n\t } else if (hasAttrs) {\n\t return getIsBinding(el, options);\n\t }\n\t}\n\t\n\t/**\n\t * Get \"is\" binding from an element.\n\t *\n\t * @param {Element} el\n\t * @param {Object} options\n\t * @return {Object|undefined}\n\t */\n\t\n\tfunction getIsBinding(el, options) {\n\t // dynamic syntax\n\t var exp = el.getAttribute('is');\n\t if (exp != null) {\n\t if (resolveAsset(options, 'components', exp)) {\n\t el.removeAttribute('is');\n\t return { id: exp };\n\t }\n\t } else {\n\t exp = getBindAttr(el, 'is');\n\t if (exp != null) {\n\t return { id: exp, dynamic: true };\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Option overwriting strategies are functions that handle\n\t * how to merge a parent option value and a child option\n\t * value into the final value.\n\t *\n\t * All strategy functions follow the same signature:\n\t *\n\t * @param {*} parentVal\n\t * @param {*} childVal\n\t * @param {Vue} [vm]\n\t */\n\t\n\tvar strats = config.optionMergeStrategies = Object.create(null);\n\t\n\t/**\n\t * Helper that recursively merges two data objects together.\n\t */\n\t\n\tfunction mergeData(to, from) {\n\t var key, toVal, fromVal;\n\t for (key in from) {\n\t toVal = to[key];\n\t fromVal = from[key];\n\t if (!hasOwn(to, key)) {\n\t set(to, key, fromVal);\n\t } else if (isObject(toVal) && isObject(fromVal)) {\n\t mergeData(toVal, fromVal);\n\t }\n\t }\n\t return to;\n\t}\n\t\n\t/**\n\t * Data\n\t */\n\t\n\tstrats.data = function (parentVal, childVal, vm) {\n\t if (!vm) {\n\t // in a Vue.extend merge, both should be functions\n\t if (!childVal) {\n\t return parentVal;\n\t }\n\t if (typeof childVal !== 'function') {\n\t (\"production\") !== 'production' && warn('The \"data\" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm);\n\t return parentVal;\n\t }\n\t if (!parentVal) {\n\t return childVal;\n\t }\n\t // when parentVal & childVal are both present,\n\t // we need to return a function that returns the\n\t // merged result of both functions... no need to\n\t // check if parentVal is a function here because\n\t // it has to be a function to pass previous merges.\n\t return function mergedDataFn() {\n\t return mergeData(childVal.call(this), parentVal.call(this));\n\t };\n\t } else if (parentVal || childVal) {\n\t return function mergedInstanceDataFn() {\n\t // instance merge\n\t var instanceData = typeof childVal === 'function' ? childVal.call(vm) : childVal;\n\t var defaultData = typeof parentVal === 'function' ? parentVal.call(vm) : undefined;\n\t if (instanceData) {\n\t return mergeData(instanceData, defaultData);\n\t } else {\n\t return defaultData;\n\t }\n\t };\n\t }\n\t};\n\t\n\t/**\n\t * El\n\t */\n\t\n\tstrats.el = function (parentVal, childVal, vm) {\n\t if (!vm && childVal && typeof childVal !== 'function') {\n\t (\"production\") !== 'production' && warn('The \"el\" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm);\n\t return;\n\t }\n\t var ret = childVal || parentVal;\n\t // invoke the element factory if this is instance merge\n\t return vm && typeof ret === 'function' ? ret.call(vm) : ret;\n\t};\n\t\n\t/**\n\t * Hooks and param attributes are merged as arrays.\n\t */\n\t\n\tstrats.init = strats.created = strats.ready = strats.attached = strats.detached = strats.beforeCompile = strats.compiled = strats.beforeDestroy = strats.destroyed = strats.activate = function (parentVal, childVal) {\n\t return childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [childVal] : parentVal;\n\t};\n\t\n\t/**\n\t * Assets\n\t *\n\t * When a vm is present (instance creation), we need to do\n\t * a three-way merge between constructor options, instance\n\t * options and parent options.\n\t */\n\t\n\tfunction mergeAssets(parentVal, childVal) {\n\t var res = Object.create(parentVal || null);\n\t return childVal ? extend(res, guardArrayAssets(childVal)) : res;\n\t}\n\t\n\tconfig._assetTypes.forEach(function (type) {\n\t strats[type + 's'] = mergeAssets;\n\t});\n\t\n\t/**\n\t * Events & Watchers.\n\t *\n\t * Events & watchers hashes should not overwrite one\n\t * another, so we merge them as arrays.\n\t */\n\t\n\tstrats.watch = strats.events = function (parentVal, childVal) {\n\t if (!childVal) return parentVal;\n\t if (!parentVal) return childVal;\n\t var ret = {};\n\t extend(ret, parentVal);\n\t for (var key in childVal) {\n\t var parent = ret[key];\n\t var child = childVal[key];\n\t if (parent && !isArray(parent)) {\n\t parent = [parent];\n\t }\n\t ret[key] = parent ? parent.concat(child) : [child];\n\t }\n\t return ret;\n\t};\n\t\n\t/**\n\t * Other object hashes.\n\t */\n\t\n\tstrats.props = strats.methods = strats.computed = function (parentVal, childVal) {\n\t if (!childVal) return parentVal;\n\t if (!parentVal) return childVal;\n\t var ret = Object.create(null);\n\t extend(ret, parentVal);\n\t extend(ret, childVal);\n\t return ret;\n\t};\n\t\n\t/**\n\t * Default strategy.\n\t */\n\t\n\tvar defaultStrat = function defaultStrat(parentVal, childVal) {\n\t return childVal === undefined ? parentVal : childVal;\n\t};\n\t\n\t/**\n\t * Make sure component options get converted to actual\n\t * constructors.\n\t *\n\t * @param {Object} options\n\t */\n\t\n\tfunction guardComponents(options) {\n\t if (options.components) {\n\t var components = options.components = guardArrayAssets(options.components);\n\t var ids = Object.keys(components);\n\t var def;\n\t if (false) {\n\t var map = options._componentNameMap = {};\n\t }\n\t for (var i = 0, l = ids.length; i < l; i++) {\n\t var key = ids[i];\n\t if (commonTagRE.test(key) || reservedTagRE.test(key)) {\n\t (\"production\") !== 'production' && warn('Do not use built-in or reserved HTML elements as component ' + 'id: ' + key);\n\t continue;\n\t }\n\t // record a all lowercase <-> kebab-case mapping for\n\t // possible custom element case error warning\n\t if (false) {\n\t map[key.replace(/-/g, '').toLowerCase()] = hyphenate(key);\n\t }\n\t def = components[key];\n\t if (isPlainObject(def)) {\n\t components[key] = Vue.extend(def);\n\t }\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Ensure all props option syntax are normalized into the\n\t * Object-based format.\n\t *\n\t * @param {Object} options\n\t */\n\t\n\tfunction guardProps(options) {\n\t var props = options.props;\n\t var i, val;\n\t if (isArray(props)) {\n\t options.props = {};\n\t i = props.length;\n\t while (i--) {\n\t val = props[i];\n\t if (typeof val === 'string') {\n\t options.props[val] = null;\n\t } else if (val.name) {\n\t options.props[val.name] = val;\n\t }\n\t }\n\t } else if (isPlainObject(props)) {\n\t var keys = Object.keys(props);\n\t i = keys.length;\n\t while (i--) {\n\t val = props[keys[i]];\n\t if (typeof val === 'function') {\n\t props[keys[i]] = { type: val };\n\t }\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Guard an Array-format assets option and converted it\n\t * into the key-value Object format.\n\t *\n\t * @param {Object|Array} assets\n\t * @return {Object}\n\t */\n\t\n\tfunction guardArrayAssets(assets) {\n\t if (isArray(assets)) {\n\t var res = {};\n\t var i = assets.length;\n\t var asset;\n\t while (i--) {\n\t asset = assets[i];\n\t var id = typeof asset === 'function' ? asset.options && asset.options.name || asset.id : asset.name || asset.id;\n\t if (!id) {\n\t (\"production\") !== 'production' && warn('Array-syntax assets must provide a \"name\" or \"id\" field.');\n\t } else {\n\t res[id] = asset;\n\t }\n\t }\n\t return res;\n\t }\n\t return assets;\n\t}\n\t\n\t/**\n\t * Merge two option objects into a new one.\n\t * Core utility used in both instantiation and inheritance.\n\t *\n\t * @param {Object} parent\n\t * @param {Object} child\n\t * @param {Vue} [vm] - if vm is present, indicates this is\n\t * an instantiation merge.\n\t */\n\t\n\tfunction mergeOptions(parent, child, vm) {\n\t guardComponents(child);\n\t guardProps(child);\n\t if (false) {\n\t if (child.propsData && !vm) {\n\t warn('propsData can only be used as an instantiation option.');\n\t }\n\t }\n\t var options = {};\n\t var key;\n\t if (child['extends']) {\n\t parent = typeof child['extends'] === 'function' ? mergeOptions(parent, child['extends'].options, vm) : mergeOptions(parent, child['extends'], vm);\n\t }\n\t if (child.mixins) {\n\t for (var i = 0, l = child.mixins.length; i < l; i++) {\n\t var mixin = child.mixins[i];\n\t var mixinOptions = mixin.prototype instanceof Vue ? mixin.options : mixin;\n\t parent = mergeOptions(parent, mixinOptions, vm);\n\t }\n\t }\n\t for (key in parent) {\n\t mergeField(key);\n\t }\n\t for (key in child) {\n\t if (!hasOwn(parent, key)) {\n\t mergeField(key);\n\t }\n\t }\n\t function mergeField(key) {\n\t var strat = strats[key] || defaultStrat;\n\t options[key] = strat(parent[key], child[key], vm, key);\n\t }\n\t return options;\n\t}\n\t\n\t/**\n\t * Resolve an asset.\n\t * This function is used because child instances need access\n\t * to assets defined in its ancestor chain.\n\t *\n\t * @param {Object} options\n\t * @param {String} type\n\t * @param {String} id\n\t * @param {Boolean} warnMissing\n\t * @return {Object|Function}\n\t */\n\t\n\tfunction resolveAsset(options, type, id, warnMissing) {\n\t /* istanbul ignore if */\n\t if (typeof id !== 'string') {\n\t return;\n\t }\n\t var assets = options[type];\n\t var camelizedId;\n\t var res = assets[id] ||\n\t // camelCase ID\n\t assets[camelizedId = camelize(id)] ||\n\t // Pascal Case ID\n\t assets[camelizedId.charAt(0).toUpperCase() + camelizedId.slice(1)];\n\t if (false) {\n\t warn('Failed to resolve ' + type.slice(0, -1) + ': ' + id, options);\n\t }\n\t return res;\n\t}\n\t\n\tvar uid$1 = 0;\n\t\n\t/**\n\t * A dep is an observable that can have multiple\n\t * directives subscribing to it.\n\t *\n\t * @constructor\n\t */\n\tfunction Dep() {\n\t this.id = uid$1++;\n\t this.subs = [];\n\t}\n\t\n\t// the current target watcher being evaluated.\n\t// this is globally unique because there could be only one\n\t// watcher being evaluated at any time.\n\tDep.target = null;\n\t\n\t/**\n\t * Add a directive subscriber.\n\t *\n\t * @param {Directive} sub\n\t */\n\t\n\tDep.prototype.addSub = function (sub) {\n\t this.subs.push(sub);\n\t};\n\t\n\t/**\n\t * Remove a directive subscriber.\n\t *\n\t * @param {Directive} sub\n\t */\n\t\n\tDep.prototype.removeSub = function (sub) {\n\t this.subs.$remove(sub);\n\t};\n\t\n\t/**\n\t * Add self as a dependency to the target watcher.\n\t */\n\t\n\tDep.prototype.depend = function () {\n\t Dep.target.addDep(this);\n\t};\n\t\n\t/**\n\t * Notify all subscribers of a new value.\n\t */\n\t\n\tDep.prototype.notify = function () {\n\t // stablize the subscriber list first\n\t var subs = toArray(this.subs);\n\t for (var i = 0, l = subs.length; i < l; i++) {\n\t subs[i].update();\n\t }\n\t};\n\t\n\tvar arrayProto = Array.prototype;\n\tvar arrayMethods = Object.create(arrayProto)\n\t\n\t/**\n\t * Intercept mutating methods and emit events\n\t */\n\t\n\t;['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'].forEach(function (method) {\n\t // cache original method\n\t var original = arrayProto[method];\n\t def(arrayMethods, method, function mutator() {\n\t // avoid leaking arguments:\n\t // http://jsperf.com/closure-with-arguments\n\t var i = arguments.length;\n\t var args = new Array(i);\n\t while (i--) {\n\t args[i] = arguments[i];\n\t }\n\t var result = original.apply(this, args);\n\t var ob = this.__ob__;\n\t var inserted;\n\t switch (method) {\n\t case 'push':\n\t inserted = args;\n\t break;\n\t case 'unshift':\n\t inserted = args;\n\t break;\n\t case 'splice':\n\t inserted = args.slice(2);\n\t break;\n\t }\n\t if (inserted) ob.observeArray(inserted);\n\t // notify change\n\t ob.dep.notify();\n\t return result;\n\t });\n\t});\n\t\n\t/**\n\t * Swap the element at the given index with a new value\n\t * and emits corresponding event.\n\t *\n\t * @param {Number} index\n\t * @param {*} val\n\t * @return {*} - replaced element\n\t */\n\t\n\tdef(arrayProto, '$set', function $set(index, val) {\n\t if (index >= this.length) {\n\t this.length = Number(index) + 1;\n\t }\n\t return this.splice(index, 1, val)[0];\n\t});\n\t\n\t/**\n\t * Convenience method to remove the element at given index or target element reference.\n\t *\n\t * @param {*} item\n\t */\n\t\n\tdef(arrayProto, '$remove', function $remove(item) {\n\t /* istanbul ignore if */\n\t if (!this.length) return;\n\t var index = indexOf(this, item);\n\t if (index > -1) {\n\t return this.splice(index, 1);\n\t }\n\t});\n\t\n\tvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\t\n\t/**\n\t * By default, when a reactive property is set, the new value is\n\t * also converted to become reactive. However in certain cases, e.g.\n\t * v-for scope alias and props, we don't want to force conversion\n\t * because the value may be a nested value under a frozen data structure.\n\t *\n\t * So whenever we want to set a reactive property without forcing\n\t * conversion on the new value, we wrap that call inside this function.\n\t */\n\t\n\tvar shouldConvert = true;\n\t\n\tfunction withoutConversion(fn) {\n\t shouldConvert = false;\n\t fn();\n\t shouldConvert = true;\n\t}\n\t\n\t/**\n\t * Observer class that are attached to each observed\n\t * object. Once attached, the observer converts target\n\t * object's property keys into getter/setters that\n\t * collect dependencies and dispatches updates.\n\t *\n\t * @param {Array|Object} value\n\t * @constructor\n\t */\n\t\n\tfunction Observer(value) {\n\t this.value = value;\n\t this.dep = new Dep();\n\t def(value, '__ob__', this);\n\t if (isArray(value)) {\n\t var augment = hasProto ? protoAugment : copyAugment;\n\t augment(value, arrayMethods, arrayKeys);\n\t this.observeArray(value);\n\t } else {\n\t this.walk(value);\n\t }\n\t}\n\t\n\t// Instance methods\n\t\n\t/**\n\t * Walk through each property and convert them into\n\t * getter/setters. This method should only be called when\n\t * value type is Object.\n\t *\n\t * @param {Object} obj\n\t */\n\t\n\tObserver.prototype.walk = function (obj) {\n\t var keys = Object.keys(obj);\n\t for (var i = 0, l = keys.length; i < l; i++) {\n\t this.convert(keys[i], obj[keys[i]]);\n\t }\n\t};\n\t\n\t/**\n\t * Observe a list of Array items.\n\t *\n\t * @param {Array} items\n\t */\n\t\n\tObserver.prototype.observeArray = function (items) {\n\t for (var i = 0, l = items.length; i < l; i++) {\n\t observe(items[i]);\n\t }\n\t};\n\t\n\t/**\n\t * Convert a property into getter/setter so we can emit\n\t * the events when the property is accessed/changed.\n\t *\n\t * @param {String} key\n\t * @param {*} val\n\t */\n\t\n\tObserver.prototype.convert = function (key, val) {\n\t defineReactive(this.value, key, val);\n\t};\n\t\n\t/**\n\t * Add an owner vm, so that when $set/$delete mutations\n\t * happen we can notify owner vms to proxy the keys and\n\t * digest the watchers. This is only called when the object\n\t * is observed as an instance's root $data.\n\t *\n\t * @param {Vue} vm\n\t */\n\t\n\tObserver.prototype.addVm = function (vm) {\n\t (this.vms || (this.vms = [])).push(vm);\n\t};\n\t\n\t/**\n\t * Remove an owner vm. This is called when the object is\n\t * swapped out as an instance's $data object.\n\t *\n\t * @param {Vue} vm\n\t */\n\t\n\tObserver.prototype.removeVm = function (vm) {\n\t this.vms.$remove(vm);\n\t};\n\t\n\t// helpers\n\t\n\t/**\n\t * Augment an target Object or Array by intercepting\n\t * the prototype chain using __proto__\n\t *\n\t * @param {Object|Array} target\n\t * @param {Object} src\n\t */\n\t\n\tfunction protoAugment(target, src) {\n\t /* eslint-disable no-proto */\n\t target.__proto__ = src;\n\t /* eslint-enable no-proto */\n\t}\n\t\n\t/**\n\t * Augment an target Object or Array by defining\n\t * hidden properties.\n\t *\n\t * @param {Object|Array} target\n\t * @param {Object} proto\n\t */\n\t\n\tfunction copyAugment(target, src, keys) {\n\t for (var i = 0, l = keys.length; i < l; i++) {\n\t var key = keys[i];\n\t def(target, key, src[key]);\n\t }\n\t}\n\t\n\t/**\n\t * Attempt to create an observer instance for a value,\n\t * returns the new observer if successfully observed,\n\t * or the existing observer if the value already has one.\n\t *\n\t * @param {*} value\n\t * @param {Vue} [vm]\n\t * @return {Observer|undefined}\n\t * @static\n\t */\n\t\n\tfunction observe(value, vm) {\n\t if (!value || typeof value !== 'object') {\n\t return;\n\t }\n\t var ob;\n\t if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n\t ob = value.__ob__;\n\t } else if (shouldConvert && (isArray(value) || isPlainObject(value)) && Object.isExtensible(value) && !value._isVue) {\n\t ob = new Observer(value);\n\t }\n\t if (ob && vm) {\n\t ob.addVm(vm);\n\t }\n\t return ob;\n\t}\n\t\n\t/**\n\t * Define a reactive property on an Object.\n\t *\n\t * @param {Object} obj\n\t * @param {String} key\n\t * @param {*} val\n\t */\n\t\n\tfunction defineReactive(obj, key, val) {\n\t var dep = new Dep();\n\t\n\t var property = Object.getOwnPropertyDescriptor(obj, key);\n\t if (property && property.configurable === false) {\n\t return;\n\t }\n\t\n\t // cater for pre-defined getter/setters\n\t var getter = property && property.get;\n\t var setter = property && property.set;\n\t\n\t var childOb = observe(val);\n\t Object.defineProperty(obj, key, {\n\t enumerable: true,\n\t configurable: true,\n\t get: function reactiveGetter() {\n\t var value = getter ? getter.call(obj) : val;\n\t if (Dep.target) {\n\t dep.depend();\n\t if (childOb) {\n\t childOb.dep.depend();\n\t }\n\t if (isArray(value)) {\n\t for (var e, i = 0, l = value.length; i < l; i++) {\n\t e = value[i];\n\t e && e.__ob__ && e.__ob__.dep.depend();\n\t }\n\t }\n\t }\n\t return value;\n\t },\n\t set: function reactiveSetter(newVal) {\n\t var value = getter ? getter.call(obj) : val;\n\t if (newVal === value) {\n\t return;\n\t }\n\t if (setter) {\n\t setter.call(obj, newVal);\n\t } else {\n\t val = newVal;\n\t }\n\t childOb = observe(newVal);\n\t dep.notify();\n\t }\n\t });\n\t}\n\t\n\t\n\t\n\tvar util = Object.freeze({\n\t\tdefineReactive: defineReactive,\n\t\tset: set,\n\t\tdel: del,\n\t\thasOwn: hasOwn,\n\t\tisLiteral: isLiteral,\n\t\tisReserved: isReserved,\n\t\t_toString: _toString,\n\t\ttoNumber: toNumber,\n\t\ttoBoolean: toBoolean,\n\t\tstripQuotes: stripQuotes,\n\t\tcamelize: camelize,\n\t\thyphenate: hyphenate,\n\t\tclassify: classify,\n\t\tbind: bind,\n\t\ttoArray: toArray,\n\t\textend: extend,\n\t\tisObject: isObject,\n\t\tisPlainObject: isPlainObject,\n\t\tdef: def,\n\t\tdebounce: _debounce,\n\t\tindexOf: indexOf,\n\t\tcancellable: cancellable,\n\t\tlooseEqual: looseEqual,\n\t\tisArray: isArray,\n\t\thasProto: hasProto,\n\t\tinBrowser: inBrowser,\n\t\tdevtools: devtools,\n\t\tisIE: isIE,\n\t\tisIE9: isIE9,\n\t\tisAndroid: isAndroid,\n\t\tisIos: isIos,\n\t\tiosVersionMatch: iosVersionMatch,\n\t\tiosVersion: iosVersion,\n\t\thasMutationObserverBug: hasMutationObserverBug,\n\t\tget transitionProp () { return transitionProp; },\n\t\tget transitionEndEvent () { return transitionEndEvent; },\n\t\tget animationProp () { return animationProp; },\n\t\tget animationEndEvent () { return animationEndEvent; },\n\t\tnextTick: nextTick,\n\t\tget _Set () { return _Set; },\n\t\tquery: query,\n\t\tinDoc: inDoc,\n\t\tgetAttr: getAttr,\n\t\tgetBindAttr: getBindAttr,\n\t\thasBindAttr: hasBindAttr,\n\t\tbefore: before,\n\t\tafter: after,\n\t\tremove: remove,\n\t\tprepend: prepend,\n\t\treplace: replace,\n\t\ton: on,\n\t\toff: off,\n\t\tsetClass: setClass,\n\t\taddClass: addClass,\n\t\tremoveClass: removeClass,\n\t\textractContent: extractContent,\n\t\ttrimNode: trimNode,\n\t\tisTemplate: isTemplate,\n\t\tcreateAnchor: createAnchor,\n\t\tfindRef: findRef,\n\t\tmapNodeRange: mapNodeRange,\n\t\tremoveNodeRange: removeNodeRange,\n\t\tisFragment: isFragment,\n\t\tgetOuterHTML: getOuterHTML,\n\t\tmergeOptions: mergeOptions,\n\t\tresolveAsset: resolveAsset,\n\t\tcheckComponentAttr: checkComponentAttr,\n\t\tcommonTagRE: commonTagRE,\n\t\treservedTagRE: reservedTagRE,\n\t\tget warn () { return warn; }\n\t});\n\t\n\tvar uid = 0;\n\t\n\tfunction initMixin (Vue) {\n\t /**\n\t * The main init sequence. This is called for every\n\t * instance, including ones that are created from extended\n\t * constructors.\n\t *\n\t * @param {Object} options - this options object should be\n\t * the result of merging class\n\t * options and the options passed\n\t * in to the constructor.\n\t */\n\t\n\t Vue.prototype._init = function (options) {\n\t options = options || {};\n\t\n\t this.$el = null;\n\t this.$parent = options.parent;\n\t this.$root = this.$parent ? this.$parent.$root : this;\n\t this.$children = [];\n\t this.$refs = {}; // child vm references\n\t this.$els = {}; // element references\n\t this._watchers = []; // all watchers as an array\n\t this._directives = []; // all directives\n\t\n\t // a uid\n\t this._uid = uid++;\n\t\n\t // a flag to avoid this being observed\n\t this._isVue = true;\n\t\n\t // events bookkeeping\n\t this._events = {}; // registered callbacks\n\t this._eventsCount = {}; // for $broadcast optimization\n\t\n\t // fragment instance properties\n\t this._isFragment = false;\n\t this._fragment = // @type {DocumentFragment}\n\t this._fragmentStart = // @type {Text|Comment}\n\t this._fragmentEnd = null; // @type {Text|Comment}\n\t\n\t // lifecycle state\n\t this._isCompiled = this._isDestroyed = this._isReady = this._isAttached = this._isBeingDestroyed = this._vForRemoving = false;\n\t this._unlinkFn = null;\n\t\n\t // context:\n\t // if this is a transcluded component, context\n\t // will be the common parent vm of this instance\n\t // and its host.\n\t this._context = options._context || this.$parent;\n\t\n\t // scope:\n\t // if this is inside an inline v-for, the scope\n\t // will be the intermediate scope created for this\n\t // repeat fragment. this is used for linking props\n\t // and container directives.\n\t this._scope = options._scope;\n\t\n\t // fragment:\n\t // if this instance is compiled inside a Fragment, it\n\t // needs to reigster itself as a child of that fragment\n\t // for attach/detach to work properly.\n\t this._frag = options._frag;\n\t if (this._frag) {\n\t this._frag.children.push(this);\n\t }\n\t\n\t // push self into parent / transclusion host\n\t if (this.$parent) {\n\t this.$parent.$children.push(this);\n\t }\n\t\n\t // merge options.\n\t options = this.$options = mergeOptions(this.constructor.options, options, this);\n\t\n\t // set ref\n\t this._updateRef();\n\t\n\t // initialize data as empty object.\n\t // it will be filled up in _initData().\n\t this._data = {};\n\t\n\t // call init hook\n\t this._callHook('init');\n\t\n\t // initialize data observation and scope inheritance.\n\t this._initState();\n\t\n\t // setup event system and option events.\n\t this._initEvents();\n\t\n\t // call created hook\n\t this._callHook('created');\n\t\n\t // if `el` option is passed, start compilation.\n\t if (options.el) {\n\t this.$mount(options.el);\n\t }\n\t };\n\t}\n\t\n\tvar pathCache = new Cache(1000);\n\t\n\t// actions\n\tvar APPEND = 0;\n\tvar PUSH = 1;\n\tvar INC_SUB_PATH_DEPTH = 2;\n\tvar PUSH_SUB_PATH = 3;\n\t\n\t// states\n\tvar BEFORE_PATH = 0;\n\tvar IN_PATH = 1;\n\tvar BEFORE_IDENT = 2;\n\tvar IN_IDENT = 3;\n\tvar IN_SUB_PATH = 4;\n\tvar IN_SINGLE_QUOTE = 5;\n\tvar IN_DOUBLE_QUOTE = 6;\n\tvar AFTER_PATH = 7;\n\tvar ERROR = 8;\n\t\n\tvar pathStateMachine = [];\n\t\n\tpathStateMachine[BEFORE_PATH] = {\n\t 'ws': [BEFORE_PATH],\n\t 'ident': [IN_IDENT, APPEND],\n\t '[': [IN_SUB_PATH],\n\t 'eof': [AFTER_PATH]\n\t};\n\t\n\tpathStateMachine[IN_PATH] = {\n\t 'ws': [IN_PATH],\n\t '.': [BEFORE_IDENT],\n\t '[': [IN_SUB_PATH],\n\t 'eof': [AFTER_PATH]\n\t};\n\t\n\tpathStateMachine[BEFORE_IDENT] = {\n\t 'ws': [BEFORE_IDENT],\n\t 'ident': [IN_IDENT, APPEND]\n\t};\n\t\n\tpathStateMachine[IN_IDENT] = {\n\t 'ident': [IN_IDENT, APPEND],\n\t '0': [IN_IDENT, APPEND],\n\t 'number': [IN_IDENT, APPEND],\n\t 'ws': [IN_PATH, PUSH],\n\t '.': [BEFORE_IDENT, PUSH],\n\t '[': [IN_SUB_PATH, PUSH],\n\t 'eof': [AFTER_PATH, PUSH]\n\t};\n\t\n\tpathStateMachine[IN_SUB_PATH] = {\n\t \"'\": [IN_SINGLE_QUOTE, APPEND],\n\t '\"': [IN_DOUBLE_QUOTE, APPEND],\n\t '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n\t ']': [IN_PATH, PUSH_SUB_PATH],\n\t 'eof': ERROR,\n\t 'else': [IN_SUB_PATH, APPEND]\n\t};\n\t\n\tpathStateMachine[IN_SINGLE_QUOTE] = {\n\t \"'\": [IN_SUB_PATH, APPEND],\n\t 'eof': ERROR,\n\t 'else': [IN_SINGLE_QUOTE, APPEND]\n\t};\n\t\n\tpathStateMachine[IN_DOUBLE_QUOTE] = {\n\t '\"': [IN_SUB_PATH, APPEND],\n\t 'eof': ERROR,\n\t 'else': [IN_DOUBLE_QUOTE, APPEND]\n\t};\n\t\n\t/**\n\t * Determine the type of a character in a keypath.\n\t *\n\t * @param {Char} ch\n\t * @return {String} type\n\t */\n\t\n\tfunction getPathCharType(ch) {\n\t if (ch === undefined) {\n\t return 'eof';\n\t }\n\t\n\t var code = ch.charCodeAt(0);\n\t\n\t switch (code) {\n\t case 0x5B: // [\n\t case 0x5D: // ]\n\t case 0x2E: // .\n\t case 0x22: // \"\n\t case 0x27: // '\n\t case 0x30:\n\t // 0\n\t return ch;\n\t\n\t case 0x5F: // _\n\t case 0x24:\n\t // $\n\t return 'ident';\n\t\n\t case 0x20: // Space\n\t case 0x09: // Tab\n\t case 0x0A: // Newline\n\t case 0x0D: // Return\n\t case 0xA0: // No-break space\n\t case 0xFEFF: // Byte Order Mark\n\t case 0x2028: // Line Separator\n\t case 0x2029:\n\t // Paragraph Separator\n\t return 'ws';\n\t }\n\t\n\t // a-z, A-Z\n\t if (code >= 0x61 && code <= 0x7A || code >= 0x41 && code <= 0x5A) {\n\t return 'ident';\n\t }\n\t\n\t // 1-9\n\t if (code >= 0x31 && code <= 0x39) {\n\t return 'number';\n\t }\n\t\n\t return 'else';\n\t}\n\t\n\t/**\n\t * Format a subPath, return its plain form if it is\n\t * a literal string or number. Otherwise prepend the\n\t * dynamic indicator (*).\n\t *\n\t * @param {String} path\n\t * @return {String}\n\t */\n\t\n\tfunction formatSubPath(path) {\n\t var trimmed = path.trim();\n\t // invalid leading 0\n\t if (path.charAt(0) === '0' && isNaN(path)) {\n\t return false;\n\t }\n\t return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed;\n\t}\n\t\n\t/**\n\t * Parse a string path into an array of segments\n\t *\n\t * @param {String} path\n\t * @return {Array|undefined}\n\t */\n\t\n\tfunction parse(path) {\n\t var keys = [];\n\t var index = -1;\n\t var mode = BEFORE_PATH;\n\t var subPathDepth = 0;\n\t var c, newChar, key, type, transition, action, typeMap;\n\t\n\t var actions = [];\n\t\n\t actions[PUSH] = function () {\n\t if (key !== undefined) {\n\t keys.push(key);\n\t key = undefined;\n\t }\n\t };\n\t\n\t actions[APPEND] = function () {\n\t if (key === undefined) {\n\t key = newChar;\n\t } else {\n\t key += newChar;\n\t }\n\t };\n\t\n\t actions[INC_SUB_PATH_DEPTH] = function () {\n\t actions[APPEND]();\n\t subPathDepth++;\n\t };\n\t\n\t actions[PUSH_SUB_PATH] = function () {\n\t if (subPathDepth > 0) {\n\t subPathDepth--;\n\t mode = IN_SUB_PATH;\n\t actions[APPEND]();\n\t } else {\n\t subPathDepth = 0;\n\t key = formatSubPath(key);\n\t if (key === false) {\n\t return false;\n\t } else {\n\t actions[PUSH]();\n\t }\n\t }\n\t };\n\t\n\t function maybeUnescapeQuote() {\n\t var nextChar = path[index + 1];\n\t if (mode === IN_SINGLE_QUOTE && nextChar === \"'\" || mode === IN_DOUBLE_QUOTE && nextChar === '\"') {\n\t index++;\n\t newChar = '\\\\' + nextChar;\n\t actions[APPEND]();\n\t return true;\n\t }\n\t }\n\t\n\t while (mode != null) {\n\t index++;\n\t c = path[index];\n\t\n\t if (c === '\\\\' && maybeUnescapeQuote()) {\n\t continue;\n\t }\n\t\n\t type = getPathCharType(c);\n\t typeMap = pathStateMachine[mode];\n\t transition = typeMap[type] || typeMap['else'] || ERROR;\n\t\n\t if (transition === ERROR) {\n\t return; // parse error\n\t }\n\t\n\t mode = transition[0];\n\t action = actions[transition[1]];\n\t if (action) {\n\t newChar = transition[2];\n\t newChar = newChar === undefined ? c : newChar;\n\t if (action() === false) {\n\t return;\n\t }\n\t }\n\t\n\t if (mode === AFTER_PATH) {\n\t keys.raw = path;\n\t return keys;\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * External parse that check for a cache hit first\n\t *\n\t * @param {String} path\n\t * @return {Array|undefined}\n\t */\n\t\n\tfunction parsePath(path) {\n\t var hit = pathCache.get(path);\n\t if (!hit) {\n\t hit = parse(path);\n\t if (hit) {\n\t pathCache.put(path, hit);\n\t }\n\t }\n\t return hit;\n\t}\n\t\n\t/**\n\t * Get from an object from a path string\n\t *\n\t * @param {Object} obj\n\t * @param {String} path\n\t */\n\t\n\tfunction getPath(obj, path) {\n\t return parseExpression(path).get(obj);\n\t}\n\t\n\t/**\n\t * Warn against setting non-existent root path on a vm.\n\t */\n\t\n\tvar warnNonExistent;\n\tif (false) {\n\t warnNonExistent = function (path, vm) {\n\t warn('You are setting a non-existent path \"' + path.raw + '\" ' + 'on a vm instance. Consider pre-initializing the property ' + 'with the \"data\" option for more reliable reactivity ' + 'and better performance.', vm);\n\t };\n\t}\n\t\n\t/**\n\t * Set on an object from a path\n\t *\n\t * @param {Object} obj\n\t * @param {String | Array} path\n\t * @param {*} val\n\t */\n\t\n\tfunction setPath(obj, path, val) {\n\t var original = obj;\n\t if (typeof path === 'string') {\n\t path = parse(path);\n\t }\n\t if (!path || !isObject(obj)) {\n\t return false;\n\t }\n\t var last, key;\n\t for (var i = 0, l = path.length; i < l; i++) {\n\t last = obj;\n\t key = path[i];\n\t if (key.charAt(0) === '*') {\n\t key = parseExpression(key.slice(1)).get.call(original, original);\n\t }\n\t if (i < l - 1) {\n\t obj = obj[key];\n\t if (!isObject(obj)) {\n\t obj = {};\n\t if (false) {\n\t warnNonExistent(path, last);\n\t }\n\t set(last, key, obj);\n\t }\n\t } else {\n\t if (isArray(obj)) {\n\t obj.$set(key, val);\n\t } else if (key in obj) {\n\t obj[key] = val;\n\t } else {\n\t if (false) {\n\t warnNonExistent(path, obj);\n\t }\n\t set(obj, key, val);\n\t }\n\t }\n\t }\n\t return true;\n\t}\n\t\n\tvar path = Object.freeze({\n\t parsePath: parsePath,\n\t getPath: getPath,\n\t setPath: setPath\n\t});\n\t\n\tvar expressionCache = new Cache(1000);\n\t\n\tvar allowedKeywords = 'Math,Date,this,true,false,null,undefined,Infinity,NaN,' + 'isNaN,isFinite,decodeURI,decodeURIComponent,encodeURI,' + 'encodeURIComponent,parseInt,parseFloat';\n\tvar allowedKeywordsRE = new RegExp('^(' + allowedKeywords.replace(/,/g, '\\\\b|') + '\\\\b)');\n\t\n\t// keywords that don't make sense inside expressions\n\tvar improperKeywords = 'break,case,class,catch,const,continue,debugger,default,' + 'delete,do,else,export,extends,finally,for,function,if,' + 'import,in,instanceof,let,return,super,switch,throw,try,' + 'var,while,with,yield,enum,await,implements,package,' + 'protected,static,interface,private,public';\n\tvar improperKeywordsRE = new RegExp('^(' + improperKeywords.replace(/,/g, '\\\\b|') + '\\\\b)');\n\t\n\tvar wsRE = /\\s/g;\n\tvar newlineRE = /\\n/g;\n\tvar saveRE = /[\\{,]\\s*[\\w\\$_]+\\s*:|('(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`)|new |typeof |void /g;\n\tvar restoreRE = /\"(\\d+)\"/g;\n\tvar pathTestRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['.*?'\\]|\\[\".*?\"\\]|\\[\\d+\\]|\\[[A-Za-z_$][\\w$]*\\])*$/;\n\tvar identRE = /[^\\w$\\.](?:[A-Za-z_$][\\w$]*)/g;\n\tvar literalValueRE$1 = /^(?:true|false|null|undefined|Infinity|NaN)$/;\n\t\n\tfunction noop() {}\n\t\n\t/**\n\t * Save / Rewrite / Restore\n\t *\n\t * When rewriting paths found in an expression, it is\n\t * possible for the same letter sequences to be found in\n\t * strings and Object literal property keys. Therefore we\n\t * remove and store these parts in a temporary array, and\n\t * restore them after the path rewrite.\n\t */\n\t\n\tvar saved = [];\n\t\n\t/**\n\t * Save replacer\n\t *\n\t * The save regex can match two possible cases:\n\t * 1. An opening object literal\n\t * 2. A string\n\t * If matched as a plain string, we need to escape its\n\t * newlines, since the string needs to be preserved when\n\t * generating the function body.\n\t *\n\t * @param {String} str\n\t * @param {String} isString - str if matched as a string\n\t * @return {String} - placeholder with index\n\t */\n\t\n\tfunction save(str, isString) {\n\t var i = saved.length;\n\t saved[i] = isString ? str.replace(newlineRE, '\\\\n') : str;\n\t return '\"' + i + '\"';\n\t}\n\t\n\t/**\n\t * Path rewrite replacer\n\t *\n\t * @param {String} raw\n\t * @return {String}\n\t */\n\t\n\tfunction rewrite(raw) {\n\t var c = raw.charAt(0);\n\t var path = raw.slice(1);\n\t if (allowedKeywordsRE.test(path)) {\n\t return raw;\n\t } else {\n\t path = path.indexOf('\"') > -1 ? path.replace(restoreRE, restore) : path;\n\t return c + 'scope.' + path;\n\t }\n\t}\n\t\n\t/**\n\t * Restore replacer\n\t *\n\t * @param {String} str\n\t * @param {String} i - matched save index\n\t * @return {String}\n\t */\n\t\n\tfunction restore(str, i) {\n\t return saved[i];\n\t}\n\t\n\t/**\n\t * Rewrite an expression, prefixing all path accessors with\n\t * `scope.` and generate getter/setter functions.\n\t *\n\t * @param {String} exp\n\t * @return {Function}\n\t */\n\t\n\tfunction compileGetter(exp) {\n\t if (improperKeywordsRE.test(exp)) {\n\t (\"production\") !== 'production' && warn('Avoid using reserved keywords in expression: ' + exp);\n\t }\n\t // reset state\n\t saved.length = 0;\n\t // save strings and object literal keys\n\t var body = exp.replace(saveRE, save).replace(wsRE, '');\n\t // rewrite all paths\n\t // pad 1 space here because the regex matches 1 extra char\n\t body = (' ' + body).replace(identRE, rewrite).replace(restoreRE, restore);\n\t return makeGetterFn(body);\n\t}\n\t\n\t/**\n\t * Build a getter function. Requires eval.\n\t *\n\t * We isolate the try/catch so it doesn't affect the\n\t * optimization of the parse function when it is not called.\n\t *\n\t * @param {String} body\n\t * @return {Function|undefined}\n\t */\n\t\n\tfunction makeGetterFn(body) {\n\t try {\n\t /* eslint-disable no-new-func */\n\t return new Function('scope', 'return ' + body + ';');\n\t /* eslint-enable no-new-func */\n\t } catch (e) {\n\t if (false) {\n\t /* istanbul ignore if */\n\t if (e.toString().match(/unsafe-eval|CSP/)) {\n\t warn('It seems you are using the default build of Vue.js in an environment ' + 'with Content Security Policy that prohibits unsafe-eval. ' + 'Use the CSP-compliant build instead: ' + 'http://vuejs.org/guide/installation.html#CSP-compliant-build');\n\t } else {\n\t warn('Invalid expression. ' + 'Generated function body: ' + body);\n\t }\n\t }\n\t return noop;\n\t }\n\t}\n\t\n\t/**\n\t * Compile a setter function for the expression.\n\t *\n\t * @param {String} exp\n\t * @return {Function|undefined}\n\t */\n\t\n\tfunction compileSetter(exp) {\n\t var path = parsePath(exp);\n\t if (path) {\n\t return function (scope, val) {\n\t setPath(scope, path, val);\n\t };\n\t } else {\n\t (\"production\") !== 'production' && warn('Invalid setter expression: ' + exp);\n\t }\n\t}\n\t\n\t/**\n\t * Parse an expression into re-written getter/setters.\n\t *\n\t * @param {String} exp\n\t * @param {Boolean} needSet\n\t * @return {Function}\n\t */\n\t\n\tfunction parseExpression(exp, needSet) {\n\t exp = exp.trim();\n\t // try cache\n\t var hit = expressionCache.get(exp);\n\t if (hit) {\n\t if (needSet && !hit.set) {\n\t hit.set = compileSetter(hit.exp);\n\t }\n\t return hit;\n\t }\n\t var res = { exp: exp };\n\t res.get = isSimplePath(exp) && exp.indexOf('[') < 0\n\t // optimized super simple getter\n\t ? makeGetterFn('scope.' + exp)\n\t // dynamic getter\n\t : compileGetter(exp);\n\t if (needSet) {\n\t res.set = compileSetter(exp);\n\t }\n\t expressionCache.put(exp, res);\n\t return res;\n\t}\n\t\n\t/**\n\t * Check if an expression is a simple path.\n\t *\n\t * @param {String} exp\n\t * @return {Boolean}\n\t */\n\t\n\tfunction isSimplePath(exp) {\n\t return pathTestRE.test(exp) &&\n\t // don't treat literal values as paths\n\t !literalValueRE$1.test(exp) &&\n\t // Math constants e.g. Math.PI, Math.E etc.\n\t exp.slice(0, 5) !== 'Math.';\n\t}\n\t\n\tvar expression = Object.freeze({\n\t parseExpression: parseExpression,\n\t isSimplePath: isSimplePath\n\t});\n\t\n\t// we have two separate queues: one for directive updates\n\t// and one for user watcher registered via $watch().\n\t// we want to guarantee directive updates to be called\n\t// before user watchers so that when user watchers are\n\t// triggered, the DOM would have already been in updated\n\t// state.\n\t\n\tvar queue = [];\n\tvar userQueue = [];\n\tvar has = {};\n\tvar circular = {};\n\tvar waiting = false;\n\t\n\t/**\n\t * Reset the batcher's state.\n\t */\n\t\n\tfunction resetBatcherState() {\n\t queue.length = 0;\n\t userQueue.length = 0;\n\t has = {};\n\t circular = {};\n\t waiting = false;\n\t}\n\t\n\t/**\n\t * Flush both queues and run the watchers.\n\t */\n\t\n\tfunction flushBatcherQueue() {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t _again = false;\n\t\n\t runBatcherQueue(queue);\n\t runBatcherQueue(userQueue);\n\t // user watchers triggered more watchers,\n\t // keep flushing until it depletes\n\t if (queue.length) {\n\t _again = true;\n\t continue _function;\n\t }\n\t // dev tool hook\n\t /* istanbul ignore if */\n\t if (devtools && config.devtools) {\n\t devtools.emit('flush');\n\t }\n\t resetBatcherState();\n\t }\n\t}\n\t\n\t/**\n\t * Run the watchers in a single queue.\n\t *\n\t * @param {Array} queue\n\t */\n\t\n\tfunction runBatcherQueue(queue) {\n\t // do not cache length because more watchers might be pushed\n\t // as we run existing watchers\n\t for (var i = 0; i < queue.length; i++) {\n\t var watcher = queue[i];\n\t var id = watcher.id;\n\t has[id] = null;\n\t watcher.run();\n\t // in dev build, check and stop circular updates.\n\t if (false) {\n\t circular[id] = (circular[id] || 0) + 1;\n\t if (circular[id] > config._maxUpdateCount) {\n\t warn('You may have an infinite update loop for watcher ' + 'with expression \"' + watcher.expression + '\"', watcher.vm);\n\t break;\n\t }\n\t }\n\t }\n\t queue.length = 0;\n\t}\n\t\n\t/**\n\t * Push a watcher into the watcher queue.\n\t * Jobs with duplicate IDs will be skipped unless it's\n\t * pushed when the queue is being flushed.\n\t *\n\t * @param {Watcher} watcher\n\t * properties:\n\t * - {Number} id\n\t * - {Function} run\n\t */\n\t\n\tfunction pushWatcher(watcher) {\n\t var id = watcher.id;\n\t if (has[id] == null) {\n\t // push watcher into appropriate queue\n\t var q = watcher.user ? userQueue : queue;\n\t has[id] = q.length;\n\t q.push(watcher);\n\t // queue the flush\n\t if (!waiting) {\n\t waiting = true;\n\t nextTick(flushBatcherQueue);\n\t }\n\t }\n\t}\n\t\n\tvar uid$2 = 0;\n\t\n\t/**\n\t * A watcher parses an expression, collects dependencies,\n\t * and fires callback when the expression value changes.\n\t * This is used for both the $watch() api and directives.\n\t *\n\t * @param {Vue} vm\n\t * @param {String|Function} expOrFn\n\t * @param {Function} cb\n\t * @param {Object} options\n\t * - {Array} filters\n\t * - {Boolean} twoWay\n\t * - {Boolean} deep\n\t * - {Boolean} user\n\t * - {Boolean} sync\n\t * - {Boolean} lazy\n\t * - {Function} [preProcess]\n\t * - {Function} [postProcess]\n\t * @constructor\n\t */\n\tfunction Watcher(vm, expOrFn, cb, options) {\n\t // mix in options\n\t if (options) {\n\t extend(this, options);\n\t }\n\t var isFn = typeof expOrFn === 'function';\n\t this.vm = vm;\n\t vm._watchers.push(this);\n\t this.expression = expOrFn;\n\t this.cb = cb;\n\t this.id = ++uid$2; // uid for batching\n\t this.active = true;\n\t this.dirty = this.lazy; // for lazy watchers\n\t this.deps = [];\n\t this.newDeps = [];\n\t this.depIds = new _Set();\n\t this.newDepIds = new _Set();\n\t this.prevError = null; // for async error stacks\n\t // parse expression for getter/setter\n\t if (isFn) {\n\t this.getter = expOrFn;\n\t this.setter = undefined;\n\t } else {\n\t var res = parseExpression(expOrFn, this.twoWay);\n\t this.getter = res.get;\n\t this.setter = res.set;\n\t }\n\t this.value = this.lazy ? undefined : this.get();\n\t // state for avoiding false triggers for deep and Array\n\t // watchers during vm._digest()\n\t this.queued = this.shallow = false;\n\t}\n\t\n\t/**\n\t * Evaluate the getter, and re-collect dependencies.\n\t */\n\t\n\tWatcher.prototype.get = function () {\n\t this.beforeGet();\n\t var scope = this.scope || this.vm;\n\t var value;\n\t try {\n\t value = this.getter.call(scope, scope);\n\t } catch (e) {\n\t if (false) {\n\t warn('Error when evaluating expression ' + '\"' + this.expression + '\": ' + e.toString(), this.vm);\n\t }\n\t }\n\t // \"touch\" every property so they are all tracked as\n\t // dependencies for deep watching\n\t if (this.deep) {\n\t traverse(value);\n\t }\n\t if (this.preProcess) {\n\t value = this.preProcess(value);\n\t }\n\t if (this.filters) {\n\t value = scope._applyFilters(value, null, this.filters, false);\n\t }\n\t if (this.postProcess) {\n\t value = this.postProcess(value);\n\t }\n\t this.afterGet();\n\t return value;\n\t};\n\t\n\t/**\n\t * Set the corresponding value with the setter.\n\t *\n\t * @param {*} value\n\t */\n\t\n\tWatcher.prototype.set = function (value) {\n\t var scope = this.scope || this.vm;\n\t if (this.filters) {\n\t value = scope._applyFilters(value, this.value, this.filters, true);\n\t }\n\t try {\n\t this.setter.call(scope, scope, value);\n\t } catch (e) {\n\t if (false) {\n\t warn('Error when evaluating setter ' + '\"' + this.expression + '\": ' + e.toString(), this.vm);\n\t }\n\t }\n\t // two-way sync for v-for alias\n\t var forContext = scope.$forContext;\n\t if (forContext && forContext.alias === this.expression) {\n\t if (forContext.filters) {\n\t (\"production\") !== 'production' && warn('It seems you are using two-way binding on ' + 'a v-for alias (' + this.expression + '), and the ' + 'v-for has filters. This will not work properly. ' + 'Either remove the filters or use an array of ' + 'objects and bind to object properties instead.', this.vm);\n\t return;\n\t }\n\t forContext._withLock(function () {\n\t if (scope.$key) {\n\t // original is an object\n\t forContext.rawValue[scope.$key] = value;\n\t } else {\n\t forContext.rawValue.$set(scope.$index, value);\n\t }\n\t });\n\t }\n\t};\n\t\n\t/**\n\t * Prepare for dependency collection.\n\t */\n\t\n\tWatcher.prototype.beforeGet = function () {\n\t Dep.target = this;\n\t};\n\t\n\t/**\n\t * Add a dependency to this directive.\n\t *\n\t * @param {Dep} dep\n\t */\n\t\n\tWatcher.prototype.addDep = function (dep) {\n\t var id = dep.id;\n\t if (!this.newDepIds.has(id)) {\n\t this.newDepIds.add(id);\n\t this.newDeps.push(dep);\n\t if (!this.depIds.has(id)) {\n\t dep.addSub(this);\n\t }\n\t }\n\t};\n\t\n\t/**\n\t * Clean up for dependency collection.\n\t */\n\t\n\tWatcher.prototype.afterGet = function () {\n\t Dep.target = null;\n\t var i = this.deps.length;\n\t while (i--) {\n\t var dep = this.deps[i];\n\t if (!this.newDepIds.has(dep.id)) {\n\t dep.removeSub(this);\n\t }\n\t }\n\t var tmp = this.depIds;\n\t this.depIds = this.newDepIds;\n\t this.newDepIds = tmp;\n\t this.newDepIds.clear();\n\t tmp = this.deps;\n\t this.deps = this.newDeps;\n\t this.newDeps = tmp;\n\t this.newDeps.length = 0;\n\t};\n\t\n\t/**\n\t * Subscriber interface.\n\t * Will be called when a dependency changes.\n\t *\n\t * @param {Boolean} shallow\n\t */\n\t\n\tWatcher.prototype.update = function (shallow) {\n\t if (this.lazy) {\n\t this.dirty = true;\n\t } else if (this.sync || !config.async) {\n\t this.run();\n\t } else {\n\t // if queued, only overwrite shallow with non-shallow,\n\t // but not the other way around.\n\t this.shallow = this.queued ? shallow ? this.shallow : false : !!shallow;\n\t this.queued = true;\n\t // record before-push error stack in debug mode\n\t /* istanbul ignore if */\n\t if (false) {\n\t this.prevError = new Error('[vue] async stack trace');\n\t }\n\t pushWatcher(this);\n\t }\n\t};\n\t\n\t/**\n\t * Batcher job interface.\n\t * Will be called by the batcher.\n\t */\n\t\n\tWatcher.prototype.run = function () {\n\t if (this.active) {\n\t var value = this.get();\n\t if (value !== this.value ||\n\t // Deep watchers and watchers on Object/Arrays should fire even\n\t // when the value is the same, because the value may\n\t // have mutated; but only do so if this is a\n\t // non-shallow update (caused by a vm digest).\n\t (isObject(value) || this.deep) && !this.shallow) {\n\t // set new value\n\t var oldValue = this.value;\n\t this.value = value;\n\t // in debug + async mode, when a watcher callbacks\n\t // throws, we also throw the saved before-push error\n\t // so the full cross-tick stack trace is available.\n\t var prevError = this.prevError;\n\t /* istanbul ignore if */\n\t if (false) {\n\t this.prevError = null;\n\t try {\n\t this.cb.call(this.vm, value, oldValue);\n\t } catch (e) {\n\t nextTick(function () {\n\t throw prevError;\n\t }, 0);\n\t throw e;\n\t }\n\t } else {\n\t this.cb.call(this.vm, value, oldValue);\n\t }\n\t }\n\t this.queued = this.shallow = false;\n\t }\n\t};\n\t\n\t/**\n\t * Evaluate the value of the watcher.\n\t * This only gets called for lazy watchers.\n\t */\n\t\n\tWatcher.prototype.evaluate = function () {\n\t // avoid overwriting another watcher that is being\n\t // collected.\n\t var current = Dep.target;\n\t this.value = this.get();\n\t this.dirty = false;\n\t Dep.target = current;\n\t};\n\t\n\t/**\n\t * Depend on all deps collected by this watcher.\n\t */\n\t\n\tWatcher.prototype.depend = function () {\n\t var i = this.deps.length;\n\t while (i--) {\n\t this.deps[i].depend();\n\t }\n\t};\n\t\n\t/**\n\t * Remove self from all dependencies' subcriber list.\n\t */\n\t\n\tWatcher.prototype.teardown = function () {\n\t if (this.active) {\n\t // remove self from vm's watcher list\n\t // this is a somewhat expensive operation so we skip it\n\t // if the vm is being destroyed or is performing a v-for\n\t // re-render (the watcher list is then filtered by v-for).\n\t if (!this.vm._isBeingDestroyed && !this.vm._vForRemoving) {\n\t this.vm._watchers.$remove(this);\n\t }\n\t var i = this.deps.length;\n\t while (i--) {\n\t this.deps[i].removeSub(this);\n\t }\n\t this.active = false;\n\t this.vm = this.cb = this.value = null;\n\t }\n\t};\n\t\n\t/**\n\t * Recrusively traverse an object to evoke all converted\n\t * getters, so that every nested property inside the object\n\t * is collected as a \"deep\" dependency.\n\t *\n\t * @param {*} val\n\t */\n\t\n\tvar seenObjects = new _Set();\n\tfunction traverse(val, seen) {\n\t var i = undefined,\n\t keys = undefined;\n\t if (!seen) {\n\t seen = seenObjects;\n\t seen.clear();\n\t }\n\t var isA = isArray(val);\n\t var isO = isObject(val);\n\t if ((isA || isO) && Object.isExtensible(val)) {\n\t if (val.__ob__) {\n\t var depId = val.__ob__.dep.id;\n\t if (seen.has(depId)) {\n\t return;\n\t } else {\n\t seen.add(depId);\n\t }\n\t }\n\t if (isA) {\n\t i = val.length;\n\t while (i--) traverse(val[i], seen);\n\t } else if (isO) {\n\t keys = Object.keys(val);\n\t i = keys.length;\n\t while (i--) traverse(val[keys[i]], seen);\n\t }\n\t }\n\t}\n\t\n\tvar text$1 = {\n\t\n\t bind: function bind() {\n\t this.attr = this.el.nodeType === 3 ? 'data' : 'textContent';\n\t },\n\t\n\t update: function update(value) {\n\t this.el[this.attr] = _toString(value);\n\t }\n\t};\n\t\n\tvar templateCache = new Cache(1000);\n\tvar idSelectorCache = new Cache(1000);\n\t\n\tvar map = {\n\t efault: [0, '', ''],\n\t legend: [1, '
', '
'],\n\t tr: [2, '', '
'],\n\t col: [2, '', '
']\n\t};\n\t\n\tmap.td = map.th = [3, '', '
'];\n\t\n\tmap.option = map.optgroup = [1, ''];\n\t\n\tmap.thead = map.tbody = map.colgroup = map.caption = map.tfoot = [1, '', '
'];\n\t\n\tmap.g = map.defs = map.symbol = map.use = map.image = map.text = map.circle = map.ellipse = map.line = map.path = map.polygon = map.polyline = map.rect = [1, '', ''];\n\t\n\t/**\n\t * Check if a node is a supported template node with a\n\t * DocumentFragment content.\n\t *\n\t * @param {Node} node\n\t * @return {Boolean}\n\t */\n\t\n\tfunction isRealTemplate(node) {\n\t return isTemplate(node) && isFragment(node.content);\n\t}\n\t\n\tvar tagRE$1 = /<([\\w:-]+)/;\n\tvar entityRE = /&#?\\w+?;/;\n\tvar commentRE = / always true\n\t return true;\n\t } else if (number < 10) {\n\t // Only 1 digit\n\t if (4 <= number && number <= 7) {\n\t return true;\n\t }\n\t return false;\n\t } else if (number < 100) {\n\t // 2 digits\n\t var lastDigit = number % 10, firstDigit = number / 10;\n\t if (lastDigit === 0) {\n\t return eifelerRegelAppliesToNumber(firstDigit);\n\t }\n\t return eifelerRegelAppliesToNumber(lastDigit);\n\t } else if (number < 10000) {\n\t // 3 or 4 digits --> recursively check first digit\n\t while (number >= 10) {\n\t number = number / 10;\n\t }\n\t return eifelerRegelAppliesToNumber(number);\n\t } else {\n\t // Anything larger than 4 digits: recursively check first n-3 digits\n\t number = number / 1000;\n\t return eifelerRegelAppliesToNumber(number);\n\t }\n\t }\n\t\n\t var lb = moment.defineLocale('lb', {\n\t months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n\t monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n\t monthsParseExact : true,\n\t weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n\t weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n\t weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat: {\n\t LT: 'H:mm [Auer]',\n\t LTS: 'H:mm:ss [Auer]',\n\t L: 'DD.MM.YYYY',\n\t LL: 'D. MMMM YYYY',\n\t LLL: 'D. MMMM YYYY H:mm [Auer]',\n\t LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n\t },\n\t calendar: {\n\t sameDay: '[Haut um] LT',\n\t sameElse: 'L',\n\t nextDay: '[Muer um] LT',\n\t nextWeek: 'dddd [um] LT',\n\t lastDay: '[Gëschter um] LT',\n\t lastWeek: function () {\n\t // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n\t switch (this.day()) {\n\t case 2:\n\t case 4:\n\t return '[Leschten] dddd [um] LT';\n\t default:\n\t return '[Leschte] dddd [um] LT';\n\t }\n\t }\n\t },\n\t relativeTime : {\n\t future : processFutureTime,\n\t past : processPastTime,\n\t s : 'e puer Sekonnen',\n\t m : processRelativeTime,\n\t mm : '%d Minutten',\n\t h : processRelativeTime,\n\t hh : '%d Stonnen',\n\t d : processRelativeTime,\n\t dd : '%d Deeg',\n\t M : processRelativeTime,\n\t MM : '%d Méint',\n\t y : processRelativeTime,\n\t yy : '%d Joer'\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal: '%d.',\n\t week: {\n\t dow: 1, // Monday is the first day of the week.\n\t doy: 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return lb;\n\t\n\t}));\n\n/***/ },\n/* 141 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Lao [lo]\n\t//! author : Ryan Hart : https://github.com/ryanhart2\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var lo = moment.defineLocale('lo', {\n\t months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n\t monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n\t weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n\t weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n\t weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'ວັນdddd D MMMM YYYY HH:mm'\n\t },\n\t meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n\t isPM: function (input) {\n\t return input === 'ຕອນແລງ';\n\t },\n\t meridiem : function (hour, minute, isLower) {\n\t if (hour < 12) {\n\t return 'ຕອນເຊົ້າ';\n\t } else {\n\t return 'ຕອນແລງ';\n\t }\n\t },\n\t calendar : {\n\t sameDay : '[ມື້ນີ້ເວລາ] LT',\n\t nextDay : '[ມື້ອື່ນເວລາ] LT',\n\t nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',\n\t lastDay : '[ມື້ວານນີ້ເວລາ] LT',\n\t lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'ອີກ %s',\n\t past : '%sຜ່ານມາ',\n\t s : 'ບໍ່ເທົ່າໃດວິນາທີ',\n\t m : '1 ນາທີ',\n\t mm : '%d ນາທີ',\n\t h : '1 ຊົ່ວໂມງ',\n\t hh : '%d ຊົ່ວໂມງ',\n\t d : '1 ມື້',\n\t dd : '%d ມື້',\n\t M : '1 ເດືອນ',\n\t MM : '%d ເດືອນ',\n\t y : '1 ປີ',\n\t yy : '%d ປີ'\n\t },\n\t ordinalParse: /(ທີ່)\\d{1,2}/,\n\t ordinal : function (number) {\n\t return 'ທີ່' + number;\n\t }\n\t });\n\t\n\t return lo;\n\t\n\t}));\n\n/***/ },\n/* 142 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Lithuanian [lt]\n\t//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var units = {\n\t 'm' : 'minutė_minutės_minutę',\n\t 'mm': 'minutės_minučių_minutes',\n\t 'h' : 'valanda_valandos_valandą',\n\t 'hh': 'valandos_valandų_valandas',\n\t 'd' : 'diena_dienos_dieną',\n\t 'dd': 'dienos_dienų_dienas',\n\t 'M' : 'mėnuo_mėnesio_mėnesį',\n\t 'MM': 'mėnesiai_mėnesių_mėnesius',\n\t 'y' : 'metai_metų_metus',\n\t 'yy': 'metai_metų_metus'\n\t };\n\t function translateSeconds(number, withoutSuffix, key, isFuture) {\n\t if (withoutSuffix) {\n\t return 'kelios sekundės';\n\t } else {\n\t return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n\t }\n\t }\n\t function translateSingular(number, withoutSuffix, key, isFuture) {\n\t return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);\n\t }\n\t function special(number) {\n\t return number % 10 === 0 || (number > 10 && number < 20);\n\t }\n\t function forms(key) {\n\t return units[key].split('_');\n\t }\n\t function translate(number, withoutSuffix, key, isFuture) {\n\t var result = number + ' ';\n\t if (number === 1) {\n\t return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n\t } else if (withoutSuffix) {\n\t return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n\t } else {\n\t if (isFuture) {\n\t return result + forms(key)[1];\n\t } else {\n\t return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n\t }\n\t }\n\t }\n\t var lt = moment.defineLocale('lt', {\n\t months : {\n\t format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n\t standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n\t isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s+)+D[oD]?/\n\t },\n\t monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n\t weekdays : {\n\t format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n\t standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n\t isFormat: /dddd HH:mm/\n\t },\n\t weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n\t weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'YYYY-MM-DD',\n\t LL : 'YYYY [m.] MMMM D [d.]',\n\t LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n\t LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n\t l : 'YYYY-MM-DD',\n\t ll : 'YYYY [m.] MMMM D [d.]',\n\t lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n\t llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n\t },\n\t calendar : {\n\t sameDay : '[Šiandien] LT',\n\t nextDay : '[Rytoj] LT',\n\t nextWeek : 'dddd LT',\n\t lastDay : '[Vakar] LT',\n\t lastWeek : '[Praėjusį] dddd LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'po %s',\n\t past : 'prieš %s',\n\t s : translateSeconds,\n\t m : translateSingular,\n\t mm : translate,\n\t h : translateSingular,\n\t hh : translate,\n\t d : translateSingular,\n\t dd : translate,\n\t M : translateSingular,\n\t MM : translate,\n\t y : translateSingular,\n\t yy : translate\n\t },\n\t ordinalParse: /\\d{1,2}-oji/,\n\t ordinal : function (number) {\n\t return number + '-oji';\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return lt;\n\t\n\t}));\n\n/***/ },\n/* 143 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Latvian [lv]\n\t//! author : Kristaps Karlsons : https://github.com/skakri\n\t//! author : Jānis Elmeris : https://github.com/JanisE\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var units = {\n\t 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n\t 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n\t 'h': 'stundas_stundām_stunda_stundas'.split('_'),\n\t 'hh': 'stundas_stundām_stunda_stundas'.split('_'),\n\t 'd': 'dienas_dienām_diena_dienas'.split('_'),\n\t 'dd': 'dienas_dienām_diena_dienas'.split('_'),\n\t 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n\t 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n\t 'y': 'gada_gadiem_gads_gadi'.split('_'),\n\t 'yy': 'gada_gadiem_gads_gadi'.split('_')\n\t };\n\t /**\n\t * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n\t */\n\t function format(forms, number, withoutSuffix) {\n\t if (withoutSuffix) {\n\t // E.g. \"21 minūte\", \"3 minūtes\".\n\t return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n\t } else {\n\t // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n\t // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n\t return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n\t }\n\t }\n\t function relativeTimeWithPlural(number, withoutSuffix, key) {\n\t return number + ' ' + format(units[key], number, withoutSuffix);\n\t }\n\t function relativeTimeWithSingular(number, withoutSuffix, key) {\n\t return format(units[key], number, withoutSuffix);\n\t }\n\t function relativeSeconds(number, withoutSuffix) {\n\t return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n\t }\n\t\n\t var lv = moment.defineLocale('lv', {\n\t months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n\t monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n\t weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n\t weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),\n\t weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD.MM.YYYY.',\n\t LL : 'YYYY. [gada] D. MMMM',\n\t LLL : 'YYYY. [gada] D. MMMM, HH:mm',\n\t LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n\t },\n\t calendar : {\n\t sameDay : '[Šodien pulksten] LT',\n\t nextDay : '[Rīt pulksten] LT',\n\t nextWeek : 'dddd [pulksten] LT',\n\t lastDay : '[Vakar pulksten] LT',\n\t lastWeek : '[Pagājušā] dddd [pulksten] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'pēc %s',\n\t past : 'pirms %s',\n\t s : relativeSeconds,\n\t m : relativeTimeWithSingular,\n\t mm : relativeTimeWithPlural,\n\t h : relativeTimeWithSingular,\n\t hh : relativeTimeWithPlural,\n\t d : relativeTimeWithSingular,\n\t dd : relativeTimeWithPlural,\n\t M : relativeTimeWithSingular,\n\t MM : relativeTimeWithPlural,\n\t y : relativeTimeWithSingular,\n\t yy : relativeTimeWithPlural\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return lv;\n\t\n\t}));\n\n/***/ },\n/* 144 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Montenegrin [me]\n\t//! author : Miodrag Nikač : https://github.com/miodragnikac\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var translator = {\n\t words: { //Different grammatical cases\n\t m: ['jedan minut', 'jednog minuta'],\n\t mm: ['minut', 'minuta', 'minuta'],\n\t h: ['jedan sat', 'jednog sata'],\n\t hh: ['sat', 'sata', 'sati'],\n\t dd: ['dan', 'dana', 'dana'],\n\t MM: ['mjesec', 'mjeseca', 'mjeseci'],\n\t yy: ['godina', 'godine', 'godina']\n\t },\n\t correctGrammaticalCase: function (number, wordKey) {\n\t return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n\t },\n\t translate: function (number, withoutSuffix, key) {\n\t var wordKey = translator.words[key];\n\t if (key.length === 1) {\n\t return withoutSuffix ? wordKey[0] : wordKey[1];\n\t } else {\n\t return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n\t }\n\t }\n\t };\n\t\n\t var me = moment.defineLocale('me', {\n\t months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n\t monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n\t monthsParseExact : true,\n\t weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n\t weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n\t weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat: {\n\t LT: 'H:mm',\n\t LTS : 'H:mm:ss',\n\t L: 'DD. MM. YYYY',\n\t LL: 'D. MMMM YYYY',\n\t LLL: 'D. MMMM YYYY H:mm',\n\t LLLL: 'dddd, D. MMMM YYYY H:mm'\n\t },\n\t calendar: {\n\t sameDay: '[danas u] LT',\n\t nextDay: '[sjutra u] LT',\n\t\n\t nextWeek: function () {\n\t switch (this.day()) {\n\t case 0:\n\t return '[u] [nedjelju] [u] LT';\n\t case 3:\n\t return '[u] [srijedu] [u] LT';\n\t case 6:\n\t return '[u] [subotu] [u] LT';\n\t case 1:\n\t case 2:\n\t case 4:\n\t case 5:\n\t return '[u] dddd [u] LT';\n\t }\n\t },\n\t lastDay : '[juče u] LT',\n\t lastWeek : function () {\n\t var lastWeekDays = [\n\t '[prošle] [nedjelje] [u] LT',\n\t '[prošlog] [ponedjeljka] [u] LT',\n\t '[prošlog] [utorka] [u] LT',\n\t '[prošle] [srijede] [u] LT',\n\t '[prošlog] [četvrtka] [u] LT',\n\t '[prošlog] [petka] [u] LT',\n\t '[prošle] [subote] [u] LT'\n\t ];\n\t return lastWeekDays[this.day()];\n\t },\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'za %s',\n\t past : 'prije %s',\n\t s : 'nekoliko sekundi',\n\t m : translator.translate,\n\t mm : translator.translate,\n\t h : translator.translate,\n\t hh : translator.translate,\n\t d : 'dan',\n\t dd : translator.translate,\n\t M : 'mjesec',\n\t MM : translator.translate,\n\t y : 'godinu',\n\t yy : translator.translate\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return me;\n\t\n\t}));\n\n/***/ },\n/* 145 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Macedonian [mk]\n\t//! author : Borislav Mickov : https://github.com/B0k0\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var mk = moment.defineLocale('mk', {\n\t months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n\t monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n\t weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\n\t weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n\t weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n\t longDateFormat : {\n\t LT : 'H:mm',\n\t LTS : 'H:mm:ss',\n\t L : 'D.MM.YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY H:mm',\n\t LLLL : 'dddd, D MMMM YYYY H:mm'\n\t },\n\t calendar : {\n\t sameDay : '[Денес во] LT',\n\t nextDay : '[Утре во] LT',\n\t nextWeek : '[Во] dddd [во] LT',\n\t lastDay : '[Вчера во] LT',\n\t lastWeek : function () {\n\t switch (this.day()) {\n\t case 0:\n\t case 3:\n\t case 6:\n\t return '[Изминатата] dddd [во] LT';\n\t case 1:\n\t case 2:\n\t case 4:\n\t case 5:\n\t return '[Изминатиот] dddd [во] LT';\n\t }\n\t },\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'после %s',\n\t past : 'пред %s',\n\t s : 'неколку секунди',\n\t m : 'минута',\n\t mm : '%d минути',\n\t h : 'час',\n\t hh : '%d часа',\n\t d : 'ден',\n\t dd : '%d дена',\n\t M : 'месец',\n\t MM : '%d месеци',\n\t y : 'година',\n\t yy : '%d години'\n\t },\n\t ordinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n\t ordinal : function (number) {\n\t var lastDigit = number % 10,\n\t last2Digits = number % 100;\n\t if (number === 0) {\n\t return number + '-ев';\n\t } else if (last2Digits === 0) {\n\t return number + '-ен';\n\t } else if (last2Digits > 10 && last2Digits < 20) {\n\t return number + '-ти';\n\t } else if (lastDigit === 1) {\n\t return number + '-ви';\n\t } else if (lastDigit === 2) {\n\t return number + '-ри';\n\t } else if (lastDigit === 7 || lastDigit === 8) {\n\t return number + '-ми';\n\t } else {\n\t return number + '-ти';\n\t }\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return mk;\n\t\n\t}));\n\n/***/ },\n/* 146 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Malayalam [ml]\n\t//! author : Floyd Pink : https://github.com/floydpink\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var ml = moment.defineLocale('ml', {\n\t months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n\t monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\n\t monthsParseExact : true,\n\t weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),\n\t weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n\t weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n\t longDateFormat : {\n\t LT : 'A h:mm -നു',\n\t LTS : 'A h:mm:ss -നു',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY, A h:mm -നു',\n\t LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'\n\t },\n\t calendar : {\n\t sameDay : '[ഇന്ന്] LT',\n\t nextDay : '[നാളെ] LT',\n\t nextWeek : 'dddd, LT',\n\t lastDay : '[ഇന്നലെ] LT',\n\t lastWeek : '[കഴിഞ്ഞ] dddd, LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : '%s കഴിഞ്ഞ്',\n\t past : '%s മുൻപ്',\n\t s : 'അൽപ നിമിഷങ്ങൾ',\n\t m : 'ഒരു മിനിറ്റ്',\n\t mm : '%d മിനിറ്റ്',\n\t h : 'ഒരു മണിക്കൂർ',\n\t hh : '%d മണിക്കൂർ',\n\t d : 'ഒരു ദിവസം',\n\t dd : '%d ദിവസം',\n\t M : 'ഒരു മാസം',\n\t MM : '%d മാസം',\n\t y : 'ഒരു വർഷം',\n\t yy : '%d വർഷം'\n\t },\n\t meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n\t meridiemHour : function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if ((meridiem === 'രാത്രി' && hour >= 4) ||\n\t meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n\t meridiem === 'വൈകുന്നേരം') {\n\t return hour + 12;\n\t } else {\n\t return hour;\n\t }\n\t },\n\t meridiem : function (hour, minute, isLower) {\n\t if (hour < 4) {\n\t return 'രാത്രി';\n\t } else if (hour < 12) {\n\t return 'രാവിലെ';\n\t } else if (hour < 17) {\n\t return 'ഉച്ച കഴിഞ്ഞ്';\n\t } else if (hour < 20) {\n\t return 'വൈകുന്നേരം';\n\t } else {\n\t return 'രാത്രി';\n\t }\n\t }\n\t });\n\t\n\t return ml;\n\t\n\t}));\n\n/***/ },\n/* 147 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Marathi [mr]\n\t//! author : Harshad Kale : https://github.com/kalehv\n\t//! author : Vivek Athalye : https://github.com/vnathalye\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var symbolMap = {\n\t '1': '१',\n\t '2': '२',\n\t '3': '३',\n\t '4': '४',\n\t '5': '५',\n\t '6': '६',\n\t '7': '७',\n\t '8': '८',\n\t '9': '९',\n\t '0': '०'\n\t },\n\t numberMap = {\n\t '१': '1',\n\t '२': '2',\n\t '३': '3',\n\t '४': '4',\n\t '५': '5',\n\t '६': '6',\n\t '७': '7',\n\t '८': '8',\n\t '९': '9',\n\t '०': '0'\n\t };\n\t\n\t function relativeTimeMr(number, withoutSuffix, string, isFuture)\n\t {\n\t var output = '';\n\t if (withoutSuffix) {\n\t switch (string) {\n\t case 's': output = 'काही सेकंद'; break;\n\t case 'm': output = 'एक मिनिट'; break;\n\t case 'mm': output = '%d मिनिटे'; break;\n\t case 'h': output = 'एक तास'; break;\n\t case 'hh': output = '%d तास'; break;\n\t case 'd': output = 'एक दिवस'; break;\n\t case 'dd': output = '%d दिवस'; break;\n\t case 'M': output = 'एक महिना'; break;\n\t case 'MM': output = '%d महिने'; break;\n\t case 'y': output = 'एक वर्ष'; break;\n\t case 'yy': output = '%d वर्षे'; break;\n\t }\n\t }\n\t else {\n\t switch (string) {\n\t case 's': output = 'काही सेकंदां'; break;\n\t case 'm': output = 'एका मिनिटा'; break;\n\t case 'mm': output = '%d मिनिटां'; break;\n\t case 'h': output = 'एका तासा'; break;\n\t case 'hh': output = '%d तासां'; break;\n\t case 'd': output = 'एका दिवसा'; break;\n\t case 'dd': output = '%d दिवसां'; break;\n\t case 'M': output = 'एका महिन्या'; break;\n\t case 'MM': output = '%d महिन्यां'; break;\n\t case 'y': output = 'एका वर्षा'; break;\n\t case 'yy': output = '%d वर्षां'; break;\n\t }\n\t }\n\t return output.replace(/%d/i, number);\n\t }\n\t\n\t var mr = moment.defineLocale('mr', {\n\t months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n\t monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n\t monthsParseExact : true,\n\t weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n\t weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n\t weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),\n\t longDateFormat : {\n\t LT : 'A h:mm वाजता',\n\t LTS : 'A h:mm:ss वाजता',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY, A h:mm वाजता',\n\t LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'\n\t },\n\t calendar : {\n\t sameDay : '[आज] LT',\n\t nextDay : '[उद्या] LT',\n\t nextWeek : 'dddd, LT',\n\t lastDay : '[काल] LT',\n\t lastWeek: '[मागील] dddd, LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future: '%sमध्ये',\n\t past: '%sपूर्वी',\n\t s: relativeTimeMr,\n\t m: relativeTimeMr,\n\t mm: relativeTimeMr,\n\t h: relativeTimeMr,\n\t hh: relativeTimeMr,\n\t d: relativeTimeMr,\n\t dd: relativeTimeMr,\n\t M: relativeTimeMr,\n\t MM: relativeTimeMr,\n\t y: relativeTimeMr,\n\t yy: relativeTimeMr\n\t },\n\t preparse: function (string) {\n\t return string.replace(/[१२३४५६७८९०]/g, function (match) {\n\t return numberMap[match];\n\t });\n\t },\n\t postformat: function (string) {\n\t return string.replace(/\\d/g, function (match) {\n\t return symbolMap[match];\n\t });\n\t },\n\t meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,\n\t meridiemHour : function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if (meridiem === 'रात्री') {\n\t return hour < 4 ? hour : hour + 12;\n\t } else if (meridiem === 'सकाळी') {\n\t return hour;\n\t } else if (meridiem === 'दुपारी') {\n\t return hour >= 10 ? hour : hour + 12;\n\t } else if (meridiem === 'सायंकाळी') {\n\t return hour + 12;\n\t }\n\t },\n\t meridiem: function (hour, minute, isLower) {\n\t if (hour < 4) {\n\t return 'रात्री';\n\t } else if (hour < 10) {\n\t return 'सकाळी';\n\t } else if (hour < 17) {\n\t return 'दुपारी';\n\t } else if (hour < 20) {\n\t return 'सायंकाळी';\n\t } else {\n\t return 'रात्री';\n\t }\n\t },\n\t week : {\n\t dow : 0, // Sunday is the first day of the week.\n\t doy : 6 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return mr;\n\t\n\t}));\n\n/***/ },\n/* 148 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Malay [ms-my]\n\t//! note : DEPRECATED, the correct one is [ms]\n\t//! author : Weldan Jamili : https://github.com/weldan\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var ms_my = moment.defineLocale('ms-my', {\n\t months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n\t monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n\t weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n\t weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n\t weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH.mm',\n\t LTS : 'HH.mm.ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY [pukul] HH.mm',\n\t LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n\t },\n\t meridiemParse: /pagi|tengahari|petang|malam/,\n\t meridiemHour: function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if (meridiem === 'pagi') {\n\t return hour;\n\t } else if (meridiem === 'tengahari') {\n\t return hour >= 11 ? hour : hour + 12;\n\t } else if (meridiem === 'petang' || meridiem === 'malam') {\n\t return hour + 12;\n\t }\n\t },\n\t meridiem : function (hours, minutes, isLower) {\n\t if (hours < 11) {\n\t return 'pagi';\n\t } else if (hours < 15) {\n\t return 'tengahari';\n\t } else if (hours < 19) {\n\t return 'petang';\n\t } else {\n\t return 'malam';\n\t }\n\t },\n\t calendar : {\n\t sameDay : '[Hari ini pukul] LT',\n\t nextDay : '[Esok pukul] LT',\n\t nextWeek : 'dddd [pukul] LT',\n\t lastDay : '[Kelmarin pukul] LT',\n\t lastWeek : 'dddd [lepas pukul] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'dalam %s',\n\t past : '%s yang lepas',\n\t s : 'beberapa saat',\n\t m : 'seminit',\n\t mm : '%d minit',\n\t h : 'sejam',\n\t hh : '%d jam',\n\t d : 'sehari',\n\t dd : '%d hari',\n\t M : 'sebulan',\n\t MM : '%d bulan',\n\t y : 'setahun',\n\t yy : '%d tahun'\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return ms_my;\n\t\n\t}));\n\n/***/ },\n/* 149 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Malay [ms]\n\t//! author : Weldan Jamili : https://github.com/weldan\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var ms = moment.defineLocale('ms', {\n\t months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n\t monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n\t weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n\t weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n\t weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH.mm',\n\t LTS : 'HH.mm.ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY [pukul] HH.mm',\n\t LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n\t },\n\t meridiemParse: /pagi|tengahari|petang|malam/,\n\t meridiemHour: function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if (meridiem === 'pagi') {\n\t return hour;\n\t } else if (meridiem === 'tengahari') {\n\t return hour >= 11 ? hour : hour + 12;\n\t } else if (meridiem === 'petang' || meridiem === 'malam') {\n\t return hour + 12;\n\t }\n\t },\n\t meridiem : function (hours, minutes, isLower) {\n\t if (hours < 11) {\n\t return 'pagi';\n\t } else if (hours < 15) {\n\t return 'tengahari';\n\t } else if (hours < 19) {\n\t return 'petang';\n\t } else {\n\t return 'malam';\n\t }\n\t },\n\t calendar : {\n\t sameDay : '[Hari ini pukul] LT',\n\t nextDay : '[Esok pukul] LT',\n\t nextWeek : 'dddd [pukul] LT',\n\t lastDay : '[Kelmarin pukul] LT',\n\t lastWeek : 'dddd [lepas pukul] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'dalam %s',\n\t past : '%s yang lepas',\n\t s : 'beberapa saat',\n\t m : 'seminit',\n\t mm : '%d minit',\n\t h : 'sejam',\n\t hh : '%d jam',\n\t d : 'sehari',\n\t dd : '%d hari',\n\t M : 'sebulan',\n\t MM : '%d bulan',\n\t y : 'setahun',\n\t yy : '%d tahun'\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return ms;\n\t\n\t}));\n\n/***/ },\n/* 150 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Burmese [my]\n\t//! author : Squar team, mysquar.com\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var symbolMap = {\n\t '1': '၁',\n\t '2': '၂',\n\t '3': '၃',\n\t '4': '၄',\n\t '5': '၅',\n\t '6': '၆',\n\t '7': '၇',\n\t '8': '၈',\n\t '9': '၉',\n\t '0': '၀'\n\t }, numberMap = {\n\t '၁': '1',\n\t '၂': '2',\n\t '၃': '3',\n\t '၄': '4',\n\t '၅': '5',\n\t '၆': '6',\n\t '၇': '7',\n\t '၈': '8',\n\t '၉': '9',\n\t '၀': '0'\n\t };\n\t\n\t var my = moment.defineLocale('my', {\n\t months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),\n\t monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n\t weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),\n\t weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\t weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\t\n\t longDateFormat: {\n\t LT: 'HH:mm',\n\t LTS: 'HH:mm:ss',\n\t L: 'DD/MM/YYYY',\n\t LL: 'D MMMM YYYY',\n\t LLL: 'D MMMM YYYY HH:mm',\n\t LLLL: 'dddd D MMMM YYYY HH:mm'\n\t },\n\t calendar: {\n\t sameDay: '[ယနေ.] LT [မှာ]',\n\t nextDay: '[မနက်ဖြန်] LT [မှာ]',\n\t nextWeek: 'dddd LT [မှာ]',\n\t lastDay: '[မနေ.က] LT [မှာ]',\n\t lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n\t sameElse: 'L'\n\t },\n\t relativeTime: {\n\t future: 'လာမည့် %s မှာ',\n\t past: 'လွန်ခဲ့သော %s က',\n\t s: 'စက္ကန်.အနည်းငယ်',\n\t m: 'တစ်မိနစ်',\n\t mm: '%d မိနစ်',\n\t h: 'တစ်နာရီ',\n\t hh: '%d နာရီ',\n\t d: 'တစ်ရက်',\n\t dd: '%d ရက်',\n\t M: 'တစ်လ',\n\t MM: '%d လ',\n\t y: 'တစ်နှစ်',\n\t yy: '%d နှစ်'\n\t },\n\t preparse: function (string) {\n\t return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n\t return numberMap[match];\n\t });\n\t },\n\t postformat: function (string) {\n\t return string.replace(/\\d/g, function (match) {\n\t return symbolMap[match];\n\t });\n\t },\n\t week: {\n\t dow: 1, // Monday is the first day of the week.\n\t doy: 4 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return my;\n\t\n\t}));\n\n/***/ },\n/* 151 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Norwegian Bokmål [nb]\n\t//! authors : Espen Hovlandsdal : https://github.com/rexxars\n\t//! Sigurd Gartmann : https://github.com/sigurdga\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var nb = moment.defineLocale('nb', {\n\t months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n\t monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n\t monthsParseExact : true,\n\t weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n\t weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n\t weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D. MMMM YYYY',\n\t LLL : 'D. MMMM YYYY [kl.] HH:mm',\n\t LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[i dag kl.] LT',\n\t nextDay: '[i morgen kl.] LT',\n\t nextWeek: 'dddd [kl.] LT',\n\t lastDay: '[i går kl.] LT',\n\t lastWeek: '[forrige] dddd [kl.] LT',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'om %s',\n\t past : '%s siden',\n\t s : 'noen sekunder',\n\t m : 'ett minutt',\n\t mm : '%d minutter',\n\t h : 'en time',\n\t hh : '%d timer',\n\t d : 'en dag',\n\t dd : '%d dager',\n\t M : 'en måned',\n\t MM : '%d måneder',\n\t y : 'ett år',\n\t yy : '%d år'\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return nb;\n\t\n\t}));\n\n/***/ },\n/* 152 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Nepalese [ne]\n\t//! author : suvash : https://github.com/suvash\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var symbolMap = {\n\t '1': '१',\n\t '2': '२',\n\t '3': '३',\n\t '4': '४',\n\t '5': '५',\n\t '6': '६',\n\t '7': '७',\n\t '8': '८',\n\t '9': '९',\n\t '0': '०'\n\t },\n\t numberMap = {\n\t '१': '1',\n\t '२': '2',\n\t '३': '3',\n\t '४': '4',\n\t '५': '5',\n\t '६': '6',\n\t '७': '7',\n\t '८': '8',\n\t '९': '9',\n\t '०': '0'\n\t };\n\t\n\t var ne = moment.defineLocale('ne', {\n\t months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n\t monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\n\t monthsParseExact : true,\n\t weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),\n\t weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n\t weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'Aको h:mm बजे',\n\t LTS : 'Aको h:mm:ss बजे',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY, Aको h:mm बजे',\n\t LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'\n\t },\n\t preparse: function (string) {\n\t return string.replace(/[१२३४५६७८९०]/g, function (match) {\n\t return numberMap[match];\n\t });\n\t },\n\t postformat: function (string) {\n\t return string.replace(/\\d/g, function (match) {\n\t return symbolMap[match];\n\t });\n\t },\n\t meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n\t meridiemHour : function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if (meridiem === 'राति') {\n\t return hour < 4 ? hour : hour + 12;\n\t } else if (meridiem === 'बिहान') {\n\t return hour;\n\t } else if (meridiem === 'दिउँसो') {\n\t return hour >= 10 ? hour : hour + 12;\n\t } else if (meridiem === 'साँझ') {\n\t return hour + 12;\n\t }\n\t },\n\t meridiem : function (hour, minute, isLower) {\n\t if (hour < 3) {\n\t return 'राति';\n\t } else if (hour < 12) {\n\t return 'बिहान';\n\t } else if (hour < 16) {\n\t return 'दिउँसो';\n\t } else if (hour < 20) {\n\t return 'साँझ';\n\t } else {\n\t return 'राति';\n\t }\n\t },\n\t calendar : {\n\t sameDay : '[आज] LT',\n\t nextDay : '[भोलि] LT',\n\t nextWeek : '[आउँदो] dddd[,] LT',\n\t lastDay : '[हिजो] LT',\n\t lastWeek : '[गएको] dddd[,] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : '%sमा',\n\t past : '%s अगाडि',\n\t s : 'केही क्षण',\n\t m : 'एक मिनेट',\n\t mm : '%d मिनेट',\n\t h : 'एक घण्टा',\n\t hh : '%d घण्टा',\n\t d : 'एक दिन',\n\t dd : '%d दिन',\n\t M : 'एक महिना',\n\t MM : '%d महिना',\n\t y : 'एक बर्ष',\n\t yy : '%d बर्ष'\n\t },\n\t week : {\n\t dow : 0, // Sunday is the first day of the week.\n\t doy : 6 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return ne;\n\t\n\t}));\n\n/***/ },\n/* 153 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Dutch [nl]\n\t//! author : Joris Röling : https://github.com/jjupiter\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n\t monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\t\n\t var nl = moment.defineLocale('nl', {\n\t months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n\t monthsShort : function (m, format) {\n\t if (/-MMM-/.test(format)) {\n\t return monthsShortWithoutDots[m.month()];\n\t } else {\n\t return monthsShortWithDots[m.month()];\n\t }\n\t },\n\t monthsParseExact : true,\n\t weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n\t weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n\t weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD-MM-YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'dddd D MMMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[vandaag om] LT',\n\t nextDay: '[morgen om] LT',\n\t nextWeek: 'dddd [om] LT',\n\t lastDay: '[gisteren om] LT',\n\t lastWeek: '[afgelopen] dddd [om] LT',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'over %s',\n\t past : '%s geleden',\n\t s : 'een paar seconden',\n\t m : 'één minuut',\n\t mm : '%d minuten',\n\t h : 'één uur',\n\t hh : '%d uur',\n\t d : 'één dag',\n\t dd : '%d dagen',\n\t M : 'één maand',\n\t MM : '%d maanden',\n\t y : 'één jaar',\n\t yy : '%d jaar'\n\t },\n\t ordinalParse: /\\d{1,2}(ste|de)/,\n\t ordinal : function (number) {\n\t return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return nl;\n\t\n\t}));\n\n/***/ },\n/* 154 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Nynorsk [nn]\n\t//! author : https://github.com/mechuwind\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var nn = moment.defineLocale('nn', {\n\t months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n\t monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n\t weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n\t weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),\n\t weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D. MMMM YYYY',\n\t LLL : 'D. MMMM YYYY [kl.] H:mm',\n\t LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[I dag klokka] LT',\n\t nextDay: '[I morgon klokka] LT',\n\t nextWeek: 'dddd [klokka] LT',\n\t lastDay: '[I går klokka] LT',\n\t lastWeek: '[Føregåande] dddd [klokka] LT',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'om %s',\n\t past : '%s sidan',\n\t s : 'nokre sekund',\n\t m : 'eit minutt',\n\t mm : '%d minutt',\n\t h : 'ein time',\n\t hh : '%d timar',\n\t d : 'ein dag',\n\t dd : '%d dagar',\n\t M : 'ein månad',\n\t MM : '%d månader',\n\t y : 'eit år',\n\t yy : '%d år'\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return nn;\n\t\n\t}));\n\n/***/ },\n/* 155 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Punjabi (India) [pa-in]\n\t//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var symbolMap = {\n\t '1': '੧',\n\t '2': '੨',\n\t '3': '੩',\n\t '4': '੪',\n\t '5': '੫',\n\t '6': '੬',\n\t '7': '੭',\n\t '8': '੮',\n\t '9': '੯',\n\t '0': '੦'\n\t },\n\t numberMap = {\n\t '੧': '1',\n\t '੨': '2',\n\t '੩': '3',\n\t '੪': '4',\n\t '੫': '5',\n\t '੬': '6',\n\t '੭': '7',\n\t '੮': '8',\n\t '੯': '9',\n\t '੦': '0'\n\t };\n\t\n\t var pa_in = moment.defineLocale('pa-in', {\n\t // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.\n\t months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n\t monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n\t weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n\t weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n\t weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n\t longDateFormat : {\n\t LT : 'A h:mm ਵਜੇ',\n\t LTS : 'A h:mm:ss ਵਜੇ',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',\n\t LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n\t },\n\t calendar : {\n\t sameDay : '[ਅਜ] LT',\n\t nextDay : '[ਕਲ] LT',\n\t nextWeek : 'dddd, LT',\n\t lastDay : '[ਕਲ] LT',\n\t lastWeek : '[ਪਿਛਲੇ] dddd, LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : '%s ਵਿੱਚ',\n\t past : '%s ਪਿਛਲੇ',\n\t s : 'ਕੁਝ ਸਕਿੰਟ',\n\t m : 'ਇਕ ਮਿੰਟ',\n\t mm : '%d ਮਿੰਟ',\n\t h : 'ਇੱਕ ਘੰਟਾ',\n\t hh : '%d ਘੰਟੇ',\n\t d : 'ਇੱਕ ਦਿਨ',\n\t dd : '%d ਦਿਨ',\n\t M : 'ਇੱਕ ਮਹੀਨਾ',\n\t MM : '%d ਮਹੀਨੇ',\n\t y : 'ਇੱਕ ਸਾਲ',\n\t yy : '%d ਸਾਲ'\n\t },\n\t preparse: function (string) {\n\t return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n\t return numberMap[match];\n\t });\n\t },\n\t postformat: function (string) {\n\t return string.replace(/\\d/g, function (match) {\n\t return symbolMap[match];\n\t });\n\t },\n\t // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n\t // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n\t meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n\t meridiemHour : function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if (meridiem === 'ਰਾਤ') {\n\t return hour < 4 ? hour : hour + 12;\n\t } else if (meridiem === 'ਸਵੇਰ') {\n\t return hour;\n\t } else if (meridiem === 'ਦੁਪਹਿਰ') {\n\t return hour >= 10 ? hour : hour + 12;\n\t } else if (meridiem === 'ਸ਼ਾਮ') {\n\t return hour + 12;\n\t }\n\t },\n\t meridiem : function (hour, minute, isLower) {\n\t if (hour < 4) {\n\t return 'ਰਾਤ';\n\t } else if (hour < 10) {\n\t return 'ਸਵੇਰ';\n\t } else if (hour < 17) {\n\t return 'ਦੁਪਹਿਰ';\n\t } else if (hour < 20) {\n\t return 'ਸ਼ਾਮ';\n\t } else {\n\t return 'ਰਾਤ';\n\t }\n\t },\n\t week : {\n\t dow : 0, // Sunday is the first day of the week.\n\t doy : 6 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return pa_in;\n\t\n\t}));\n\n/***/ },\n/* 156 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Polish [pl]\n\t//! author : Rafal Hirsz : https://github.com/evoL\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n\t monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');\n\t function plural(n) {\n\t return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);\n\t }\n\t function translate(number, withoutSuffix, key) {\n\t var result = number + ' ';\n\t switch (key) {\n\t case 'm':\n\t return withoutSuffix ? 'minuta' : 'minutę';\n\t case 'mm':\n\t return result + (plural(number) ? 'minuty' : 'minut');\n\t case 'h':\n\t return withoutSuffix ? 'godzina' : 'godzinę';\n\t case 'hh':\n\t return result + (plural(number) ? 'godziny' : 'godzin');\n\t case 'MM':\n\t return result + (plural(number) ? 'miesiące' : 'miesięcy');\n\t case 'yy':\n\t return result + (plural(number) ? 'lata' : 'lat');\n\t }\n\t }\n\t\n\t var pl = moment.defineLocale('pl', {\n\t months : function (momentToFormat, format) {\n\t if (format === '') {\n\t // Hack: if format empty we know this is used to generate\n\t // RegExp by moment. Give then back both valid forms of months\n\t // in RegExp ready format.\n\t return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';\n\t } else if (/D MMMM/.test(format)) {\n\t return monthsSubjective[momentToFormat.month()];\n\t } else {\n\t return monthsNominative[momentToFormat.month()];\n\t }\n\t },\n\t monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n\t weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n\t weekdaysShort : 'nie_pon_wt_śr_czw_pt_sb'.split('_'),\n\t weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'dddd, D MMMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[Dziś o] LT',\n\t nextDay: '[Jutro o] LT',\n\t nextWeek: '[W] dddd [o] LT',\n\t lastDay: '[Wczoraj o] LT',\n\t lastWeek: function () {\n\t switch (this.day()) {\n\t case 0:\n\t return '[W zeszłą niedzielę o] LT';\n\t case 3:\n\t return '[W zeszłą środę o] LT';\n\t case 6:\n\t return '[W zeszłą sobotę o] LT';\n\t default:\n\t return '[W zeszły] dddd [o] LT';\n\t }\n\t },\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'za %s',\n\t past : '%s temu',\n\t s : 'kilka sekund',\n\t m : translate,\n\t mm : translate,\n\t h : translate,\n\t hh : translate,\n\t d : '1 dzień',\n\t dd : '%d dni',\n\t M : 'miesiąc',\n\t MM : translate,\n\t y : 'rok',\n\t yy : translate\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return pl;\n\t\n\t}));\n\n/***/ },\n/* 157 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Portuguese (Brazil) [pt-br]\n\t//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var pt_br = moment.defineLocale('pt-br', {\n\t months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n\t monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n\t weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n\t weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n\t weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D [de] MMMM [de] YYYY',\n\t LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',\n\t LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[Hoje às] LT',\n\t nextDay: '[Amanhã às] LT',\n\t nextWeek: 'dddd [às] LT',\n\t lastDay: '[Ontem às] LT',\n\t lastWeek: function () {\n\t return (this.day() === 0 || this.day() === 6) ?\n\t '[Último] dddd [às] LT' : // Saturday + Sunday\n\t '[Última] dddd [às] LT'; // Monday - Friday\n\t },\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'em %s',\n\t past : '%s atrás',\n\t s : 'poucos segundos',\n\t m : 'um minuto',\n\t mm : '%d minutos',\n\t h : 'uma hora',\n\t hh : '%d horas',\n\t d : 'um dia',\n\t dd : '%d dias',\n\t M : 'um mês',\n\t MM : '%d meses',\n\t y : 'um ano',\n\t yy : '%d anos'\n\t },\n\t ordinalParse: /\\d{1,2}º/,\n\t ordinal : '%dº'\n\t });\n\t\n\t return pt_br;\n\t\n\t}));\n\n/***/ },\n/* 158 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Portuguese [pt]\n\t//! author : Jefferson : https://github.com/jalex79\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var pt = moment.defineLocale('pt', {\n\t months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n\t monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n\t weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'),\n\t weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n\t weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D [de] MMMM [de] YYYY',\n\t LLL : 'D [de] MMMM [de] YYYY HH:mm',\n\t LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[Hoje às] LT',\n\t nextDay: '[Amanhã às] LT',\n\t nextWeek: 'dddd [às] LT',\n\t lastDay: '[Ontem às] LT',\n\t lastWeek: function () {\n\t return (this.day() === 0 || this.day() === 6) ?\n\t '[Último] dddd [às] LT' : // Saturday + Sunday\n\t '[Última] dddd [às] LT'; // Monday - Friday\n\t },\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'em %s',\n\t past : 'há %s',\n\t s : 'segundos',\n\t m : 'um minuto',\n\t mm : '%d minutos',\n\t h : 'uma hora',\n\t hh : '%d horas',\n\t d : 'um dia',\n\t dd : '%d dias',\n\t M : 'um mês',\n\t MM : '%d meses',\n\t y : 'um ano',\n\t yy : '%d anos'\n\t },\n\t ordinalParse: /\\d{1,2}º/,\n\t ordinal : '%dº',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return pt;\n\t\n\t}));\n\n/***/ },\n/* 159 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Romanian [ro]\n\t//! author : Vlad Gurdiga : https://github.com/gurdiga\n\t//! author : Valentin Agachi : https://github.com/avaly\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t function relativeTimeWithPlural(number, withoutSuffix, key) {\n\t var format = {\n\t 'mm': 'minute',\n\t 'hh': 'ore',\n\t 'dd': 'zile',\n\t 'MM': 'luni',\n\t 'yy': 'ani'\n\t },\n\t separator = ' ';\n\t if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n\t separator = ' de ';\n\t }\n\t return number + separator + format[key];\n\t }\n\t\n\t var ro = moment.defineLocale('ro', {\n\t months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n\t monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n\t monthsParseExact: true,\n\t weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n\t weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n\t weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n\t longDateFormat : {\n\t LT : 'H:mm',\n\t LTS : 'H:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY H:mm',\n\t LLLL : 'dddd, D MMMM YYYY H:mm'\n\t },\n\t calendar : {\n\t sameDay: '[azi la] LT',\n\t nextDay: '[mâine la] LT',\n\t nextWeek: 'dddd [la] LT',\n\t lastDay: '[ieri la] LT',\n\t lastWeek: '[fosta] dddd [la] LT',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'peste %s',\n\t past : '%s în urmă',\n\t s : 'câteva secunde',\n\t m : 'un minut',\n\t mm : relativeTimeWithPlural,\n\t h : 'o oră',\n\t hh : relativeTimeWithPlural,\n\t d : 'o zi',\n\t dd : relativeTimeWithPlural,\n\t M : 'o lună',\n\t MM : relativeTimeWithPlural,\n\t y : 'un an',\n\t yy : relativeTimeWithPlural\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return ro;\n\t\n\t}));\n\n/***/ },\n/* 160 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Russian [ru]\n\t//! author : Viktorminator : https://github.com/Viktorminator\n\t//! Author : Menelion Elensúle : https://github.com/Oire\n\t//! author : Коренберг Марк : https://github.com/socketpair\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t function plural(word, num) {\n\t var forms = word.split('_');\n\t return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n\t }\n\t function relativeTimeWithPlural(number, withoutSuffix, key) {\n\t var format = {\n\t 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n\t 'hh': 'час_часа_часов',\n\t 'dd': 'день_дня_дней',\n\t 'MM': 'месяц_месяца_месяцев',\n\t 'yy': 'год_года_лет'\n\t };\n\t if (key === 'm') {\n\t return withoutSuffix ? 'минута' : 'минуту';\n\t }\n\t else {\n\t return number + ' ' + plural(format[key], +number);\n\t }\n\t }\n\t var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\n\t\n\t // http://new.gramota.ru/spravka/rules/139-prop : § 103\n\t // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n\t // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n\t var ru = moment.defineLocale('ru', {\n\t months : {\n\t format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n\t standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n\t },\n\t monthsShort : {\n\t // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\n\t format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n\t standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n\t },\n\t weekdays : {\n\t standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n\t format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n\t isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\n\t },\n\t weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n\t weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n\t monthsParse : monthsParse,\n\t longMonthsParse : monthsParse,\n\t shortMonthsParse : monthsParse,\n\t\n\t // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n\t monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\t\n\t // копия предыдущего\n\t monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\t\n\t // полные названия с падежами\n\t monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\t\n\t // Выражение, которое соотвествует только сокращённым формам\n\t monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D MMMM YYYY г.',\n\t LLL : 'D MMMM YYYY г., HH:mm',\n\t LLLL : 'dddd, D MMMM YYYY г., HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[Сегодня в] LT',\n\t nextDay: '[Завтра в] LT',\n\t lastDay: '[Вчера в] LT',\n\t nextWeek: function (now) {\n\t if (now.week() !== this.week()) {\n\t switch (this.day()) {\n\t case 0:\n\t return '[В следующее] dddd [в] LT';\n\t case 1:\n\t case 2:\n\t case 4:\n\t return '[В следующий] dddd [в] LT';\n\t case 3:\n\t case 5:\n\t case 6:\n\t return '[В следующую] dddd [в] LT';\n\t }\n\t } else {\n\t if (this.day() === 2) {\n\t return '[Во] dddd [в] LT';\n\t } else {\n\t return '[В] dddd [в] LT';\n\t }\n\t }\n\t },\n\t lastWeek: function (now) {\n\t if (now.week() !== this.week()) {\n\t switch (this.day()) {\n\t case 0:\n\t return '[В прошлое] dddd [в] LT';\n\t case 1:\n\t case 2:\n\t case 4:\n\t return '[В прошлый] dddd [в] LT';\n\t case 3:\n\t case 5:\n\t case 6:\n\t return '[В прошлую] dddd [в] LT';\n\t }\n\t } else {\n\t if (this.day() === 2) {\n\t return '[Во] dddd [в] LT';\n\t } else {\n\t return '[В] dddd [в] LT';\n\t }\n\t }\n\t },\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'через %s',\n\t past : '%s назад',\n\t s : 'несколько секунд',\n\t m : relativeTimeWithPlural,\n\t mm : relativeTimeWithPlural,\n\t h : 'час',\n\t hh : relativeTimeWithPlural,\n\t d : 'день',\n\t dd : relativeTimeWithPlural,\n\t M : 'месяц',\n\t MM : relativeTimeWithPlural,\n\t y : 'год',\n\t yy : relativeTimeWithPlural\n\t },\n\t meridiemParse: /ночи|утра|дня|вечера/i,\n\t isPM : function (input) {\n\t return /^(дня|вечера)$/.test(input);\n\t },\n\t meridiem : function (hour, minute, isLower) {\n\t if (hour < 4) {\n\t return 'ночи';\n\t } else if (hour < 12) {\n\t return 'утра';\n\t } else if (hour < 17) {\n\t return 'дня';\n\t } else {\n\t return 'вечера';\n\t }\n\t },\n\t ordinalParse: /\\d{1,2}-(й|го|я)/,\n\t ordinal: function (number, period) {\n\t switch (period) {\n\t case 'M':\n\t case 'd':\n\t case 'DDD':\n\t return number + '-й';\n\t case 'D':\n\t return number + '-го';\n\t case 'w':\n\t case 'W':\n\t return number + '-я';\n\t default:\n\t return number;\n\t }\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return ru;\n\t\n\t}));\n\n/***/ },\n/* 161 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Northern Sami [se]\n\t//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t\n\t var se = moment.defineLocale('se', {\n\t months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n\t monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n\t weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n\t weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n\t weekdaysMin : 's_v_m_g_d_b_L'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'MMMM D. [b.] YYYY',\n\t LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',\n\t LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[otne ti] LT',\n\t nextDay: '[ihttin ti] LT',\n\t nextWeek: 'dddd [ti] LT',\n\t lastDay: '[ikte ti] LT',\n\t lastWeek: '[ovddit] dddd [ti] LT',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : '%s geažes',\n\t past : 'maŋit %s',\n\t s : 'moadde sekunddat',\n\t m : 'okta minuhta',\n\t mm : '%d minuhtat',\n\t h : 'okta diimmu',\n\t hh : '%d diimmut',\n\t d : 'okta beaivi',\n\t dd : '%d beaivvit',\n\t M : 'okta mánnu',\n\t MM : '%d mánut',\n\t y : 'okta jahki',\n\t yy : '%d jagit'\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return se;\n\t\n\t}));\n\n/***/ },\n/* 162 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Sinhalese [si]\n\t//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t /*jshint -W100*/\n\t var si = moment.defineLocale('si', {\n\t months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),\n\t monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),\n\t weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),\n\t weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n\t weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'a h:mm',\n\t LTS : 'a h:mm:ss',\n\t L : 'YYYY/MM/DD',\n\t LL : 'YYYY MMMM D',\n\t LLL : 'YYYY MMMM D, a h:mm',\n\t LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'\n\t },\n\t calendar : {\n\t sameDay : '[අද] LT[ට]',\n\t nextDay : '[හෙට] LT[ට]',\n\t nextWeek : 'dddd LT[ට]',\n\t lastDay : '[ඊයේ] LT[ට]',\n\t lastWeek : '[පසුගිය] dddd LT[ට]',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : '%sකින්',\n\t past : '%sකට පෙර',\n\t s : 'තත්පර කිහිපය',\n\t m : 'මිනිත්තුව',\n\t mm : 'මිනිත්තු %d',\n\t h : 'පැය',\n\t hh : 'පැය %d',\n\t d : 'දිනය',\n\t dd : 'දින %d',\n\t M : 'මාසය',\n\t MM : 'මාස %d',\n\t y : 'වසර',\n\t yy : 'වසර %d'\n\t },\n\t ordinalParse: /\\d{1,2} වැනි/,\n\t ordinal : function (number) {\n\t return number + ' වැනි';\n\t },\n\t meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n\t isPM : function (input) {\n\t return input === 'ප.ව.' || input === 'පස් වරු';\n\t },\n\t meridiem : function (hours, minutes, isLower) {\n\t if (hours > 11) {\n\t return isLower ? 'ප.ව.' : 'පස් වරු';\n\t } else {\n\t return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n\t }\n\t }\n\t });\n\t\n\t return si;\n\t\n\t}));\n\n/***/ },\n/* 163 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Slovak [sk]\n\t//! author : Martin Minka : https://github.com/k2s\n\t//! based on work of petrbela : https://github.com/petrbela\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n\t monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n\t function plural(n) {\n\t return (n > 1) && (n < 5);\n\t }\n\t function translate(number, withoutSuffix, key, isFuture) {\n\t var result = number + ' ';\n\t switch (key) {\n\t case 's': // a few seconds / in a few seconds / a few seconds ago\n\t return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';\n\t case 'm': // a minute / in a minute / a minute ago\n\t return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');\n\t case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n\t if (withoutSuffix || isFuture) {\n\t return result + (plural(number) ? 'minúty' : 'minút');\n\t } else {\n\t return result + 'minútami';\n\t }\n\t break;\n\t case 'h': // an hour / in an hour / an hour ago\n\t return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n\t case 'hh': // 9 hours / in 9 hours / 9 hours ago\n\t if (withoutSuffix || isFuture) {\n\t return result + (plural(number) ? 'hodiny' : 'hodín');\n\t } else {\n\t return result + 'hodinami';\n\t }\n\t break;\n\t case 'd': // a day / in a day / a day ago\n\t return (withoutSuffix || isFuture) ? 'deň' : 'dňom';\n\t case 'dd': // 9 days / in 9 days / 9 days ago\n\t if (withoutSuffix || isFuture) {\n\t return result + (plural(number) ? 'dni' : 'dní');\n\t } else {\n\t return result + 'dňami';\n\t }\n\t break;\n\t case 'M': // a month / in a month / a month ago\n\t return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';\n\t case 'MM': // 9 months / in 9 months / 9 months ago\n\t if (withoutSuffix || isFuture) {\n\t return result + (plural(number) ? 'mesiace' : 'mesiacov');\n\t } else {\n\t return result + 'mesiacmi';\n\t }\n\t break;\n\t case 'y': // a year / in a year / a year ago\n\t return (withoutSuffix || isFuture) ? 'rok' : 'rokom';\n\t case 'yy': // 9 years / in 9 years / 9 years ago\n\t if (withoutSuffix || isFuture) {\n\t return result + (plural(number) ? 'roky' : 'rokov');\n\t } else {\n\t return result + 'rokmi';\n\t }\n\t break;\n\t }\n\t }\n\t\n\t var sk = moment.defineLocale('sk', {\n\t months : months,\n\t monthsShort : monthsShort,\n\t weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n\t weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),\n\t weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),\n\t longDateFormat : {\n\t LT: 'H:mm',\n\t LTS : 'H:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D. MMMM YYYY',\n\t LLL : 'D. MMMM YYYY H:mm',\n\t LLLL : 'dddd D. MMMM YYYY H:mm'\n\t },\n\t calendar : {\n\t sameDay: '[dnes o] LT',\n\t nextDay: '[zajtra o] LT',\n\t nextWeek: function () {\n\t switch (this.day()) {\n\t case 0:\n\t return '[v nedeľu o] LT';\n\t case 1:\n\t case 2:\n\t return '[v] dddd [o] LT';\n\t case 3:\n\t return '[v stredu o] LT';\n\t case 4:\n\t return '[vo štvrtok o] LT';\n\t case 5:\n\t return '[v piatok o] LT';\n\t case 6:\n\t return '[v sobotu o] LT';\n\t }\n\t },\n\t lastDay: '[včera o] LT',\n\t lastWeek: function () {\n\t switch (this.day()) {\n\t case 0:\n\t return '[minulú nedeľu o] LT';\n\t case 1:\n\t case 2:\n\t return '[minulý] dddd [o] LT';\n\t case 3:\n\t return '[minulú stredu o] LT';\n\t case 4:\n\t case 5:\n\t return '[minulý] dddd [o] LT';\n\t case 6:\n\t return '[minulú sobotu o] LT';\n\t }\n\t },\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'za %s',\n\t past : 'pred %s',\n\t s : translate,\n\t m : translate,\n\t mm : translate,\n\t h : translate,\n\t hh : translate,\n\t d : translate,\n\t dd : translate,\n\t M : translate,\n\t MM : translate,\n\t y : translate,\n\t yy : translate\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return sk;\n\t\n\t}));\n\n/***/ },\n/* 164 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Slovenian [sl]\n\t//! author : Robert Sedovšek : https://github.com/sedovsek\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t function processRelativeTime(number, withoutSuffix, key, isFuture) {\n\t var result = number + ' ';\n\t switch (key) {\n\t case 's':\n\t return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n\t case 'm':\n\t return withoutSuffix ? 'ena minuta' : 'eno minuto';\n\t case 'mm':\n\t if (number === 1) {\n\t result += withoutSuffix ? 'minuta' : 'minuto';\n\t } else if (number === 2) {\n\t result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n\t } else if (number < 5) {\n\t result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n\t } else {\n\t result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n\t }\n\t return result;\n\t case 'h':\n\t return withoutSuffix ? 'ena ura' : 'eno uro';\n\t case 'hh':\n\t if (number === 1) {\n\t result += withoutSuffix ? 'ura' : 'uro';\n\t } else if (number === 2) {\n\t result += withoutSuffix || isFuture ? 'uri' : 'urama';\n\t } else if (number < 5) {\n\t result += withoutSuffix || isFuture ? 'ure' : 'urami';\n\t } else {\n\t result += withoutSuffix || isFuture ? 'ur' : 'urami';\n\t }\n\t return result;\n\t case 'd':\n\t return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n\t case 'dd':\n\t if (number === 1) {\n\t result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n\t } else if (number === 2) {\n\t result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n\t } else {\n\t result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n\t }\n\t return result;\n\t case 'M':\n\t return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n\t case 'MM':\n\t if (number === 1) {\n\t result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n\t } else if (number === 2) {\n\t result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n\t } else if (number < 5) {\n\t result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n\t } else {\n\t result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n\t }\n\t return result;\n\t case 'y':\n\t return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n\t case 'yy':\n\t if (number === 1) {\n\t result += withoutSuffix || isFuture ? 'leto' : 'letom';\n\t } else if (number === 2) {\n\t result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n\t } else if (number < 5) {\n\t result += withoutSuffix || isFuture ? 'leta' : 'leti';\n\t } else {\n\t result += withoutSuffix || isFuture ? 'let' : 'leti';\n\t }\n\t return result;\n\t }\n\t }\n\t\n\t var sl = moment.defineLocale('sl', {\n\t months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n\t monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n\t monthsParseExact: true,\n\t weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n\t weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n\t weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'H:mm',\n\t LTS : 'H:mm:ss',\n\t L : 'DD. MM. YYYY',\n\t LL : 'D. MMMM YYYY',\n\t LLL : 'D. MMMM YYYY H:mm',\n\t LLLL : 'dddd, D. MMMM YYYY H:mm'\n\t },\n\t calendar : {\n\t sameDay : '[danes ob] LT',\n\t nextDay : '[jutri ob] LT',\n\t\n\t nextWeek : function () {\n\t switch (this.day()) {\n\t case 0:\n\t return '[v] [nedeljo] [ob] LT';\n\t case 3:\n\t return '[v] [sredo] [ob] LT';\n\t case 6:\n\t return '[v] [soboto] [ob] LT';\n\t case 1:\n\t case 2:\n\t case 4:\n\t case 5:\n\t return '[v] dddd [ob] LT';\n\t }\n\t },\n\t lastDay : '[včeraj ob] LT',\n\t lastWeek : function () {\n\t switch (this.day()) {\n\t case 0:\n\t return '[prejšnjo] [nedeljo] [ob] LT';\n\t case 3:\n\t return '[prejšnjo] [sredo] [ob] LT';\n\t case 6:\n\t return '[prejšnjo] [soboto] [ob] LT';\n\t case 1:\n\t case 2:\n\t case 4:\n\t case 5:\n\t return '[prejšnji] dddd [ob] LT';\n\t }\n\t },\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'čez %s',\n\t past : 'pred %s',\n\t s : processRelativeTime,\n\t m : processRelativeTime,\n\t mm : processRelativeTime,\n\t h : processRelativeTime,\n\t hh : processRelativeTime,\n\t d : processRelativeTime,\n\t dd : processRelativeTime,\n\t M : processRelativeTime,\n\t MM : processRelativeTime,\n\t y : processRelativeTime,\n\t yy : processRelativeTime\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return sl;\n\t\n\t}));\n\n/***/ },\n/* 165 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Albanian [sq]\n\t//! author : Flakërim Ismani : https://github.com/flakerimi\n\t//! author: Menelion Elensúle: https://github.com/Oire (tests)\n\t//! author : Oerd Cukalla : https://github.com/oerd (fixes)\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var sq = moment.defineLocale('sq', {\n\t months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n\t monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n\t weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n\t weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n\t weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),\n\t weekdaysParseExact : true,\n\t meridiemParse: /PD|MD/,\n\t isPM: function (input) {\n\t return input.charAt(0) === 'M';\n\t },\n\t meridiem : function (hours, minutes, isLower) {\n\t return hours < 12 ? 'PD' : 'MD';\n\t },\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'dddd, D MMMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay : '[Sot në] LT',\n\t nextDay : '[Nesër në] LT',\n\t nextWeek : 'dddd [në] LT',\n\t lastDay : '[Dje në] LT',\n\t lastWeek : 'dddd [e kaluar në] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'në %s',\n\t past : '%s më parë',\n\t s : 'disa sekonda',\n\t m : 'një minutë',\n\t mm : '%d minuta',\n\t h : 'një orë',\n\t hh : '%d orë',\n\t d : 'një ditë',\n\t dd : '%d ditë',\n\t M : 'një muaj',\n\t MM : '%d muaj',\n\t y : 'një vit',\n\t yy : '%d vite'\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return sq;\n\t\n\t}));\n\n/***/ },\n/* 166 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Serbian Cyrillic [sr-cyrl]\n\t//! author : Milan Janačković : https://github.com/milan-j\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var translator = {\n\t words: { //Different grammatical cases\n\t m: ['један минут', 'једне минуте'],\n\t mm: ['минут', 'минуте', 'минута'],\n\t h: ['један сат', 'једног сата'],\n\t hh: ['сат', 'сата', 'сати'],\n\t dd: ['дан', 'дана', 'дана'],\n\t MM: ['месец', 'месеца', 'месеци'],\n\t yy: ['година', 'године', 'година']\n\t },\n\t correctGrammaticalCase: function (number, wordKey) {\n\t return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n\t },\n\t translate: function (number, withoutSuffix, key) {\n\t var wordKey = translator.words[key];\n\t if (key.length === 1) {\n\t return withoutSuffix ? wordKey[0] : wordKey[1];\n\t } else {\n\t return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n\t }\n\t }\n\t };\n\t\n\t var sr_cyrl = moment.defineLocale('sr-cyrl', {\n\t months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n\t monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n\t monthsParseExact: true,\n\t weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n\t weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n\t weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat: {\n\t LT: 'H:mm',\n\t LTS : 'H:mm:ss',\n\t L: 'DD. MM. YYYY',\n\t LL: 'D. MMMM YYYY',\n\t LLL: 'D. MMMM YYYY H:mm',\n\t LLLL: 'dddd, D. MMMM YYYY H:mm'\n\t },\n\t calendar: {\n\t sameDay: '[данас у] LT',\n\t nextDay: '[сутра у] LT',\n\t nextWeek: function () {\n\t switch (this.day()) {\n\t case 0:\n\t return '[у] [недељу] [у] LT';\n\t case 3:\n\t return '[у] [среду] [у] LT';\n\t case 6:\n\t return '[у] [суботу] [у] LT';\n\t case 1:\n\t case 2:\n\t case 4:\n\t case 5:\n\t return '[у] dddd [у] LT';\n\t }\n\t },\n\t lastDay : '[јуче у] LT',\n\t lastWeek : function () {\n\t var lastWeekDays = [\n\t '[прошле] [недеље] [у] LT',\n\t '[прошлог] [понедељка] [у] LT',\n\t '[прошлог] [уторка] [у] LT',\n\t '[прошле] [среде] [у] LT',\n\t '[прошлог] [четвртка] [у] LT',\n\t '[прошлог] [петка] [у] LT',\n\t '[прошле] [суботе] [у] LT'\n\t ];\n\t return lastWeekDays[this.day()];\n\t },\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'за %s',\n\t past : 'пре %s',\n\t s : 'неколико секунди',\n\t m : translator.translate,\n\t mm : translator.translate,\n\t h : translator.translate,\n\t hh : translator.translate,\n\t d : 'дан',\n\t dd : translator.translate,\n\t M : 'месец',\n\t MM : translator.translate,\n\t y : 'годину',\n\t yy : translator.translate\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return sr_cyrl;\n\t\n\t}));\n\n/***/ },\n/* 167 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Serbian [sr]\n\t//! author : Milan Janačković : https://github.com/milan-j\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var translator = {\n\t words: { //Different grammatical cases\n\t m: ['jedan minut', 'jedne minute'],\n\t mm: ['minut', 'minute', 'minuta'],\n\t h: ['jedan sat', 'jednog sata'],\n\t hh: ['sat', 'sata', 'sati'],\n\t dd: ['dan', 'dana', 'dana'],\n\t MM: ['mesec', 'meseca', 'meseci'],\n\t yy: ['godina', 'godine', 'godina']\n\t },\n\t correctGrammaticalCase: function (number, wordKey) {\n\t return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n\t },\n\t translate: function (number, withoutSuffix, key) {\n\t var wordKey = translator.words[key];\n\t if (key.length === 1) {\n\t return withoutSuffix ? wordKey[0] : wordKey[1];\n\t } else {\n\t return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n\t }\n\t }\n\t };\n\t\n\t var sr = moment.defineLocale('sr', {\n\t months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n\t monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n\t monthsParseExact: true,\n\t weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),\n\t weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n\t weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat: {\n\t LT: 'H:mm',\n\t LTS : 'H:mm:ss',\n\t L: 'DD. MM. YYYY',\n\t LL: 'D. MMMM YYYY',\n\t LLL: 'D. MMMM YYYY H:mm',\n\t LLLL: 'dddd, D. MMMM YYYY H:mm'\n\t },\n\t calendar: {\n\t sameDay: '[danas u] LT',\n\t nextDay: '[sutra u] LT',\n\t nextWeek: function () {\n\t switch (this.day()) {\n\t case 0:\n\t return '[u] [nedelju] [u] LT';\n\t case 3:\n\t return '[u] [sredu] [u] LT';\n\t case 6:\n\t return '[u] [subotu] [u] LT';\n\t case 1:\n\t case 2:\n\t case 4:\n\t case 5:\n\t return '[u] dddd [u] LT';\n\t }\n\t },\n\t lastDay : '[juče u] LT',\n\t lastWeek : function () {\n\t var lastWeekDays = [\n\t '[prošle] [nedelje] [u] LT',\n\t '[prošlog] [ponedeljka] [u] LT',\n\t '[prošlog] [utorka] [u] LT',\n\t '[prošle] [srede] [u] LT',\n\t '[prošlog] [četvrtka] [u] LT',\n\t '[prošlog] [petka] [u] LT',\n\t '[prošle] [subote] [u] LT'\n\t ];\n\t return lastWeekDays[this.day()];\n\t },\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'za %s',\n\t past : 'pre %s',\n\t s : 'nekoliko sekundi',\n\t m : translator.translate,\n\t mm : translator.translate,\n\t h : translator.translate,\n\t hh : translator.translate,\n\t d : 'dan',\n\t dd : translator.translate,\n\t M : 'mesec',\n\t MM : translator.translate,\n\t y : 'godinu',\n\t yy : translator.translate\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return sr;\n\t\n\t}));\n\n/***/ },\n/* 168 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Swazi [ss]\n\t//! author : Nicolai Davies : https://github.com/nicolaidavies\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t\n\t var ss = moment.defineLocale('ss', {\n\t months : \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n\t monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n\t weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n\t weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n\t weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'h:mm A',\n\t LTS : 'h:mm:ss A',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY h:mm A',\n\t LLLL : 'dddd, D MMMM YYYY h:mm A'\n\t },\n\t calendar : {\n\t sameDay : '[Namuhla nga] LT',\n\t nextDay : '[Kusasa nga] LT',\n\t nextWeek : 'dddd [nga] LT',\n\t lastDay : '[Itolo nga] LT',\n\t lastWeek : 'dddd [leliphelile] [nga] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'nga %s',\n\t past : 'wenteka nga %s',\n\t s : 'emizuzwana lomcane',\n\t m : 'umzuzu',\n\t mm : '%d emizuzu',\n\t h : 'lihora',\n\t hh : '%d emahora',\n\t d : 'lilanga',\n\t dd : '%d emalanga',\n\t M : 'inyanga',\n\t MM : '%d tinyanga',\n\t y : 'umnyaka',\n\t yy : '%d iminyaka'\n\t },\n\t meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n\t meridiem : function (hours, minutes, isLower) {\n\t if (hours < 11) {\n\t return 'ekuseni';\n\t } else if (hours < 15) {\n\t return 'emini';\n\t } else if (hours < 19) {\n\t return 'entsambama';\n\t } else {\n\t return 'ebusuku';\n\t }\n\t },\n\t meridiemHour : function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if (meridiem === 'ekuseni') {\n\t return hour;\n\t } else if (meridiem === 'emini') {\n\t return hour >= 11 ? hour : hour + 12;\n\t } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n\t if (hour === 0) {\n\t return 0;\n\t }\n\t return hour + 12;\n\t }\n\t },\n\t ordinalParse: /\\d{1,2}/,\n\t ordinal : '%d',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return ss;\n\t\n\t}));\n\n/***/ },\n/* 169 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Swedish [sv]\n\t//! author : Jens Alm : https://github.com/ulmus\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var sv = moment.defineLocale('sv', {\n\t months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n\t monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n\t weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n\t weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n\t weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'YYYY-MM-DD',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY [kl.] HH:mm',\n\t LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',\n\t lll : 'D MMM YYYY HH:mm',\n\t llll : 'ddd D MMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[Idag] LT',\n\t nextDay: '[Imorgon] LT',\n\t lastDay: '[Igår] LT',\n\t nextWeek: '[På] dddd LT',\n\t lastWeek: '[I] dddd[s] LT',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'om %s',\n\t past : 'för %s sedan',\n\t s : 'några sekunder',\n\t m : 'en minut',\n\t mm : '%d minuter',\n\t h : 'en timme',\n\t hh : '%d timmar',\n\t d : 'en dag',\n\t dd : '%d dagar',\n\t M : 'en månad',\n\t MM : '%d månader',\n\t y : 'ett år',\n\t yy : '%d år'\n\t },\n\t ordinalParse: /\\d{1,2}(e|a)/,\n\t ordinal : function (number) {\n\t var b = number % 10,\n\t output = (~~(number % 100 / 10) === 1) ? 'e' :\n\t (b === 1) ? 'a' :\n\t (b === 2) ? 'a' :\n\t (b === 3) ? 'e' : 'e';\n\t return number + output;\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return sv;\n\t\n\t}));\n\n/***/ },\n/* 170 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Swahili [sw]\n\t//! author : Fahad Kassim : https://github.com/fadsel\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var sw = moment.defineLocale('sw', {\n\t months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n\t monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n\t weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n\t weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n\t weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'dddd, D MMMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay : '[leo saa] LT',\n\t nextDay : '[kesho saa] LT',\n\t nextWeek : '[wiki ijayo] dddd [saat] LT',\n\t lastDay : '[jana] LT',\n\t lastWeek : '[wiki iliyopita] dddd [saat] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : '%s baadaye',\n\t past : 'tokea %s',\n\t s : 'hivi punde',\n\t m : 'dakika moja',\n\t mm : 'dakika %d',\n\t h : 'saa limoja',\n\t hh : 'masaa %d',\n\t d : 'siku moja',\n\t dd : 'masiku %d',\n\t M : 'mwezi mmoja',\n\t MM : 'miezi %d',\n\t y : 'mwaka mmoja',\n\t yy : 'miaka %d'\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return sw;\n\t\n\t}));\n\n/***/ },\n/* 171 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Tamil [ta]\n\t//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var symbolMap = {\n\t '1': '௧',\n\t '2': '௨',\n\t '3': '௩',\n\t '4': '௪',\n\t '5': '௫',\n\t '6': '௬',\n\t '7': '௭',\n\t '8': '௮',\n\t '9': '௯',\n\t '0': '௦'\n\t }, numberMap = {\n\t '௧': '1',\n\t '௨': '2',\n\t '௩': '3',\n\t '௪': '4',\n\t '௫': '5',\n\t '௬': '6',\n\t '௭': '7',\n\t '௮': '8',\n\t '௯': '9',\n\t '௦': '0'\n\t };\n\t\n\t var ta = moment.defineLocale('ta', {\n\t months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n\t monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n\t weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n\t weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n\t weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY, HH:mm',\n\t LLLL : 'dddd, D MMMM YYYY, HH:mm'\n\t },\n\t calendar : {\n\t sameDay : '[இன்று] LT',\n\t nextDay : '[நாளை] LT',\n\t nextWeek : 'dddd, LT',\n\t lastDay : '[நேற்று] LT',\n\t lastWeek : '[கடந்த வாரம்] dddd, LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : '%s இல்',\n\t past : '%s முன்',\n\t s : 'ஒரு சில விநாடிகள்',\n\t m : 'ஒரு நிமிடம்',\n\t mm : '%d நிமிடங்கள்',\n\t h : 'ஒரு மணி நேரம்',\n\t hh : '%d மணி நேரம்',\n\t d : 'ஒரு நாள்',\n\t dd : '%d நாட்கள்',\n\t M : 'ஒரு மாதம்',\n\t MM : '%d மாதங்கள்',\n\t y : 'ஒரு வருடம்',\n\t yy : '%d ஆண்டுகள்'\n\t },\n\t ordinalParse: /\\d{1,2}வது/,\n\t ordinal : function (number) {\n\t return number + 'வது';\n\t },\n\t preparse: function (string) {\n\t return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n\t return numberMap[match];\n\t });\n\t },\n\t postformat: function (string) {\n\t return string.replace(/\\d/g, function (match) {\n\t return symbolMap[match];\n\t });\n\t },\n\t // refer http://ta.wikipedia.org/s/1er1\n\t meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n\t meridiem : function (hour, minute, isLower) {\n\t if (hour < 2) {\n\t return ' யாமம்';\n\t } else if (hour < 6) {\n\t return ' வைகறை'; // வைகறை\n\t } else if (hour < 10) {\n\t return ' காலை'; // காலை\n\t } else if (hour < 14) {\n\t return ' நண்பகல்'; // நண்பகல்\n\t } else if (hour < 18) {\n\t return ' எற்பாடு'; // எற்பாடு\n\t } else if (hour < 22) {\n\t return ' மாலை'; // மாலை\n\t } else {\n\t return ' யாமம்';\n\t }\n\t },\n\t meridiemHour : function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if (meridiem === 'யாமம்') {\n\t return hour < 2 ? hour : hour + 12;\n\t } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n\t return hour;\n\t } else if (meridiem === 'நண்பகல்') {\n\t return hour >= 10 ? hour : hour + 12;\n\t } else {\n\t return hour + 12;\n\t }\n\t },\n\t week : {\n\t dow : 0, // Sunday is the first day of the week.\n\t doy : 6 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return ta;\n\t\n\t}));\n\n/***/ },\n/* 172 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Telugu [te]\n\t//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var te = moment.defineLocale('te', {\n\t months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),\n\t monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),\n\t monthsParseExact : true,\n\t weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),\n\t weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n\t weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n\t longDateFormat : {\n\t LT : 'A h:mm',\n\t LTS : 'A h:mm:ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY, A h:mm',\n\t LLLL : 'dddd, D MMMM YYYY, A h:mm'\n\t },\n\t calendar : {\n\t sameDay : '[నేడు] LT',\n\t nextDay : '[రేపు] LT',\n\t nextWeek : 'dddd, LT',\n\t lastDay : '[నిన్న] LT',\n\t lastWeek : '[గత] dddd, LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : '%s లో',\n\t past : '%s క్రితం',\n\t s : 'కొన్ని క్షణాలు',\n\t m : 'ఒక నిమిషం',\n\t mm : '%d నిమిషాలు',\n\t h : 'ఒక గంట',\n\t hh : '%d గంటలు',\n\t d : 'ఒక రోజు',\n\t dd : '%d రోజులు',\n\t M : 'ఒక నెల',\n\t MM : '%d నెలలు',\n\t y : 'ఒక సంవత్సరం',\n\t yy : '%d సంవత్సరాలు'\n\t },\n\t ordinalParse : /\\d{1,2}వ/,\n\t ordinal : '%dవ',\n\t meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n\t meridiemHour : function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if (meridiem === 'రాత్రి') {\n\t return hour < 4 ? hour : hour + 12;\n\t } else if (meridiem === 'ఉదయం') {\n\t return hour;\n\t } else if (meridiem === 'మధ్యాహ్నం') {\n\t return hour >= 10 ? hour : hour + 12;\n\t } else if (meridiem === 'సాయంత్రం') {\n\t return hour + 12;\n\t }\n\t },\n\t meridiem : function (hour, minute, isLower) {\n\t if (hour < 4) {\n\t return 'రాత్రి';\n\t } else if (hour < 10) {\n\t return 'ఉదయం';\n\t } else if (hour < 17) {\n\t return 'మధ్యాహ్నం';\n\t } else if (hour < 20) {\n\t return 'సాయంత్రం';\n\t } else {\n\t return 'రాత్రి';\n\t }\n\t },\n\t week : {\n\t dow : 0, // Sunday is the first day of the week.\n\t doy : 6 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return te;\n\t\n\t}));\n\n/***/ },\n/* 173 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Thai [th]\n\t//! author : Kridsada Thanabulpong : https://github.com/sirn\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var th = moment.defineLocale('th', {\n\t months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n\t monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n\t monthsParseExact: true,\n\t weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n\t weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n\t weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'H นาฬิกา m นาที',\n\t LTS : 'H นาฬิกา m นาที s วินาที',\n\t L : 'YYYY/MM/DD',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY เวลา H นาฬิกา m นาที',\n\t LLLL : 'วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที'\n\t },\n\t meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n\t isPM: function (input) {\n\t return input === 'หลังเที่ยง';\n\t },\n\t meridiem : function (hour, minute, isLower) {\n\t if (hour < 12) {\n\t return 'ก่อนเที่ยง';\n\t } else {\n\t return 'หลังเที่ยง';\n\t }\n\t },\n\t calendar : {\n\t sameDay : '[วันนี้ เวลา] LT',\n\t nextDay : '[พรุ่งนี้ เวลา] LT',\n\t nextWeek : 'dddd[หน้า เวลา] LT',\n\t lastDay : '[เมื่อวานนี้ เวลา] LT',\n\t lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'อีก %s',\n\t past : '%sที่แล้ว',\n\t s : 'ไม่กี่วินาที',\n\t m : '1 นาที',\n\t mm : '%d นาที',\n\t h : '1 ชั่วโมง',\n\t hh : '%d ชั่วโมง',\n\t d : '1 วัน',\n\t dd : '%d วัน',\n\t M : '1 เดือน',\n\t MM : '%d เดือน',\n\t y : '1 ปี',\n\t yy : '%d ปี'\n\t }\n\t });\n\t\n\t return th;\n\t\n\t}));\n\n/***/ },\n/* 174 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Tagalog (Philippines) [tl-ph]\n\t//! author : Dan Hagman\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var tl_ph = moment.defineLocale('tl-ph', {\n\t months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n\t monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n\t weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n\t weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n\t weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'MM/D/YYYY',\n\t LL : 'MMMM D, YYYY',\n\t LLL : 'MMMM D, YYYY HH:mm',\n\t LLLL : 'dddd, MMMM DD, YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[Ngayon sa] LT',\n\t nextDay: '[Bukas sa] LT',\n\t nextWeek: 'dddd [sa] LT',\n\t lastDay: '[Kahapon sa] LT',\n\t lastWeek: 'dddd [huling linggo] LT',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'sa loob ng %s',\n\t past : '%s ang nakalipas',\n\t s : 'ilang segundo',\n\t m : 'isang minuto',\n\t mm : '%d minuto',\n\t h : 'isang oras',\n\t hh : '%d oras',\n\t d : 'isang araw',\n\t dd : '%d araw',\n\t M : 'isang buwan',\n\t MM : '%d buwan',\n\t y : 'isang taon',\n\t yy : '%d taon'\n\t },\n\t ordinalParse: /\\d{1,2}/,\n\t ordinal : function (number) {\n\t return number;\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return tl_ph;\n\t\n\t}));\n\n/***/ },\n/* 175 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Klingon [tlh]\n\t//! author : Dominika Kruk : https://github.com/amaranthrose\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\t\n\t function translateFuture(output) {\n\t var time = output;\n\t time = (output.indexOf('jaj') !== -1) ?\n\t time.slice(0, -3) + 'leS' :\n\t (output.indexOf('jar') !== -1) ?\n\t time.slice(0, -3) + 'waQ' :\n\t (output.indexOf('DIS') !== -1) ?\n\t time.slice(0, -3) + 'nem' :\n\t time + ' pIq';\n\t return time;\n\t }\n\t\n\t function translatePast(output) {\n\t var time = output;\n\t time = (output.indexOf('jaj') !== -1) ?\n\t time.slice(0, -3) + 'Hu’' :\n\t (output.indexOf('jar') !== -1) ?\n\t time.slice(0, -3) + 'wen' :\n\t (output.indexOf('DIS') !== -1) ?\n\t time.slice(0, -3) + 'ben' :\n\t time + ' ret';\n\t return time;\n\t }\n\t\n\t function translate(number, withoutSuffix, string, isFuture) {\n\t var numberNoun = numberAsNoun(number);\n\t switch (string) {\n\t case 'mm':\n\t return numberNoun + ' tup';\n\t case 'hh':\n\t return numberNoun + ' rep';\n\t case 'dd':\n\t return numberNoun + ' jaj';\n\t case 'MM':\n\t return numberNoun + ' jar';\n\t case 'yy':\n\t return numberNoun + ' DIS';\n\t }\n\t }\n\t\n\t function numberAsNoun(number) {\n\t var hundred = Math.floor((number % 1000) / 100),\n\t ten = Math.floor((number % 100) / 10),\n\t one = number % 10,\n\t word = '';\n\t if (hundred > 0) {\n\t word += numbersNouns[hundred] + 'vatlh';\n\t }\n\t if (ten > 0) {\n\t word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';\n\t }\n\t if (one > 0) {\n\t word += ((word !== '') ? ' ' : '') + numbersNouns[one];\n\t }\n\t return (word === '') ? 'pagh' : word;\n\t }\n\t\n\t var tlh = moment.defineLocale('tlh', {\n\t months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n\t monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n\t monthsParseExact : true,\n\t weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n\t weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n\t weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'dddd, D MMMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[DaHjaj] LT',\n\t nextDay: '[wa’leS] LT',\n\t nextWeek: 'LLL',\n\t lastDay: '[wa’Hu’] LT',\n\t lastWeek: 'LLL',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : translateFuture,\n\t past : translatePast,\n\t s : 'puS lup',\n\t m : 'wa’ tup',\n\t mm : translate,\n\t h : 'wa’ rep',\n\t hh : translate,\n\t d : 'wa’ jaj',\n\t dd : translate,\n\t M : 'wa’ jar',\n\t MM : translate,\n\t y : 'wa’ DIS',\n\t yy : translate\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return tlh;\n\t\n\t}));\n\n/***/ },\n/* 176 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Turkish [tr]\n\t//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n\t//! Burak Yiğit Kaya: https://github.com/BYK\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var suffixes = {\n\t 1: '\\'inci',\n\t 5: '\\'inci',\n\t 8: '\\'inci',\n\t 70: '\\'inci',\n\t 80: '\\'inci',\n\t 2: '\\'nci',\n\t 7: '\\'nci',\n\t 20: '\\'nci',\n\t 50: '\\'nci',\n\t 3: '\\'üncü',\n\t 4: '\\'üncü',\n\t 100: '\\'üncü',\n\t 6: '\\'ncı',\n\t 9: '\\'uncu',\n\t 10: '\\'uncu',\n\t 30: '\\'uncu',\n\t 60: '\\'ıncı',\n\t 90: '\\'ıncı'\n\t };\n\t\n\t var tr = moment.defineLocale('tr', {\n\t months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n\t monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n\t weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n\t weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n\t weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'dddd, D MMMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay : '[bugün saat] LT',\n\t nextDay : '[yarın saat] LT',\n\t nextWeek : '[haftaya] dddd [saat] LT',\n\t lastDay : '[dün] LT',\n\t lastWeek : '[geçen hafta] dddd [saat] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : '%s sonra',\n\t past : '%s önce',\n\t s : 'birkaç saniye',\n\t m : 'bir dakika',\n\t mm : '%d dakika',\n\t h : 'bir saat',\n\t hh : '%d saat',\n\t d : 'bir gün',\n\t dd : '%d gün',\n\t M : 'bir ay',\n\t MM : '%d ay',\n\t y : 'bir yıl',\n\t yy : '%d yıl'\n\t },\n\t ordinalParse: /\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,\n\t ordinal : function (number) {\n\t if (number === 0) { // special case for zero\n\t return number + '\\'ıncı';\n\t }\n\t var a = number % 10,\n\t b = number % 100 - a,\n\t c = number >= 100 ? 100 : null;\n\t return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return tr;\n\t\n\t}));\n\n/***/ },\n/* 177 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Talossan [tzl]\n\t//! author : Robin van der Vliet : https://github.com/robin0van0der0v with the help of Iustì Canun\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t\n\t // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n\t // This is currently too difficult (maybe even impossible) to add.\n\t var tzl = moment.defineLocale('tzl', {\n\t months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n\t monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n\t weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n\t weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n\t weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH.mm',\n\t LTS : 'HH.mm.ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D. MMMM [dallas] YYYY',\n\t LLL : 'D. MMMM [dallas] YYYY HH.mm',\n\t LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n\t },\n\t meridiemParse: /d\\'o|d\\'a/i,\n\t isPM : function (input) {\n\t return 'd\\'o' === input.toLowerCase();\n\t },\n\t meridiem : function (hours, minutes, isLower) {\n\t if (hours > 11) {\n\t return isLower ? 'd\\'o' : 'D\\'O';\n\t } else {\n\t return isLower ? 'd\\'a' : 'D\\'A';\n\t }\n\t },\n\t calendar : {\n\t sameDay : '[oxhi à] LT',\n\t nextDay : '[demà à] LT',\n\t nextWeek : 'dddd [à] LT',\n\t lastDay : '[ieiri à] LT',\n\t lastWeek : '[sür el] dddd [lasteu à] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'osprei %s',\n\t past : 'ja%s',\n\t s : processRelativeTime,\n\t m : processRelativeTime,\n\t mm : processRelativeTime,\n\t h : processRelativeTime,\n\t hh : processRelativeTime,\n\t d : processRelativeTime,\n\t dd : processRelativeTime,\n\t M : processRelativeTime,\n\t MM : processRelativeTime,\n\t y : processRelativeTime,\n\t yy : processRelativeTime\n\t },\n\t ordinalParse: /\\d{1,2}\\./,\n\t ordinal : '%d.',\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t function processRelativeTime(number, withoutSuffix, key, isFuture) {\n\t var format = {\n\t 's': ['viensas secunds', '\\'iensas secunds'],\n\t 'm': ['\\'n míut', '\\'iens míut'],\n\t 'mm': [number + ' míuts', '' + number + ' míuts'],\n\t 'h': ['\\'n þora', '\\'iensa þora'],\n\t 'hh': [number + ' þoras', '' + number + ' þoras'],\n\t 'd': ['\\'n ziua', '\\'iensa ziua'],\n\t 'dd': [number + ' ziuas', '' + number + ' ziuas'],\n\t 'M': ['\\'n mes', '\\'iens mes'],\n\t 'MM': [number + ' mesen', '' + number + ' mesen'],\n\t 'y': ['\\'n ar', '\\'iens ar'],\n\t 'yy': [number + ' ars', '' + number + ' ars']\n\t };\n\t return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);\n\t }\n\t\n\t return tzl;\n\t\n\t}));\n\n/***/ },\n/* 178 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Central Atlas Tamazight Latin [tzm-latn]\n\t//! author : Abdel Said : https://github.com/abdelsaid\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var tzm_latn = moment.defineLocale('tzm-latn', {\n\t months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n\t monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n\t weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n\t weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n\t weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'dddd D MMMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[asdkh g] LT',\n\t nextDay: '[aska g] LT',\n\t nextWeek: 'dddd [g] LT',\n\t lastDay: '[assant g] LT',\n\t lastWeek: 'dddd [g] LT',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'dadkh s yan %s',\n\t past : 'yan %s',\n\t s : 'imik',\n\t m : 'minuḍ',\n\t mm : '%d minuḍ',\n\t h : 'saɛa',\n\t hh : '%d tassaɛin',\n\t d : 'ass',\n\t dd : '%d ossan',\n\t M : 'ayowr',\n\t MM : '%d iyyirn',\n\t y : 'asgas',\n\t yy : '%d isgasn'\n\t },\n\t week : {\n\t dow : 6, // Saturday is the first day of the week.\n\t doy : 12 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return tzm_latn;\n\t\n\t}));\n\n/***/ },\n/* 179 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Central Atlas Tamazight [tzm]\n\t//! author : Abdel Said : https://github.com/abdelsaid\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var tzm = moment.defineLocale('tzm', {\n\t months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n\t monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n\t weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n\t weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n\t weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS: 'HH:mm:ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'dddd D MMMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n\t nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n\t nextWeek: 'dddd [ⴴ] LT',\n\t lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n\t lastWeek: 'dddd [ⴴ] LT',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n\t past : 'ⵢⴰⵏ %s',\n\t s : 'ⵉⵎⵉⴽ',\n\t m : 'ⵎⵉⵏⵓⴺ',\n\t mm : '%d ⵎⵉⵏⵓⴺ',\n\t h : 'ⵙⴰⵄⴰ',\n\t hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n\t d : 'ⴰⵙⵙ',\n\t dd : '%d oⵙⵙⴰⵏ',\n\t M : 'ⴰⵢoⵓⵔ',\n\t MM : '%d ⵉⵢⵢⵉⵔⵏ',\n\t y : 'ⴰⵙⴳⴰⵙ',\n\t yy : '%d ⵉⵙⴳⴰⵙⵏ'\n\t },\n\t week : {\n\t dow : 6, // Saturday is the first day of the week.\n\t doy : 12 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return tzm;\n\t\n\t}));\n\n/***/ },\n/* 180 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Ukrainian [uk]\n\t//! author : zemlanin : https://github.com/zemlanin\n\t//! Author : Menelion Elensúle : https://github.com/Oire\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t function plural(word, num) {\n\t var forms = word.split('_');\n\t return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n\t }\n\t function relativeTimeWithPlural(number, withoutSuffix, key) {\n\t var format = {\n\t 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n\t 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n\t 'dd': 'день_дні_днів',\n\t 'MM': 'місяць_місяці_місяців',\n\t 'yy': 'рік_роки_років'\n\t };\n\t if (key === 'm') {\n\t return withoutSuffix ? 'хвилина' : 'хвилину';\n\t }\n\t else if (key === 'h') {\n\t return withoutSuffix ? 'година' : 'годину';\n\t }\n\t else {\n\t return number + ' ' + plural(format[key], +number);\n\t }\n\t }\n\t function weekdaysCaseReplace(m, format) {\n\t var weekdays = {\n\t 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n\t 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n\t 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n\t },\n\t nounCase = (/(\\[[ВвУу]\\]) ?dddd/).test(format) ?\n\t 'accusative' :\n\t ((/\\[?(?:минулої|наступної)? ?\\] ?dddd/).test(format) ?\n\t 'genitive' :\n\t 'nominative');\n\t return weekdays[nounCase][m.day()];\n\t }\n\t function processHoursFunction(str) {\n\t return function () {\n\t return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n\t };\n\t }\n\t\n\t var uk = moment.defineLocale('uk', {\n\t months : {\n\t 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n\t 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n\t },\n\t monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n\t weekdays : weekdaysCaseReplace,\n\t weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n\t weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD.MM.YYYY',\n\t LL : 'D MMMM YYYY р.',\n\t LLL : 'D MMMM YYYY р., HH:mm',\n\t LLLL : 'dddd, D MMMM YYYY р., HH:mm'\n\t },\n\t calendar : {\n\t sameDay: processHoursFunction('[Сьогодні '),\n\t nextDay: processHoursFunction('[Завтра '),\n\t lastDay: processHoursFunction('[Вчора '),\n\t nextWeek: processHoursFunction('[У] dddd ['),\n\t lastWeek: function () {\n\t switch (this.day()) {\n\t case 0:\n\t case 3:\n\t case 5:\n\t case 6:\n\t return processHoursFunction('[Минулої] dddd [').call(this);\n\t case 1:\n\t case 2:\n\t case 4:\n\t return processHoursFunction('[Минулого] dddd [').call(this);\n\t }\n\t },\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : 'за %s',\n\t past : '%s тому',\n\t s : 'декілька секунд',\n\t m : relativeTimeWithPlural,\n\t mm : relativeTimeWithPlural,\n\t h : 'годину',\n\t hh : relativeTimeWithPlural,\n\t d : 'день',\n\t dd : relativeTimeWithPlural,\n\t M : 'місяць',\n\t MM : relativeTimeWithPlural,\n\t y : 'рік',\n\t yy : relativeTimeWithPlural\n\t },\n\t // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n\t meridiemParse: /ночі|ранку|дня|вечора/,\n\t isPM: function (input) {\n\t return /^(дня|вечора)$/.test(input);\n\t },\n\t meridiem : function (hour, minute, isLower) {\n\t if (hour < 4) {\n\t return 'ночі';\n\t } else if (hour < 12) {\n\t return 'ранку';\n\t } else if (hour < 17) {\n\t return 'дня';\n\t } else {\n\t return 'вечора';\n\t }\n\t },\n\t ordinalParse: /\\d{1,2}-(й|го)/,\n\t ordinal: function (number, period) {\n\t switch (period) {\n\t case 'M':\n\t case 'd':\n\t case 'DDD':\n\t case 'w':\n\t case 'W':\n\t return number + '-й';\n\t case 'D':\n\t return number + '-го';\n\t default:\n\t return number;\n\t }\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 1st is the first week of the year.\n\t }\n\t });\n\t\n\t return uk;\n\t\n\t}));\n\n/***/ },\n/* 181 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Uzbek [uz]\n\t//! author : Sardor Muminov : https://github.com/muminoff\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var uz = moment.defineLocale('uz', {\n\t months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n\t monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n\t weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n\t weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n\t weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'D MMMM YYYY, dddd HH:mm'\n\t },\n\t calendar : {\n\t sameDay : '[Бугун соат] LT [да]',\n\t nextDay : '[Эртага] LT [да]',\n\t nextWeek : 'dddd [куни соат] LT [да]',\n\t lastDay : '[Кеча соат] LT [да]',\n\t lastWeek : '[Утган] dddd [куни соат] LT [да]',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'Якин %s ичида',\n\t past : 'Бир неча %s олдин',\n\t s : 'фурсат',\n\t m : 'бир дакика',\n\t mm : '%d дакика',\n\t h : 'бир соат',\n\t hh : '%d соат',\n\t d : 'бир кун',\n\t dd : '%d кун',\n\t M : 'бир ой',\n\t MM : '%d ой',\n\t y : 'бир йил',\n\t yy : '%d йил'\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 7 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return uz;\n\t\n\t}));\n\n/***/ },\n/* 182 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Vietnamese [vi]\n\t//! author : Bang Nguyen : https://github.com/bangnk\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var vi = moment.defineLocale('vi', {\n\t months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n\t monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n\t monthsParseExact : true,\n\t weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n\t weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n\t weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n\t weekdaysParseExact : true,\n\t meridiemParse: /sa|ch/i,\n\t isPM : function (input) {\n\t return /^ch$/i.test(input);\n\t },\n\t meridiem : function (hours, minutes, isLower) {\n\t if (hours < 12) {\n\t return isLower ? 'sa' : 'SA';\n\t } else {\n\t return isLower ? 'ch' : 'CH';\n\t }\n\t },\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t LTS : 'HH:mm:ss',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM [năm] YYYY',\n\t LLL : 'D MMMM [năm] YYYY HH:mm',\n\t LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',\n\t l : 'DD/M/YYYY',\n\t ll : 'D MMM YYYY',\n\t lll : 'D MMM YYYY HH:mm',\n\t llll : 'ddd, D MMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay: '[Hôm nay lúc] LT',\n\t nextDay: '[Ngày mai lúc] LT',\n\t nextWeek: 'dddd [tuần tới lúc] LT',\n\t lastDay: '[Hôm qua lúc] LT',\n\t lastWeek: 'dddd [tuần rồi lúc] LT',\n\t sameElse: 'L'\n\t },\n\t relativeTime : {\n\t future : '%s tới',\n\t past : '%s trước',\n\t s : 'vài giây',\n\t m : 'một phút',\n\t mm : '%d phút',\n\t h : 'một giờ',\n\t hh : '%d giờ',\n\t d : 'một ngày',\n\t dd : '%d ngày',\n\t M : 'một tháng',\n\t MM : '%d tháng',\n\t y : 'một năm',\n\t yy : '%d năm'\n\t },\n\t ordinalParse: /\\d{1,2}/,\n\t ordinal : function (number) {\n\t return number;\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return vi;\n\t\n\t}));\n\n/***/ },\n/* 183 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Pseudo [x-pseudo]\n\t//! author : Andrew Hood : https://github.com/andrewhood125\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var x_pseudo = moment.defineLocale('x-pseudo', {\n\t months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n\t monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n\t monthsParseExact : true,\n\t weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),\n\t weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n\t weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n\t weekdaysParseExact : true,\n\t longDateFormat : {\n\t LT : 'HH:mm',\n\t L : 'DD/MM/YYYY',\n\t LL : 'D MMMM YYYY',\n\t LLL : 'D MMMM YYYY HH:mm',\n\t LLLL : 'dddd, D MMMM YYYY HH:mm'\n\t },\n\t calendar : {\n\t sameDay : '[T~ódá~ý át] LT',\n\t nextDay : '[T~ómó~rró~w át] LT',\n\t nextWeek : 'dddd [át] LT',\n\t lastDay : '[Ý~ést~érdá~ý át] LT',\n\t lastWeek : '[L~ást] dddd [át] LT',\n\t sameElse : 'L'\n\t },\n\t relativeTime : {\n\t future : 'í~ñ %s',\n\t past : '%s á~gó',\n\t s : 'á ~féw ~sécó~ñds',\n\t m : 'á ~míñ~úté',\n\t mm : '%d m~íñú~tés',\n\t h : 'á~ñ hó~úr',\n\t hh : '%d h~óúrs',\n\t d : 'á ~dáý',\n\t dd : '%d d~áýs',\n\t M : 'á ~móñ~th',\n\t MM : '%d m~óñt~hs',\n\t y : 'á ~ýéár',\n\t yy : '%d ý~éárs'\n\t },\n\t ordinalParse: /\\d{1,2}(th|st|nd|rd)/,\n\t ordinal : function (number) {\n\t var b = number % 10,\n\t output = (~~(number % 100 / 10) === 1) ? 'th' :\n\t (b === 1) ? 'st' :\n\t (b === 2) ? 'nd' :\n\t (b === 3) ? 'rd' : 'th';\n\t return number + output;\n\t },\n\t week : {\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return x_pseudo;\n\t\n\t}));\n\n/***/ },\n/* 184 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Chinese (China) [zh-cn]\n\t//! author : suupic : https://github.com/suupic\n\t//! author : Zeno Zeng : https://github.com/zenozeng\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var zh_cn = moment.defineLocale('zh-cn', {\n\t months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n\t monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n\t weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n\t weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n\t weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n\t longDateFormat : {\n\t LT : 'Ah点mm分',\n\t LTS : 'Ah点m分s秒',\n\t L : 'YYYY-MM-DD',\n\t LL : 'YYYY年MMMD日',\n\t LLL : 'YYYY年MMMD日Ah点mm分',\n\t LLLL : 'YYYY年MMMD日ddddAh点mm分',\n\t l : 'YYYY-MM-DD',\n\t ll : 'YYYY年MMMD日',\n\t lll : 'YYYY年MMMD日Ah点mm分',\n\t llll : 'YYYY年MMMD日ddddAh点mm分'\n\t },\n\t meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n\t meridiemHour: function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if (meridiem === '凌晨' || meridiem === '早上' ||\n\t meridiem === '上午') {\n\t return hour;\n\t } else if (meridiem === '下午' || meridiem === '晚上') {\n\t return hour + 12;\n\t } else {\n\t // '中午'\n\t return hour >= 11 ? hour : hour + 12;\n\t }\n\t },\n\t meridiem : function (hour, minute, isLower) {\n\t var hm = hour * 100 + minute;\n\t if (hm < 600) {\n\t return '凌晨';\n\t } else if (hm < 900) {\n\t return '早上';\n\t } else if (hm < 1130) {\n\t return '上午';\n\t } else if (hm < 1230) {\n\t return '中午';\n\t } else if (hm < 1800) {\n\t return '下午';\n\t } else {\n\t return '晚上';\n\t }\n\t },\n\t calendar : {\n\t sameDay : function () {\n\t return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT';\n\t },\n\t nextDay : function () {\n\t return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT';\n\t },\n\t lastDay : function () {\n\t return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT';\n\t },\n\t nextWeek : function () {\n\t var startOfWeek, prefix;\n\t startOfWeek = moment().startOf('week');\n\t prefix = this.diff(startOfWeek, 'days') >= 7 ? '[下]' : '[本]';\n\t return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';\n\t },\n\t lastWeek : function () {\n\t var startOfWeek, prefix;\n\t startOfWeek = moment().startOf('week');\n\t prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';\n\t return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';\n\t },\n\t sameElse : 'LL'\n\t },\n\t ordinalParse: /\\d{1,2}(日|月|周)/,\n\t ordinal : function (number, period) {\n\t switch (period) {\n\t case 'd':\n\t case 'D':\n\t case 'DDD':\n\t return number + '日';\n\t case 'M':\n\t return number + '月';\n\t case 'w':\n\t case 'W':\n\t return number + '周';\n\t default:\n\t return number;\n\t }\n\t },\n\t relativeTime : {\n\t future : '%s内',\n\t past : '%s前',\n\t s : '几秒',\n\t m : '1 分钟',\n\t mm : '%d 分钟',\n\t h : '1 小时',\n\t hh : '%d 小时',\n\t d : '1 天',\n\t dd : '%d 天',\n\t M : '1 个月',\n\t MM : '%d 个月',\n\t y : '1 年',\n\t yy : '%d 年'\n\t },\n\t week : {\n\t // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n\t dow : 1, // Monday is the first day of the week.\n\t doy : 4 // The week that contains Jan 4th is the first week of the year.\n\t }\n\t });\n\t\n\t return zh_cn;\n\t\n\t}));\n\n/***/ },\n/* 185 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Chinese (Taiwan) [zh-tw]\n\t//! author : Ben : https://github.com/ben-lin\n\t//! author : Chris Lam : https://github.com/hehachris\n\t\n\t;(function (global, factory) {\n\t true ? factory(__webpack_require__(1)) :\n\t typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n\t factory(global.moment)\n\t}(this, function (moment) { 'use strict';\n\t\n\t\n\t var zh_tw = moment.defineLocale('zh-tw', {\n\t months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n\t monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n\t weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n\t weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n\t weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n\t longDateFormat : {\n\t LT : 'Ah點mm分',\n\t LTS : 'Ah點m分s秒',\n\t L : 'YYYY年MMMD日',\n\t LL : 'YYYY年MMMD日',\n\t LLL : 'YYYY年MMMD日Ah點mm分',\n\t LLLL : 'YYYY年MMMD日ddddAh點mm分',\n\t l : 'YYYY年MMMD日',\n\t ll : 'YYYY年MMMD日',\n\t lll : 'YYYY年MMMD日Ah點mm分',\n\t llll : 'YYYY年MMMD日ddddAh點mm分'\n\t },\n\t meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n\t meridiemHour : function (hour, meridiem) {\n\t if (hour === 12) {\n\t hour = 0;\n\t }\n\t if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n\t return hour;\n\t } else if (meridiem === '中午') {\n\t return hour >= 11 ? hour : hour + 12;\n\t } else if (meridiem === '下午' || meridiem === '晚上') {\n\t return hour + 12;\n\t }\n\t },\n\t meridiem : function (hour, minute, isLower) {\n\t var hm = hour * 100 + minute;\n\t if (hm < 600) {\n\t return '凌晨';\n\t } else if (hm < 900) {\n\t return '早上';\n\t } else if (hm < 1130) {\n\t return '上午';\n\t } else if (hm < 1230) {\n\t return '中午';\n\t } else if (hm < 1800) {\n\t return '下午';\n\t } else {\n\t return '晚上';\n\t }\n\t },\n\t calendar : {\n\t sameDay : '[今天]LT',\n\t nextDay : '[明天]LT',\n\t nextWeek : '[下]ddddLT',\n\t lastDay : '[昨天]LT',\n\t lastWeek : '[上]ddddLT',\n\t sameElse : 'L'\n\t },\n\t ordinalParse: /\\d{1,2}(日|月|週)/,\n\t ordinal : function (number, period) {\n\t switch (period) {\n\t case 'd' :\n\t case 'D' :\n\t case 'DDD' :\n\t return number + '日';\n\t case 'M' :\n\t return number + '月';\n\t case 'w' :\n\t case 'W' :\n\t return number + '週';\n\t default :\n\t return number;\n\t }\n\t },\n\t relativeTime : {\n\t future : '%s內',\n\t past : '%s前',\n\t s : '幾秒',\n\t m : '1 分鐘',\n\t mm : '%d 分鐘',\n\t h : '1 小時',\n\t hh : '%d 小時',\n\t d : '1 天',\n\t dd : '%d 天',\n\t M : '1 個月',\n\t MM : '%d 個月',\n\t y : '1 年',\n\t yy : '%d 年'\n\t }\n\t });\n\t\n\t return zh_tw;\n\t\n\t}));\n\n/***/ },\n/* 186 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _vue = __webpack_require__(8);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(6);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\n\t\n\tvar _options = __webpack_require__(5);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _vue2.default.extend({\n\t template: '\\n
\\n \\n
\\n ',\n\t\n\t props: {\n\t chartId: {\n\t default: 'bar-chart',\n\t type: String\n\t },\n\t width: {\n\t default: 400,\n\t type: Number\n\t },\n\t height: {\n\t default: 400,\n\t type: Number\n\t }\n\t },\n\t\n\t data: function data() {\n\t return {\n\t defaultOptions: {\n\t scales: {\n\t yAxes: [{\n\t ticks: {\n\t beginAtZero: true\n\t },\n\t gridLines: {\n\t display: false\n\t }\n\t }],\n\t xAxes: [{\n\t gridLines: {\n\t display: false\n\t },\n\t categoryPercentage: 0.5,\n\t barPercentage: 0.2\n\t }]\n\t }\n\t }\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data, options) {\n\t var chartOptions = (0, _options.mergeOptions)(this.defaultOptions, options);\n\t\n\t this._chart = new _chart2.default(this.$els.canvas.getContext('2d'), {\n\t type: 'bar',\n\t data: data,\n\t options: chartOptions\n\t });\n\t this._chart.generateLegend();\n\t }\n\t },\n\t beforeDestroy: function beforeDestroy() {\n\t this._chart.destroy();\n\t }\n\t});\n\n/***/ },\n/* 187 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _vue = __webpack_require__(8);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(6);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\n\t\n\tvar _options = __webpack_require__(5);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _vue2.default.extend({\n\t template: '\\n
\\n \\n
\\n ',\n\t\n\t props: {\n\t chartId: {\n\t default: 'bubble-chart',\n\t type: String\n\t },\n\t width: {\n\t default: 400,\n\t type: Number\n\t },\n\t height: {\n\t default: 400,\n\t type: Number\n\t }\n\t },\n\t\n\t data: function data() {\n\t return {\n\t defaultOptions: {}\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data, options) {\n\t var chartOptions = (0, _options.mergeOptions)(this.defaultOptions, options);\n\t\n\t this._chart = new _chart2.default(this.$els.canvas.getContext('2d'), {\n\t type: 'bubble',\n\t data: data,\n\t options: chartOptions\n\t });\n\t this._chart.generateLegend();\n\t }\n\t },\n\t beforeDestroy: function beforeDestroy() {\n\t this._chart.destroy();\n\t }\n\t});\n\n/***/ },\n/* 188 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _vue = __webpack_require__(8);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(6);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\n\t\n\tvar _options = __webpack_require__(5);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _vue2.default.extend({\n\t template: '\\n
\\n \\n
\\n ',\n\t\n\t props: {\n\t chartId: {\n\t default: 'doughnut-chart',\n\t type: String\n\t },\n\t width: {\n\t default: 400,\n\t type: Number\n\t },\n\t height: {\n\t default: 400,\n\t type: Number\n\t }\n\t },\n\t\n\t data: function data() {\n\t return {\n\t defaultOptions: {}\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data, options) {\n\t var chartOptions = (0, _options.mergeOptions)(this.defaultOptions, options);\n\t\n\t this._chart = new _chart2.default(this.$els.canvas.getContext('2d'), {\n\t type: 'doughnut',\n\t data: data,\n\t options: chartOptions\n\t });\n\t this._chart.generateLegend();\n\t }\n\t },\n\t beforeDestroy: function beforeDestroy() {\n\t this._chart.destroy();\n\t }\n\t});\n\n/***/ },\n/* 189 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _vue = __webpack_require__(8);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(6);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\n\t\n\tvar _options = __webpack_require__(5);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _vue2.default.extend({\n\t template: '\\n
\\n \\n
\\n ',\n\t\n\t props: {\n\t chartId: {\n\t default: 'line-chart',\n\t type: String\n\t },\n\t width: {\n\t default: 400,\n\t type: Number\n\t },\n\t height: {\n\t default: 400,\n\t type: Number\n\t }\n\t },\n\t\n\t data: function data() {\n\t return {\n\t defaultOptions: {\n\t scales: {\n\t yAxes: [{\n\t ticks: {\n\t beginAtZero: true\n\t },\n\t gridLines: {\n\t display: false\n\t }\n\t }],\n\t xAxes: [{\n\t gridLines: {\n\t display: false\n\t }\n\t }]\n\t }\n\t }\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data, options) {\n\t var chartOptions = (0, _options.mergeOptions)(this.defaultOptions, options);\n\t\n\t this._chart = new _chart2.default(this.$els.canvas.getContext('2d'), {\n\t type: 'line',\n\t data: data,\n\t options: chartOptions\n\t });\n\t this._chart.generateLegend();\n\t }\n\t },\n\t beforeDestroy: function beforeDestroy() {\n\t this._chart.destroy();\n\t }\n\t});\n\n/***/ },\n/* 190 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _vue = __webpack_require__(8);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(6);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\n\t\n\tvar _options = __webpack_require__(5);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _vue2.default.extend({\n\t template: '\\n
\\n \\n
\\n ',\n\t\n\t props: {\n\t chartId: {\n\t default: 'pie-chart',\n\t type: String\n\t },\n\t width: {\n\t default: 400,\n\t type: Number\n\t },\n\t height: {\n\t default: 400,\n\t type: Number\n\t }\n\t },\n\t\n\t data: function data() {\n\t return {\n\t defaultOptions: {}\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data, options) {\n\t var chartOptions = (0, _options.mergeOptions)(this.defaultOptions, options);\n\t\n\t this._chart = new _chart2.default(this.$els.canvas.getContext('2d'), {\n\t type: 'pie',\n\t data: data,\n\t options: chartOptions\n\t });\n\t this._chart.generateLegend();\n\t }\n\t },\n\t beforeDestroy: function beforeDestroy() {\n\t this._chart.destroy();\n\t }\n\t});\n\n/***/ },\n/* 191 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _vue = __webpack_require__(8);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(6);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\n\t\n\tvar _options = __webpack_require__(5);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _vue2.default.extend({\n\t template: '\\n
\\n \\n
\\n ',\n\t\n\t props: {\n\t chartId: {\n\t default: 'polar-chart',\n\t type: String\n\t },\n\t width: {\n\t default: 400,\n\t type: Number\n\t },\n\t height: {\n\t default: 400,\n\t type: Number\n\t }\n\t },\n\t\n\t data: function data() {\n\t return {\n\t defaultOptions: {}\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data, options) {\n\t var chartOptions = (0, _options.mergeOptions)(this.defaultOptions, options);\n\t\n\t this._chart = new _chart2.default(this.$els.canvas.getContext('2d'), {\n\t type: 'polarArea',\n\t data: data,\n\t options: chartOptions\n\t });\n\t this._chart.generateLegend();\n\t }\n\t },\n\t beforeDestroy: function beforeDestroy() {\n\t this._chart.destroy();\n\t }\n\t});\n\n/***/ },\n/* 192 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _vue = __webpack_require__(8);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(6);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\n\t\n\tvar _options = __webpack_require__(5);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _vue2.default.extend({\n\t template: '\\n
\\n \\n
\\n ',\n\t\n\t props: {\n\t chartId: {\n\t default: 'radar-chart',\n\t type: String\n\t },\n\t width: {\n\t default: 400,\n\t type: Number\n\t },\n\t height: {\n\t default: 400,\n\t type: Number\n\t }\n\t },\n\t\n\t data: function data() {\n\t return {\n\t defaultOptions: {}\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data, options) {\n\t var chartOptions = (0, _options.mergeOptions)(this.defaultOptions, options);\n\t\n\t this._chart = new _chart2.default(this.$els.canvas.getContext('2d'), {\n\t type: 'radar',\n\t data: data,\n\t options: chartOptions\n\t });\n\t this._chart.generateLegend();\n\t }\n\t },\n\t beforeDestroy: function beforeDestroy() {\n\t this._chart.destroy();\n\t }\n\t});\n\n/***/ },\n/* 193 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tChart.Bar = function(context, config) {\n\t\t\tconfig.type = 'bar';\n\t\n\t\t\treturn new Chart(context, config);\n\t\t};\n\t\n\t};\n\n/***/ },\n/* 194 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tChart.Bubble = function(context, config) {\n\t\t\tconfig.type = 'bubble';\n\t\t\treturn new Chart(context, config);\n\t\t};\n\t\n\t};\n\n/***/ },\n/* 195 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tChart.Doughnut = function(context, config) {\n\t\t\tconfig.type = 'doughnut';\n\t\n\t\t\treturn new Chart(context, config);\n\t\t};\n\t\n\t};\n\n/***/ },\n/* 196 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tChart.Line = function(context, config) {\n\t\t\tconfig.type = 'line';\n\t\n\t\t\treturn new Chart(context, config);\n\t\t};\n\t\n\t};\n\n/***/ },\n/* 197 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tChart.PolarArea = function(context, config) {\n\t\t\tconfig.type = 'polarArea';\n\t\n\t\t\treturn new Chart(context, config);\n\t\t};\n\t\n\t};\n\n/***/ },\n/* 198 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\t\n\t\tChart.Radar = function(context, config) {\n\t\t\tconfig.options = Chart.helpers.configMerge({ aspectRatio: 1 }, config.options);\n\t\t\tconfig.type = 'radar';\n\t\n\t\t\treturn new Chart(context, config);\n\t\t};\n\t\n\t};\n\n\n/***/ },\n/* 199 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tvar defaultConfig = {\n\t\t\thover: {\n\t\t\t\tmode: 'single'\n\t\t\t},\n\t\n\t\t\tscales: {\n\t\t\t\txAxes: [{\n\t\t\t\t\ttype: \"linear\", // scatter should not use a category axis\n\t\t\t\t\tposition: \"bottom\",\n\t\t\t\t\tid: \"x-axis-1\" // need an ID so datasets can reference the scale\n\t\t\t\t}],\n\t\t\t\tyAxes: [{\n\t\t\t\t\ttype: \"linear\",\n\t\t\t\t\tposition: \"left\",\n\t\t\t\t\tid: \"y-axis-1\"\n\t\t\t\t}]\n\t\t\t},\n\t\n\t\t\ttooltips: {\n\t\t\t\tcallbacks: {\n\t\t\t\t\ttitle: function() {\n\t\t\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t},\n\t\t\t\t\tlabel: function(tooltipItem) {\n\t\t\t\t\t\treturn '(' + tooltipItem.xLabel + ', ' + tooltipItem.yLabel + ')';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\n\t\t// Register the default config for this type\n\t\tChart.defaults.scatter = defaultConfig;\n\t\n\t\t// Scatter charts use line controllers\n\t\tChart.controllers.scatter = Chart.controllers.line;\n\t\n\t\tChart.Scatter = function(context, config) {\n\t\t\tconfig.type = 'scatter';\n\t\t\treturn new Chart(context, config);\n\t\t};\n\t\n\t};\n\n/***/ },\n/* 200 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tvar helpers = Chart.helpers;\n\t\n\t\tChart.defaults.bar = {\n\t\t\thover: {\n\t\t\t\tmode: \"label\"\n\t\t\t},\n\t\n\t\t\tscales: {\n\t\t\t\txAxes: [{\n\t\t\t\t\ttype: \"category\",\n\t\n\t\t\t\t\t// Specific to Bar Controller\n\t\t\t\t\tcategoryPercentage: 0.8,\n\t\t\t\t\tbarPercentage: 0.9,\n\t\n\t\t\t\t\t// grid line settings\n\t\t\t\t\tgridLines: {\n\t\t\t\t\t\toffsetGridLines: true\n\t\t\t\t\t}\n\t\t\t\t}],\n\t\t\t\tyAxes: [{\n\t\t\t\t\ttype: \"linear\"\n\t\t\t\t}]\n\t\t\t}\n\t\t};\n\t\n\t\tChart.controllers.bar = Chart.DatasetController.extend({\n\t\n\t\t\tdataElementType: Chart.elements.Rectangle,\n\t\n\t\t\tinitialize: function(chart, datasetIndex) {\n\t\t\t\tChart.DatasetController.prototype.initialize.call(this, chart, datasetIndex);\n\t\n\t\t\t\t// Use this to indicate that this is a bar dataset.\n\t\t\t\tthis.getMeta().bar = true;\n\t\t\t},\n\t\n\t\t\t// Get the number of datasets that display bars. We use this to correctly calculate the bar width\n\t\t\tgetBarCount: function() {\n\t\t\t\tvar me = this;\n\t\t\t\tvar barCount = 0;\n\t\t\t\thelpers.each(me.chart.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tvar meta = me.chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tif (meta.bar && me.chart.isDatasetVisible(datasetIndex)) {\n\t\t\t\t\t\t++barCount;\n\t\t\t\t\t}\n\t\t\t\t}, me);\n\t\t\t\treturn barCount;\n\t\t\t},\n\t\n\t\t\tupdate: function(reset) {\n\t\t\t\tvar me = this;\n\t\t\t\thelpers.each(me.getMeta().data, function(rectangle, index) {\n\t\t\t\t\tme.updateElement(rectangle, index, reset);\n\t\t\t\t}, me);\n\t\t\t},\n\t\n\t\t\tupdateElement: function(rectangle, index, reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\t\tvar scaleBase = yScale.getBasePixel();\n\t\t\t\tvar rectangleElementOptions = me.chart.options.elements.rectangle;\n\t\t\t\tvar custom = rectangle.custom || {};\n\t\t\t\tvar dataset = me.getDataset();\n\t\n\t\t\t\thelpers.extend(rectangle, {\n\t\t\t\t\t// Utility\n\t\t\t\t\t_xScale: xScale,\n\t\t\t\t\t_yScale: yScale,\n\t\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t\t_index: index,\n\t\n\t\t\t\t\t// Desired view properties\n\t\t\t\t\t_model: {\n\t\t\t\t\t\tx: me.calculateBarX(index, me.index),\n\t\t\t\t\t\ty: reset ? scaleBase : me.calculateBarY(index, me.index),\n\t\n\t\t\t\t\t\t// Tooltip\n\t\t\t\t\t\tlabel: me.chart.data.labels[index],\n\t\t\t\t\t\tdatasetLabel: dataset.label,\n\t\n\t\t\t\t\t\t// Appearance\n\t\t\t\t\t\tbase: reset ? scaleBase : me.calculateBarBase(me.index, index),\n\t\t\t\t\t\twidth: me.calculateBarWidth(index),\n\t\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.getValueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor),\n\t\t\t\t\t\tborderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleElementOptions.borderSkipped,\n\t\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.getValueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor),\n\t\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.getValueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\trectangle.pivot();\n\t\t\t},\n\t\n\t\t\tcalculateBarBase: function(datasetIndex, index) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\t\tvar base = 0;\n\t\n\t\t\t\tif (yScale.options.stacked) {\n\t\t\t\t\tvar chart = me.chart;\n\t\t\t\t\tvar datasets = chart.data.datasets;\n\t\t\t\t\tvar value = Number(datasets[datasetIndex].data[index]);\n\t\n\t\t\t\t\tfor (var i = 0; i < datasetIndex; i++) {\n\t\t\t\t\t\tvar currentDs = datasets[i];\n\t\t\t\t\t\tvar currentDsMeta = chart.getDatasetMeta(i);\n\t\t\t\t\t\tif (currentDsMeta.bar && currentDsMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) {\n\t\t\t\t\t\t\tvar currentVal = Number(currentDs.data[index]);\n\t\t\t\t\t\t\tbase += value < 0 ? Math.min(currentVal, 0) : Math.max(currentVal, 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\treturn yScale.getPixelForValue(base);\n\t\t\t\t}\n\t\n\t\t\t\treturn yScale.getBasePixel();\n\t\t\t},\n\t\n\t\t\tgetRuler: function(index) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\t\tvar datasetCount = me.getBarCount();\n\t\n\t\t\t\tvar tickWidth;\n\t\n\t\t\t\tif (xScale.options.type === 'category') {\n\t\t\t\t\ttickWidth = xScale.getPixelForTick(index + 1) - xScale.getPixelForTick(index);\n\t\t\t\t} else {\n\t\t\t\t\t// Average width\n\t\t\t\t\ttickWidth = xScale.width / xScale.ticks.length;\n\t\t\t\t}\n\t\t\t\tvar categoryWidth = tickWidth * xScale.options.categoryPercentage;\n\t\t\t\tvar categorySpacing = (tickWidth - (tickWidth * xScale.options.categoryPercentage)) / 2;\n\t\t\t\tvar fullBarWidth = categoryWidth / datasetCount;\n\t\n\t\t\t\tif (xScale.ticks.length !== me.chart.data.labels.length) {\n\t\t\t\t var perc = xScale.ticks.length / me.chart.data.labels.length;\n\t\t\t\t fullBarWidth = fullBarWidth * perc;\n\t\t\t\t}\n\t\n\t\t\t\tvar barWidth = fullBarWidth * xScale.options.barPercentage;\n\t\t\t\tvar barSpacing = fullBarWidth - (fullBarWidth * xScale.options.barPercentage);\n\t\n\t\t\t\treturn {\n\t\t\t\t\tdatasetCount: datasetCount,\n\t\t\t\t\ttickWidth: tickWidth,\n\t\t\t\t\tcategoryWidth: categoryWidth,\n\t\t\t\t\tcategorySpacing: categorySpacing,\n\t\t\t\t\tfullBarWidth: fullBarWidth,\n\t\t\t\t\tbarWidth: barWidth,\n\t\t\t\t\tbarSpacing: barSpacing\n\t\t\t\t};\n\t\t\t},\n\t\n\t\t\tcalculateBarWidth: function(index) {\n\t\t\t\tvar xScale = this.getScaleForId(this.getMeta().xAxisID);\n\t\t\t\tif (xScale.options.barThickness) {\n\t\t\t\t\treturn xScale.options.barThickness;\n\t\t\t\t}\n\t\t\t\tvar ruler = this.getRuler(index);\n\t\t\t\treturn xScale.options.stacked ? ruler.categoryWidth : ruler.barWidth;\n\t\t\t},\n\t\n\t\t\t// Get bar index from the given dataset index accounting for the fact that not all bars are visible\n\t\t\tgetBarIndex: function(datasetIndex) {\n\t\t\t\tvar barIndex = 0;\n\t\t\t\tvar meta, j;\n\t\n\t\t\t\tfor (j = 0; j < datasetIndex; ++j) {\n\t\t\t\t\tmeta = this.chart.getDatasetMeta(j);\n\t\t\t\t\tif (meta.bar && this.chart.isDatasetVisible(j)) {\n\t\t\t\t\t\t++barIndex;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn barIndex;\n\t\t\t},\n\t\n\t\t\tcalculateBarX: function(index, datasetIndex) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\t\tvar barIndex = me.getBarIndex(datasetIndex);\n\t\n\t\t\t\tvar ruler = me.getRuler(index);\n\t\t\t\tvar leftTick = xScale.getPixelForValue(null, index, datasetIndex, me.chart.isCombo);\n\t\t\t\tleftTick -= me.chart.isCombo ? (ruler.tickWidth / 2) : 0;\n\t\n\t\t\t\tif (xScale.options.stacked) {\n\t\t\t\t\treturn leftTick + (ruler.categoryWidth / 2) + ruler.categorySpacing;\n\t\t\t\t}\n\t\n\t\t\t\treturn leftTick +\n\t\t\t\t\t(ruler.barWidth / 2) +\n\t\t\t\t\truler.categorySpacing +\n\t\t\t\t\t(ruler.barWidth * barIndex) +\n\t\t\t\t\t(ruler.barSpacing / 2) +\n\t\t\t\t\t(ruler.barSpacing * barIndex);\n\t\t\t},\n\t\n\t\t\tcalculateBarY: function(index, datasetIndex) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\t\tvar value = Number(me.getDataset().data[index]);\n\t\n\t\t\t\tif (yScale.options.stacked) {\n\t\n\t\t\t\t\tvar sumPos = 0,\n\t\t\t\t\t\tsumNeg = 0;\n\t\n\t\t\t\t\tfor (var i = 0; i < datasetIndex; i++) {\n\t\t\t\t\t\tvar ds = me.chart.data.datasets[i];\n\t\t\t\t\t\tvar dsMeta = me.chart.getDatasetMeta(i);\n\t\t\t\t\t\tif (dsMeta.bar && dsMeta.yAxisID === yScale.id && me.chart.isDatasetVisible(i)) {\n\t\t\t\t\t\t\tvar stackedVal = Number(ds.data[index]);\n\t\t\t\t\t\t\tif (stackedVal < 0) {\n\t\t\t\t\t\t\t\tsumNeg += stackedVal || 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsumPos += stackedVal || 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (value < 0) {\n\t\t\t\t\t\treturn yScale.getPixelForValue(sumNeg + value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yScale.getPixelForValue(sumPos + value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn yScale.getPixelForValue(value);\n\t\t\t},\n\t\n\t\t\tdraw: function(ease) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar easingDecimal = ease || 1;\n\t\t\t\thelpers.each(me.getMeta().data, function(rectangle, index) {\n\t\t\t\t\tvar d = me.getDataset().data[index];\n\t\t\t\t\tif (d !== null && d !== undefined && !isNaN(d)) {\n\t\t\t\t\t\trectangle.transition(easingDecimal).draw();\n\t\t\t\t\t}\n\t\t\t\t}, me);\n\t\t\t},\n\t\n\t\t\tsetHoverStyle: function(rectangle) {\n\t\t\t\tvar dataset = this.chart.data.datasets[rectangle._datasetIndex];\n\t\t\t\tvar index = rectangle._index;\n\t\n\t\t\t\tvar custom = rectangle.custom || {};\n\t\t\t\tvar model = rectangle._model;\n\t\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.getValueAtIndexOrDefault(dataset.hoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n\t\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.getValueAtIndexOrDefault(dataset.hoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n\t\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.getValueAtIndexOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\n\t\t\t},\n\t\n\t\t\tremoveHoverStyle: function(rectangle) {\n\t\t\t\tvar dataset = this.chart.data.datasets[rectangle._datasetIndex];\n\t\t\t\tvar index = rectangle._index;\n\t\t\t\tvar custom = rectangle.custom || {};\n\t\t\t\tvar model = rectangle._model;\n\t\t\t\tvar rectangleElementOptions = this.chart.options.elements.rectangle;\n\t\n\t\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.getValueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor);\n\t\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : helpers.getValueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor);\n\t\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.getValueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth);\n\t\t\t}\n\t\n\t\t});\n\t\n\t\n\t\t// including horizontalBar in the bar file, instead of a file of its own\n\t\t// it extends bar (like pie extends doughnut)\n\t\tChart.defaults.horizontalBar = {\n\t\t\thover: {\n\t\t\t\tmode: \"label\"\n\t\t\t},\n\t\n\t\t\tscales: {\n\t\t\t\txAxes: [{\n\t\t\t\t\ttype: \"linear\",\n\t\t\t\t\tposition: \"bottom\"\n\t\t\t\t}],\n\t\t\t\tyAxes: [{\n\t\t\t\t\tposition: \"left\",\n\t\t\t\t\ttype: \"category\",\n\t\n\t\t\t\t\t// Specific to Horizontal Bar Controller\n\t\t\t\t\tcategoryPercentage: 0.8,\n\t\t\t\t\tbarPercentage: 0.9,\n\t\n\t\t\t\t\t// grid line settings\n\t\t\t\t\tgridLines: {\n\t\t\t\t\t\toffsetGridLines: true\n\t\t\t\t\t}\n\t\t\t\t}]\n\t\t\t},\n\t\t\telements: {\n\t\t\t\trectangle: {\n\t\t\t\t\tborderSkipped: 'left'\n\t\t\t\t}\n\t\t\t},\n\t\t\ttooltips: {\n\t\t\t\tcallbacks: {\n\t\t\t\t\ttitle: function(tooltipItems, data) {\n\t\t\t\t\t\t// Pick first xLabel for now\n\t\t\t\t\t\tvar title = '';\n\t\n\t\t\t\t\t\tif (tooltipItems.length > 0) {\n\t\t\t\t\t\t\tif (tooltipItems[0].yLabel) {\n\t\t\t\t\t\t\t\ttitle = tooltipItems[0].yLabel;\n\t\t\t\t\t\t\t} else if (data.labels.length > 0 && tooltipItems[0].index < data.labels.length) {\n\t\t\t\t\t\t\t\ttitle = data.labels[tooltipItems[0].index];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn title;\n\t\t\t\t\t},\n\t\t\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\t\t\tvar datasetLabel = data.datasets[tooltipItem.datasetIndex].label || '';\n\t\t\t\t\treturn datasetLabel + ': ' + tooltipItem.xLabel;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\n\t\tChart.controllers.horizontalBar = Chart.controllers.bar.extend({\n\t\t\tupdateElement: function(rectangle, index, reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\t\tvar scaleBase = xScale.getBasePixel();\n\t\t\t\tvar custom = rectangle.custom || {};\n\t\t\t\tvar dataset = me.getDataset();\n\t\t\t\tvar rectangleElementOptions = me.chart.options.elements.rectangle;\n\t\n\t\t\t\thelpers.extend(rectangle, {\n\t\t\t\t\t// Utility\n\t\t\t\t\t_xScale: xScale,\n\t\t\t\t\t_yScale: yScale,\n\t\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t\t_index: index,\n\t\n\t\t\t\t\t// Desired view properties\n\t\t\t\t\t_model: {\n\t\t\t\t\t\tx: reset ? scaleBase : me.calculateBarX(index, me.index),\n\t\t\t\t\t\ty: me.calculateBarY(index, me.index),\n\t\n\t\t\t\t\t\t// Tooltip\n\t\t\t\t\t\tlabel: me.chart.data.labels[index],\n\t\t\t\t\t\tdatasetLabel: dataset.label,\n\t\n\t\t\t\t\t\t// Appearance\n\t\t\t\t\t\tbase: reset ? scaleBase : me.calculateBarBase(me.index, index),\n\t\t\t\t\t\theight: me.calculateBarHeight(index),\n\t\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.getValueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor),\n\t\t\t\t\t\tborderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleElementOptions.borderSkipped,\n\t\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.getValueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor),\n\t\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.getValueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth)\n\t\t\t\t\t},\n\t\n\t\t\t\t\tdraw: function () {\n\t\t\t\t\t\tvar ctx = this._chart.ctx;\n\t\t\t\t\t\tvar vm = this._view;\n\t\n\t\t\t\t\t\tvar halfHeight = vm.height / 2,\n\t\t\t\t\t\t\ttopY = vm.y - halfHeight,\n\t\t\t\t\t\t\tbottomY = vm.y + halfHeight,\n\t\t\t\t\t\t\tright = vm.base - (vm.base - vm.x),\n\t\t\t\t\t\t\thalfStroke = vm.borderWidth / 2;\n\t\n\t\t\t\t\t\t// Canvas doesn't allow us to stroke inside the width so we can\n\t\t\t\t\t\t// adjust the sizes to fit if we're setting a stroke on the line\n\t\t\t\t\t\tif (vm.borderWidth) {\n\t\t\t\t\t\t\ttopY += halfStroke;\n\t\t\t\t\t\t\tbottomY -= halfStroke;\n\t\t\t\t\t\t\tright += halfStroke;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tctx.beginPath();\n\t\n\t\t\t\t\t\tctx.fillStyle = vm.backgroundColor;\n\t\t\t\t\t\tctx.strokeStyle = vm.borderColor;\n\t\t\t\t\t\tctx.lineWidth = vm.borderWidth;\n\t\n\t\t\t\t\t\t// Corner points, from bottom-left to bottom-right clockwise\n\t\t\t\t\t\t// | 1 2 |\n\t\t\t\t\t\t// | 0 3 |\n\t\t\t\t\t\tvar corners = [\n\t\t\t\t\t\t\t[vm.base, bottomY],\n\t\t\t\t\t\t\t[vm.base, topY],\n\t\t\t\t\t\t\t[right, topY],\n\t\t\t\t\t\t\t[right, bottomY]\n\t\t\t\t\t\t];\n\t\n\t\t\t\t\t\t// Find first (starting) corner with fallback to 'bottom'\n\t\t\t\t\t\tvar borders = ['bottom', 'left', 'top', 'right'];\n\t\t\t\t\t\tvar startCorner = borders.indexOf(vm.borderSkipped, 0);\n\t\t\t\t\t\tif (startCorner === -1)\n\t\t\t\t\t\t\tstartCorner = 0;\n\t\n\t\t\t\t\t\tfunction cornerAt(index) {\n\t\t\t\t\t\t\treturn corners[(startCorner + index) % 4];\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// Draw rectangle from 'startCorner'\n\t\t\t\t\t\tctx.moveTo.apply(ctx, cornerAt(0));\n\t\t\t\t\t\tfor (var i = 1; i < 4; i++)\n\t\t\t\t\t\t\tctx.lineTo.apply(ctx, cornerAt(i));\n\t\n\t\t\t\t\t\tctx.fill();\n\t\t\t\t\t\tif (vm.borderWidth) {\n\t\t\t\t\t\t\tctx.stroke();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinRange: function (mouseX, mouseY) {\n\t\t\t\t\t\tvar vm = this._view;\n\t\t\t\t\t\tvar inRange = false;\n\t\n\t\t\t\t\t\tif (vm) {\n\t\t\t\t\t\t\tif (vm.x < vm.base) {\n\t\t\t\t\t\t\t\tinRange = (mouseY >= vm.y - vm.height / 2 && mouseY <= vm.y + vm.height / 2) && (mouseX >= vm.x && mouseX <= vm.base);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tinRange = (mouseY >= vm.y - vm.height / 2 && mouseY <= vm.y + vm.height / 2) && (mouseX >= vm.base && mouseX <= vm.x);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn inRange;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\trectangle.pivot();\n\t\t\t},\n\t\n\t\t\tcalculateBarBase: function (datasetIndex, index) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\t\tvar base = 0;\n\t\n\t\t\t\tif (xScale.options.stacked) {\n\t\t\t\t\tvar chart = me.chart;\n\t\t\t\t\tvar datasets = chart.data.datasets;\n\t\t\t\t\tvar value = Number(datasets[datasetIndex].data[index]);\n\t\n\t\t\t\t\tfor (var i = 0; i < datasetIndex; i++) {\n\t\t\t\t\t\tvar currentDs = datasets[i];\n\t\t\t\t\t\tvar currentDsMeta = chart.getDatasetMeta(i);\n\t\t\t\t\t\tif (currentDsMeta.bar && currentDsMeta.xAxisID === xScale.id && chart.isDatasetVisible(i)) {\n\t\t\t\t\t\t\tvar currentVal = Number(currentDs.data[index]);\n\t\t\t\t\t\t\tbase += value < 0 ? Math.min(currentVal, 0) : Math.max(currentVal, 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\treturn xScale.getPixelForValue(base);\n\t\t\t\t}\n\t\n\t\t\t\treturn xScale.getBasePixel();\n\t\t\t},\n\t\n\t\t\tgetRuler: function (index) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\t\tvar datasetCount = me.getBarCount();\n\t\n\t\t\t\tvar tickHeight;\n\t\t\t\tif (yScale.options.type === 'category') {\n\t\t\t\t\ttickHeight = yScale.getPixelForTick(index + 1) - yScale.getPixelForTick(index);\n\t\t\t\t} else {\n\t\t\t\t\t// Average width\n\t\t\t\t\ttickHeight = yScale.width / yScale.ticks.length;\n\t\t\t\t}\n\t\t\t\tvar categoryHeight = tickHeight * yScale.options.categoryPercentage;\n\t\t\t\tvar categorySpacing = (tickHeight - (tickHeight * yScale.options.categoryPercentage)) / 2;\n\t\t\t\tvar fullBarHeight = categoryHeight / datasetCount;\n\t\n\t\t\t\tif (yScale.ticks.length !== me.chart.data.labels.length) {\n\t\t\t\t\tvar perc = yScale.ticks.length / me.chart.data.labels.length;\n\t\t\t\t\tfullBarHeight = fullBarHeight * perc;\n\t\t\t\t}\n\t\n\t\t\t\tvar barHeight = fullBarHeight * yScale.options.barPercentage;\n\t\t\t\tvar barSpacing = fullBarHeight - (fullBarHeight * yScale.options.barPercentage);\n\t\n\t\t\t\treturn {\n\t\t\t\t\tdatasetCount: datasetCount,\n\t\t\t\t\ttickHeight: tickHeight,\n\t\t\t\t\tcategoryHeight: categoryHeight,\n\t\t\t\t\tcategorySpacing: categorySpacing,\n\t\t\t\t\tfullBarHeight: fullBarHeight,\n\t\t\t\t\tbarHeight: barHeight,\n\t\t\t\t\tbarSpacing: barSpacing\n\t\t\t\t};\n\t\t\t},\n\t\n\t\t\tcalculateBarHeight: function (index) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar yScale = me.getScaleForId(me.getMeta().yAxisID);\n\t\t\t\tif (yScale.options.barThickness) {\n\t\t\t\t\treturn yScale.options.barThickness;\n\t\t\t\t}\n\t\t\t\tvar ruler = me.getRuler(index);\n\t\t\t\treturn yScale.options.stacked ? ruler.categoryHeight : ruler.barHeight;\n\t\t\t},\n\t\n\t\t\tcalculateBarX: function (index, datasetIndex) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\t\tvar value = Number(me.getDataset().data[index]);\n\t\n\t\t\t\tif (xScale.options.stacked) {\n\t\n\t\t\t\t\tvar sumPos = 0,\n\t\t\t\t\t\tsumNeg = 0;\n\t\n\t\t\t\t\tfor (var i = 0; i < datasetIndex; i++) {\n\t\t\t\t\t\tvar ds = me.chart.data.datasets[i];\n\t\t\t\t\t\tvar dsMeta = me.chart.getDatasetMeta(i);\n\t\t\t\t\t\tif (dsMeta.bar && dsMeta.xAxisID === xScale.id && me.chart.isDatasetVisible(i)) {\n\t\t\t\t\t\t\tvar stackedVal = Number(ds.data[index]);\n\t\t\t\t\t\t\tif (stackedVal < 0) {\n\t\t\t\t\t\t\t\tsumNeg += stackedVal || 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsumPos += stackedVal || 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (value < 0) {\n\t\t\t\t\t\treturn xScale.getPixelForValue(sumNeg + value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn xScale.getPixelForValue(sumPos + value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn xScale.getPixelForValue(value);\n\t\t\t},\n\t\n\t\t\tcalculateBarY: function (index, datasetIndex) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\t\tvar barIndex = me.getBarIndex(datasetIndex);\n\t\n\t\t\t\tvar ruler = me.getRuler(index);\n\t\t\t\tvar topTick = yScale.getPixelForValue(null, index, datasetIndex, me.chart.isCombo);\n\t\t\t\ttopTick -= me.chart.isCombo ? (ruler.tickHeight / 2) : 0;\n\t\n\t\t\t\tif (yScale.options.stacked) {\n\t\t\t\t\treturn topTick + (ruler.categoryHeight / 2) + ruler.categorySpacing;\n\t\t\t\t}\n\t\n\t\t\t\treturn topTick +\n\t\t\t\t\t(ruler.barHeight / 2) +\n\t\t\t\t\truler.categorySpacing +\n\t\t\t\t\t(ruler.barHeight * barIndex) +\n\t\t\t\t\t(ruler.barSpacing / 2) +\n\t\t\t\t\t(ruler.barSpacing * barIndex);\n\t\t\t}\n\t\t});\n\t};\n\n\n/***/ },\n/* 201 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tvar helpers = Chart.helpers;\n\t\n\t\tChart.defaults.bubble = {\n\t\t\thover: {\n\t\t\t\tmode: \"single\"\n\t\t\t},\n\t\n\t\t\tscales: {\n\t\t\t\txAxes: [{\n\t\t\t\t\ttype: \"linear\", // bubble should probably use a linear scale by default\n\t\t\t\t\tposition: \"bottom\",\n\t\t\t\t\tid: \"x-axis-0\" // need an ID so datasets can reference the scale\n\t\t\t\t}],\n\t\t\t\tyAxes: [{\n\t\t\t\t\ttype: \"linear\",\n\t\t\t\t\tposition: \"left\",\n\t\t\t\t\tid: \"y-axis-0\"\n\t\t\t\t}]\n\t\t\t},\n\t\n\t\t\ttooltips: {\n\t\t\t\tcallbacks: {\n\t\t\t\t\ttitle: function() {\n\t\t\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t},\n\t\t\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\t\t\tvar datasetLabel = data.datasets[tooltipItem.datasetIndex].label || '';\n\t\t\t\t\t\tvar dataPoint = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\t\t\t\t\t\treturn datasetLabel + ': (' + dataPoint.x + ', ' + dataPoint.y + ', ' + dataPoint.r + ')';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\n\t\tChart.controllers.bubble = Chart.DatasetController.extend({\n\t\n\t\t\tdataElementType: Chart.elements.Point,\n\t\n\t\t\tupdate: function(reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar points = meta.data;\n\t\n\t\t\t\t// Update Points\n\t\t\t\thelpers.each(points, function(point, index) {\n\t\t\t\t\tme.updateElement(point, index, reset);\n\t\t\t\t});\n\t\t\t},\n\t\n\t\t\tupdateElement: function(point, index, reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\n\t\t\t\tvar custom = point.custom || {};\n\t\t\t\tvar dataset = me.getDataset();\n\t\t\t\tvar data = dataset.data[index];\n\t\t\t\tvar pointElementOptions = me.chart.options.elements.point;\n\t\t\t\tvar dsIndex = me.index;\n\t\n\t\t\t\thelpers.extend(point, {\n\t\t\t\t\t// Utility\n\t\t\t\t\t_xScale: xScale,\n\t\t\t\t\t_yScale: yScale,\n\t\t\t\t\t_datasetIndex: dsIndex,\n\t\t\t\t\t_index: index,\n\t\n\t\t\t\t\t// Desired view properties\n\t\t\t\t\t_model: {\n\t\t\t\t\t\tx: reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex, me.chart.isCombo),\n\t\t\t\t\t\ty: reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex),\n\t\t\t\t\t\t// Appearance\n\t\t\t\t\t\tradius: reset ? 0 : custom.radius ? custom.radius : me.getRadius(data),\n\t\n\t\t\t\t\t\t// Tooltip\n\t\t\t\t\t\thitRadius: custom.hitRadius ? custom.hitRadius : helpers.getValueAtIndexOrDefault(dataset.hitRadius, index, pointElementOptions.hitRadius)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\t// Trick to reset the styles of the point\n\t\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(me, point, pointElementOptions);\n\t\n\t\t\t\tvar model = point._model;\n\t\t\t\tmodel.skip = custom.skip ? custom.skip : (isNaN(model.x) || isNaN(model.y));\n\t\n\t\t\t\tpoint.pivot();\n\t\t\t},\n\t\n\t\t\tgetRadius: function(value) {\n\t\t\t\treturn value.r || this.chart.options.elements.point.radius;\n\t\t\t},\n\t\n\t\t\tsetHoverStyle: function(point) {\n\t\t\t\tvar me = this;\n\t\t\t\tChart.DatasetController.prototype.setHoverStyle.call(me, point);\n\t\n\t\t\t\t// Radius\n\t\t\t\tvar dataset = me.chart.data.datasets[point._datasetIndex];\n\t\t\t\tvar index = point._index;\n\t\t\t\tvar custom = point.custom || {};\n\t\t\t\tvar model = point._model;\n\t\t\t\tmodel.radius = custom.hoverRadius ? custom.hoverRadius : (helpers.getValueAtIndexOrDefault(dataset.hoverRadius, index, me.chart.options.elements.point.hoverRadius)) + me.getRadius(dataset.data[index]);\n\t\t\t},\n\t\n\t\t\tremoveHoverStyle: function(point) {\n\t\t\t\tvar me = this;\n\t\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(me, point, me.chart.options.elements.point);\n\t\n\t\t\t\tvar dataVal = me.chart.data.datasets[point._datasetIndex].data[point._index];\n\t\t\t\tvar custom = point.custom || {};\n\t\t\t\tvar model = point._model;\n\t\n\t\t\t\tmodel.radius = custom.radius ? custom.radius : me.getRadius(dataVal);\n\t\t\t}\n\t\t});\n\t};\n\n\n/***/ },\n/* 202 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tvar helpers = Chart.helpers,\n\t\t\tdefaults = Chart.defaults;\n\t\n\t\tdefaults.doughnut = {\n\t\t\tanimation: {\n\t\t\t\t//Boolean - Whether we animate the rotation of the Doughnut\n\t\t\t\tanimateRotate: true,\n\t\t\t\t//Boolean - Whether we animate scaling the Doughnut from the centre\n\t\t\t\tanimateScale: false\n\t\t\t},\n\t\t\taspectRatio: 1,\n\t\t\thover: {\n\t\t\t\tmode: 'single'\n\t\t\t},\n\t\t\tlegendCallback: function(chart) {\n\t\t\t\tvar text = [];\n\t\t\t\ttext.push('
    ');\n\t\n\t\t\t\tvar data = chart.data;\n\t\t\t\tvar datasets = data.datasets;\n\t\t\t\tvar labels = data.labels;\n\t\n\t\t\t\tif (datasets.length) {\n\t\t\t\t\tfor (var i = 0; i < datasets[0].data.length; ++i) {\n\t\t\t\t\t\ttext.push('
  • ');\n\t\t\t\t\t\tif (labels[i]) {\n\t\t\t\t\t\t\ttext.push(labels[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttext.push('
  • ');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\ttext.push('
');\n\t\t\t\treturn text.join(\"\");\n\t\t\t},\n\t\t\tlegend: {\n\t\t\t\tlabels: {\n\t\t\t\t\tgenerateLabels: function(chart) {\n\t\t\t\t\t\tvar data = chart.data;\n\t\t\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\t\t\tvar ds = data.datasets[0];\n\t\t\t\t\t\t\t\tvar arc = meta.data[i];\n\t\t\t\t\t\t\t\tvar custom = arc && arc.custom || {};\n\t\t\t\t\t\t\t\tvar getValueAtIndexOrDefault = helpers.getValueAtIndexOrDefault;\n\t\t\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\n\t\t\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : getValueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\n\t\t\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : getValueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\n\t\t\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : getValueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\n\t\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\t\t\tfillStyle: fill,\n\t\t\t\t\t\t\t\t\tstrokeStyle: stroke,\n\t\t\t\t\t\t\t\t\tlineWidth: bw,\n\t\t\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\n\t\n\t\t\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn [];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\n\t\t\t\tonClick: function(e, legendItem) {\n\t\t\t\t\tvar index = legendItem.index;\n\t\t\t\t\tvar chart = this.chart;\n\t\t\t\t\tvar i, ilen, meta;\n\t\n\t\t\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tchart.update();\n\t\t\t\t}\n\t\t\t},\n\t\n\t\t\t//The percentage of the chart that we cut out of the middle.\n\t\t\tcutoutPercentage: 50,\n\t\n\t\t\t//The rotation of the chart, where the first data arc begins.\n\t\t\trotation: Math.PI * -0.5,\n\t\n\t\t\t//The total circumference of the chart.\n\t\t\tcircumference: Math.PI * 2.0,\n\t\n\t\t\t// Need to override these to give a nice default\n\t\t\ttooltips: {\n\t\t\t\tcallbacks: {\n\t\t\t\t\ttitle: function() {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t},\n\t\t\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\t\t\treturn data.labels[tooltipItem.index] + ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\n\t\tdefaults.pie = helpers.clone(defaults.doughnut);\n\t\thelpers.extend(defaults.pie, {\n\t\t\tcutoutPercentage: 0\n\t\t});\n\t\n\t\n\t\tChart.controllers.doughnut = Chart.controllers.pie = Chart.DatasetController.extend({\n\t\n\t\t\tdataElementType: Chart.elements.Arc,\n\t\n\t\t\tlinkScales: helpers.noop,\n\t\n\t\t\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\t\t\tgetRingIndex: function(datasetIndex) {\n\t\t\t\tvar ringIndex = 0;\n\t\n\t\t\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t\t\t++ringIndex;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn ringIndex;\n\t\t\t},\n\t\n\t\t\tupdate: function(reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar chart = me.chart,\n\t\t\t\t\tchartArea = chart.chartArea,\n\t\t\t\t\topts = chart.options,\n\t\t\t\t\tarcOpts = opts.elements.arc,\n\t\t\t\t\tavailableWidth = chartArea.right - chartArea.left - arcOpts.borderWidth,\n\t\t\t\t\tavailableHeight = chartArea.bottom - chartArea.top - arcOpts.borderWidth,\n\t\t\t\t\tminSize = Math.min(availableWidth, availableHeight),\n\t\t\t\t\toffset = {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0\n\t\t\t\t\t},\n\t\t\t\t\tmeta = me.getMeta(),\n\t\t\t\t\tcutoutPercentage = opts.cutoutPercentage,\n\t\t\t\t\tcircumference = opts.circumference;\n\t\n\t\t\t\t// If the chart's circumference isn't a full circle, calculate minSize as a ratio of the width/height of the arc\n\t\t\t\tif (circumference < Math.PI * 2.0) {\n\t\t\t\t\tvar startAngle = opts.rotation % (Math.PI * 2.0);\n\t\t\t\t\tstartAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0);\n\t\t\t\t\tvar endAngle = startAngle + circumference;\n\t\t\t\t\tvar start = {x: Math.cos(startAngle), y: Math.sin(startAngle)};\n\t\t\t\t\tvar end = {x: Math.cos(endAngle), y: Math.sin(endAngle)};\n\t\t\t\t\tvar contains0 = (startAngle <= 0 && 0 <= endAngle) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle);\n\t\t\t\t\tvar contains90 = (startAngle <= Math.PI * 0.5 && Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 2.5 && Math.PI * 2.5 <= endAngle);\n\t\t\t\t\tvar contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle);\n\t\t\t\t\tvar contains270 = (startAngle <= -Math.PI * 0.5 && -Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 1.5 && Math.PI * 1.5 <= endAngle);\n\t\t\t\t\tvar cutout = cutoutPercentage / 100.0;\n\t\t\t\t\tvar min = {x: contains180 ? -1 : Math.min(start.x * (start.x < 0 ? 1 : cutout), end.x * (end.x < 0 ? 1 : cutout)), y: contains270 ? -1 : Math.min(start.y * (start.y < 0 ? 1 : cutout), end.y * (end.y < 0 ? 1 : cutout))};\n\t\t\t\t\tvar max = {x: contains0 ? 1 : Math.max(start.x * (start.x > 0 ? 1 : cutout), end.x * (end.x > 0 ? 1 : cutout)), y: contains90 ? 1 : Math.max(start.y * (start.y > 0 ? 1 : cutout), end.y * (end.y > 0 ? 1 : cutout))};\n\t\t\t\t\tvar size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5};\n\t\t\t\t\tminSize = Math.min(availableWidth / size.width, availableHeight / size.height);\n\t\t\t\t\toffset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5};\n\t\t\t\t}\n\t chart.borderWidth = me.getMaxBorderWidth(meta.data);\n\t\n\t\t\t\tchart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0);\n\t\t\t\tchart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 1, 0);\n\t\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\t\t\t\tchart.offsetX = offset.x * chart.outerRadius;\n\t\t\t\tchart.offsetY = offset.y * chart.outerRadius;\n\t\n\t\t\t\tmeta.total = me.calculateTotal();\n\t\n\t\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.getRingIndex(me.index));\n\t\t\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t\n\t\t\t\thelpers.each(meta.data, function(arc, index) {\n\t\t\t\t\tme.updateElement(arc, index, reset);\n\t\t\t\t});\n\t\t\t},\n\t\n\t\t\tupdateElement: function(arc, index, reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar chart = me.chart,\n\t\t\t\t\tchartArea = chart.chartArea,\n\t\t\t\t\topts = chart.options,\n\t\t\t\t\tanimationOpts = opts.animation,\n\t\t\t\t\tcenterX = (chartArea.left + chartArea.right) / 2,\n\t\t\t\t\tcenterY = (chartArea.top + chartArea.bottom) / 2,\n\t\t\t\t\tstartAngle = opts.rotation, // non reset case handled later\n\t\t\t\t\tendAngle = opts.rotation, // non reset case handled later\n\t\t\t\t\tdataset = me.getDataset(),\n\t\t\t\t\tcircumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI)),\n\t\t\t\t\tinnerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius,\n\t\t\t\t\touterRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius,\n\t\t\t\t\tvalueAtIndexOrDefault = helpers.getValueAtIndexOrDefault;\n\t\n\t\t\t\thelpers.extend(arc, {\n\t\t\t\t\t// Utility\n\t\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t\t_index: index,\n\t\n\t\t\t\t\t// Desired view properties\n\t\t\t\t\t_model: {\n\t\t\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\t\t\tstartAngle: startAngle,\n\t\t\t\t\t\tendAngle: endAngle,\n\t\t\t\t\t\tcircumference: circumference,\n\t\t\t\t\t\touterRadius: outerRadius,\n\t\t\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\t\t\tlabel: valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tvar model = arc._model;\n\t\t\t\t// Resets the visual styles\n\t\t\t\tthis.removeHoverStyle(arc);\n\t\n\t\t\t\t// Set correct angles if not resetting\n\t\t\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t\t\t}\n\t\n\t\t\t\tarc.pivot();\n\t\t\t},\n\t\n\t\t\tremoveHoverStyle: function(arc) {\n\t\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\n\t\t\t},\n\t\n\t\t\tcalculateTotal: function() {\n\t\t\t\tvar dataset = this.getDataset();\n\t\t\t\tvar meta = this.getMeta();\n\t\t\t\tvar total = 0;\n\t\t\t\tvar value;\n\t\n\t\t\t\thelpers.each(meta.data, function(element, index) {\n\t\t\t\t\tvalue = dataset.data[index];\n\t\t\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\t\t\ttotal += Math.abs(value);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\t/*if (total === 0) {\n\t\t\t\t\ttotal = NaN;\n\t\t\t\t}*/\n\t\n\t\t\t\treturn total;\n\t\t\t},\n\t\n\t\t\tcalculateCircumference: function(value) {\n\t\t\t\tvar total = this.getMeta().total;\n\t\t\t\tif (total > 0 && !isNaN(value)) {\n\t\t\t\t\treturn (Math.PI * 2.0) * (value / total);\n\t\t\t\t} else {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t\t//gets the max border or hover width to properly scale pie charts\n\t getMaxBorderWidth: function (elements) {\n\t var max = 0,\n\t\t\t\t\tindex = this.index,\n\t\t\t\t\tlength = elements.length,\n\t\t\t\t\tborderWidth,\n\t\t\t\t\thoverWidth;\n\t\n\t for (var i = 0; i < length; i++) {\n\t \tborderWidth = elements[i]._model ? elements[i]._model.borderWidth : 0;\n\t hoverWidth = elements[i]._chart ? elements[i]._chart.config.data.datasets[index].hoverBorderWidth : 0;\n\t\t\t\t\t\n\t max = borderWidth > max ? borderWidth : max;\n\t max = hoverWidth > max ? hoverWidth : max;\n\t }\n\t return max;\n\t }\n\t\t});\n\t};\n\n\n/***/ },\n/* 203 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tvar helpers = Chart.helpers;\n\t\n\t\tChart.defaults.line = {\n\t\t\tshowLines: true,\n\t\t\tspanGaps: false,\n\t\n\t\t\thover: {\n\t\t\t\tmode: \"label\"\n\t\t\t},\n\t\n\t\t\tscales: {\n\t\t\t\txAxes: [{\n\t\t\t\t\ttype: \"category\",\n\t\t\t\t\tid: 'x-axis-0'\n\t\t\t\t}],\n\t\t\t\tyAxes: [{\n\t\t\t\t\ttype: \"linear\",\n\t\t\t\t\tid: 'y-axis-0'\n\t\t\t\t}]\n\t\t\t}\n\t\t};\n\t\n\t\tfunction lineEnabled(dataset, options) {\n\t\t\treturn helpers.getValueOrDefault(dataset.showLine, options.showLines);\n\t\t}\n\t\n\t\tChart.controllers.line = Chart.DatasetController.extend({\n\t\n\t\t\tdatasetElementType: Chart.elements.Line,\n\t\n\t\t\tdataElementType: Chart.elements.Point,\n\t\n\t\t\taddElementAndReset: function(index) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar options = me.chart.options;\n\t\t\t\tvar meta = me.getMeta();\n\t\n\t\t\t\tChart.DatasetController.prototype.addElementAndReset.call(me, index);\n\t\n\t\t\t\t// Make sure bezier control points are updated\n\t\t\t\tif (lineEnabled(me.getDataset(), options) && meta.dataset._model.tension !== 0) {\n\t\t\t\t\tme.updateBezierControlPoints();\n\t\t\t\t}\n\t\t\t},\n\t\n\t\t\tupdate: function(reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar line = meta.dataset;\n\t\t\t\tvar points = meta.data || [];\n\t\t\t\tvar options = me.chart.options;\n\t\t\t\tvar lineElementOptions = options.elements.line;\n\t\t\t\tvar scale = me.getScaleForId(meta.yAxisID);\n\t\t\t\tvar i, ilen, custom;\n\t\t\t\tvar dataset = me.getDataset();\n\t\t\t\tvar showLine = lineEnabled(dataset, options);\n\t\n\t\t\t\t// Update Line\n\t\t\t\tif (showLine) {\n\t\t\t\t\tcustom = line.custom || {};\n\t\n\t\t\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n\t\t\t\t\t\tdataset.lineTension = dataset.tension;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// Utility\n\t\t\t\t\tline._scale = scale;\n\t\t\t\t\tline._datasetIndex = me.index;\n\t\t\t\t\t// Data\n\t\t\t\t\tline._children = points;\n\t\t\t\t\t// Model\n\t\t\t\t\tline._model = {\n\t\t\t\t\t\t// Appearance\n\t\t\t\t\t\t// The default behavior of lines is to break at null values, according\n\t\t\t\t\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t\t\t\t\t// This option gives linse the ability to span gaps\n\t\t\t\t\t\tspanGaps: dataset.spanGaps ? dataset.spanGaps : options.spanGaps,\n\t\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.getValueOrDefault(dataset.lineTension, lineElementOptions.tension),\n\t\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\n\t\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\n\t\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\n\t\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\n\t\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\n\t\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\n\t\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\n\t\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\n\t\t\t\t\t\tsteppedLine: custom.steppedLine ? custom.steppedLine : helpers.getValueOrDefault(dataset.steppedLine, lineElementOptions.stepped),\n\t\t\t\t\t\tcubicInterpolationMode: custom.cubicInterpolationMode ? custom.cubicInterpolationMode : helpers.getValueOrDefault(dataset.cubicInterpolationMode, lineElementOptions.cubicInterpolationMode),\n\t\t\t\t\t\t// Scale\n\t\t\t\t\t\tscaleTop: scale.top,\n\t\t\t\t\t\tscaleBottom: scale.bottom,\n\t\t\t\t\t\tscaleZero: scale.getBasePixel()\n\t\t\t\t\t};\n\t\n\t\t\t\t\tline.pivot();\n\t\t\t\t}\n\t\n\t\t\t\t// Update Points\n\t\t\t\tfor (i=0, ilen=points.length; i');\n\t\n\t\t\t\tvar data = chart.data;\n\t\t\t\tvar datasets = data.datasets;\n\t\t\t\tvar labels = data.labels;\n\t\n\t\t\t\tif (datasets.length) {\n\t\t\t\t\tfor (var i = 0; i < datasets[0].data.length; ++i) {\n\t\t\t\t\t\ttext.push('
  • ');\n\t\t\t\t\t\tif (labels[i]) {\n\t\t\t\t\t\t\ttext.push(labels[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttext.push('
  • ');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\ttext.push('');\n\t\t\t\treturn text.join(\"\");\n\t\t\t},\n\t\t\tlegend: {\n\t\t\t\tlabels: {\n\t\t\t\t\tgenerateLabels: function(chart) {\n\t\t\t\t\t\tvar data = chart.data;\n\t\t\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\t\t\tvar ds = data.datasets[0];\n\t\t\t\t\t\t\t\tvar arc = meta.data[i];\n\t\t\t\t\t\t\t\tvar custom = arc.custom || {};\n\t\t\t\t\t\t\t\tvar getValueAtIndexOrDefault = helpers.getValueAtIndexOrDefault;\n\t\t\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\n\t\t\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : getValueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\n\t\t\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : getValueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\n\t\t\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : getValueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\n\t\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\t\t\tfillStyle: fill,\n\t\t\t\t\t\t\t\t\tstrokeStyle: stroke,\n\t\t\t\t\t\t\t\t\tlineWidth: bw,\n\t\t\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\n\t\n\t\t\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn [];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\n\t\t\t\tonClick: function(e, legendItem) {\n\t\t\t\t\tvar index = legendItem.index;\n\t\t\t\t\tvar chart = this.chart;\n\t\t\t\t\tvar i, ilen, meta;\n\t\n\t\t\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tchart.update();\n\t\t\t\t}\n\t\t\t},\n\t\n\t\t\t// Need to override these to give a nice default\n\t\t\ttooltips: {\n\t\t\t\tcallbacks: {\n\t\t\t\t\ttitle: function() {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t},\n\t\t\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\t\t\treturn data.labels[tooltipItem.index] + ': ' + tooltipItem.yLabel;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\n\t\tChart.controllers.polarArea = Chart.DatasetController.extend({\n\t\n\t\t\tdataElementType: Chart.elements.Arc,\n\t\n\t\t\tlinkScales: helpers.noop,\n\t\n\t\t\tupdate: function(reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar chart = me.chart;\n\t\t\t\tvar chartArea = chart.chartArea;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar opts = chart.options;\n\t\t\t\tvar arcOpts = opts.elements.arc;\n\t\t\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\t\t\t\tchart.outerRadius = Math.max((minSize - arcOpts.borderWidth / 2) / 2, 0);\n\t\t\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\t\n\t\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\t\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t\n\t\t\t\tmeta.count = me.countVisibleElements();\n\t\n\t\t\t\thelpers.each(meta.data, function(arc, index) {\n\t\t\t\t\tme.updateElement(arc, index, reset);\n\t\t\t\t});\n\t\t\t},\n\t\n\t\t\tupdateElement: function(arc, index, reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar chart = me.chart;\n\t\t\t\tvar dataset = me.getDataset();\n\t\t\t\tvar opts = chart.options;\n\t\t\t\tvar animationOpts = opts.animation;\n\t\t\t\tvar scale = chart.scale;\n\t\t\t\tvar getValueAtIndexOrDefault = helpers.getValueAtIndexOrDefault;\n\t\t\t\tvar labels = chart.data.labels;\n\t\n\t\t\t\tvar circumference = me.calculateCircumference(dataset.data[index]);\n\t\t\t\tvar centerX = scale.xCenter;\n\t\t\t\tvar centerY = scale.yCenter;\n\t\n\t\t\t\t// If there is NaN data before us, we need to calculate the starting angle correctly.\n\t\t\t\t// We could be way more efficient here, but its unlikely that the polar area chart will have a lot of data\n\t\t\t\tvar visibleCount = 0;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tfor (var i = 0; i < index; ++i) {\n\t\t\t\t\tif (!isNaN(dataset.data[i]) && !meta.data[i].hidden) {\n\t\t\t\t\t\t++visibleCount;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\t//var negHalfPI = -0.5 * Math.PI;\n\t\t\t\tvar datasetStartAngle = opts.startAngle;\n\t\t\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\t\t\tvar startAngle = datasetStartAngle + (circumference * visibleCount);\n\t\t\t\tvar endAngle = startAngle + (arc.hidden ? 0 : circumference);\n\t\n\t\t\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\n\t\t\t\thelpers.extend(arc, {\n\t\t\t\t\t// Utility\n\t\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t\t_index: index,\n\t\t\t\t\t_scale: scale,\n\t\n\t\t\t\t\t// Desired view properties\n\t\t\t\t\t_model: {\n\t\t\t\t\t\tx: centerX,\n\t\t\t\t\t\ty: centerY,\n\t\t\t\t\t\tinnerRadius: 0,\n\t\t\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\t\t\tlabel: getValueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\t// Apply border and fill style\n\t\t\t\tme.removeHoverStyle(arc);\n\t\n\t\t\t\tarc.pivot();\n\t\t\t},\n\t\n\t\t\tremoveHoverStyle: function(arc) {\n\t\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\n\t\t\t},\n\t\n\t\t\tcountVisibleElements: function() {\n\t\t\t\tvar dataset = this.getDataset();\n\t\t\t\tvar meta = this.getMeta();\n\t\t\t\tvar count = 0;\n\t\n\t\t\t\thelpers.each(meta.data, function(element, index) {\n\t\t\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\t\t\tcount++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\treturn count;\n\t\t\t},\n\t\n\t\t\tcalculateCircumference: function(value) {\n\t\t\t\tvar count = this.getMeta().count;\n\t\t\t\tif (count > 0 && !isNaN(value)) {\n\t\t\t\t\treturn (2 * Math.PI) / count;\n\t\t\t\t} else {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\n/***/ },\n/* 205 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tvar helpers = Chart.helpers;\n\t\n\t\tChart.defaults.radar = {\n\t\t\tscale: {\n\t\t\t\ttype: \"radialLinear\"\n\t\t\t},\n\t\t\telements: {\n\t\t\t\tline: {\n\t\t\t\t\ttension: 0 // no bezier in radar\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\n\t\tChart.controllers.radar = Chart.DatasetController.extend({\n\t\n\t\t\tdatasetElementType: Chart.elements.Line,\n\t\n\t\t\tdataElementType: Chart.elements.Point,\n\t\n\t\t\tlinkScales: helpers.noop,\n\t\n\t\t\taddElementAndReset: function(index) {\n\t\t\t\tChart.DatasetController.prototype.addElementAndReset.call(this, index);\n\t\n\t\t\t\t// Make sure bezier control points are updated\n\t\t\t\tthis.updateBezierControlPoints();\n\t\t\t},\n\t\n\t\t\tupdate: function(reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar meta = me.getMeta();\n\t\t\t\tvar line = meta.dataset;\n\t\t\t\tvar points = meta.data;\n\t\t\t\tvar custom = line.custom || {};\n\t\t\t\tvar dataset = me.getDataset();\n\t\t\t\tvar lineElementOptions = me.chart.options.elements.line;\n\t\t\t\tvar scale = me.chart.scale;\n\t\n\t\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n\t\t\t\t\tdataset.lineTension = dataset.tension;\n\t\t\t\t}\n\t\n\t\t\t\thelpers.extend(meta.dataset, {\n\t\t\t\t\t// Utility\n\t\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t\t// Data\n\t\t\t\t\t_children: points,\n\t\t\t\t\t_loop: true,\n\t\t\t\t\t// Model\n\t\t\t\t\t_model: {\n\t\t\t\t\t\t// Appearance\n\t\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.getValueOrDefault(dataset.lineTension, lineElementOptions.tension),\n\t\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\n\t\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\n\t\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\n\t\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\n\t\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\n\t\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\n\t\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\n\t\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\n\t\n\t\t\t\t\t\t// Scale\n\t\t\t\t\t\tscaleTop: scale.top,\n\t\t\t\t\t\tscaleBottom: scale.bottom,\n\t\t\t\t\t\tscaleZero: scale.getBasePosition()\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmeta.dataset.pivot();\n\t\n\t\t\t\t// Update Points\n\t\t\t\thelpers.each(points, function(point, index) {\n\t\t\t\t\tme.updateElement(point, index, reset);\n\t\t\t\t}, me);\n\t\n\t\n\t\t\t\t// Update bezier control points\n\t\t\t\tme.updateBezierControlPoints();\n\t\t\t},\n\t\t\tupdateElement: function(point, index, reset) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar custom = point.custom || {};\n\t\t\t\tvar dataset = me.getDataset();\n\t\t\t\tvar scale = me.chart.scale;\n\t\t\t\tvar pointElementOptions = me.chart.options.elements.point;\n\t\t\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\t\n\t\t\t\thelpers.extend(point, {\n\t\t\t\t\t// Utility\n\t\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t\t_index: index,\n\t\t\t\t\t_scale: scale,\n\t\n\t\t\t\t\t// Desired view properties\n\t\t\t\t\t_model: {\n\t\t\t\t\t\tx: reset ? scale.xCenter : pointPosition.x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\t\t\t\ty: reset ? scale.yCenter : pointPosition.y,\n\t\n\t\t\t\t\t\t// Appearance\n\t\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.getValueOrDefault(dataset.tension, me.chart.options.elements.line.tension),\n\t\t\t\t\t\tradius: custom.radius ? custom.radius : helpers.getValueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius),\n\t\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.getValueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor),\n\t\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.getValueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor),\n\t\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.getValueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth),\n\t\t\t\t\t\tpointStyle: custom.pointStyle ? custom.pointStyle : helpers.getValueAtIndexOrDefault(dataset.pointStyle, index, pointElementOptions.pointStyle),\n\t\n\t\t\t\t\t\t// Tooltip\n\t\t\t\t\t\thitRadius: custom.hitRadius ? custom.hitRadius : helpers.getValueAtIndexOrDefault(dataset.hitRadius, index, pointElementOptions.hitRadius)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tpoint._model.skip = custom.skip ? custom.skip : (isNaN(point._model.x) || isNaN(point._model.y));\n\t\t\t},\n\t\t\tupdateBezierControlPoints: function() {\n\t\t\t\tvar chartArea = this.chart.chartArea;\n\t\t\t\tvar meta = this.getMeta();\n\t\n\t\t\t\thelpers.each(meta.data, function(point, index) {\n\t\t\t\t\tvar model = point._model;\n\t\t\t\t\tvar controlPoints = helpers.splineCurve(\n\t\t\t\t\t\thelpers.previousItem(meta.data, index, true)._model,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\thelpers.nextItem(meta.data, index, true)._model,\n\t\t\t\t\t\tmodel.tension\n\t\t\t\t\t);\n\t\n\t\t\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\t\t\tmodel.controlPointPreviousX = Math.max(Math.min(controlPoints.previous.x, chartArea.right), chartArea.left);\n\t\t\t\t\tmodel.controlPointPreviousY = Math.max(Math.min(controlPoints.previous.y, chartArea.bottom), chartArea.top);\n\t\n\t\t\t\t\tmodel.controlPointNextX = Math.max(Math.min(controlPoints.next.x, chartArea.right), chartArea.left);\n\t\t\t\t\tmodel.controlPointNextY = Math.max(Math.min(controlPoints.next.y, chartArea.bottom), chartArea.top);\n\t\n\t\t\t\t\t// Now pivot the point for animation\n\t\t\t\t\tpoint.pivot();\n\t\t\t\t});\n\t\t\t},\n\t\n\t\t\tdraw: function(ease) {\n\t\t\t\tvar meta = this.getMeta();\n\t\t\t\tvar easingDecimal = ease || 1;\n\t\n\t\t\t\t// Transition Point Locations\n\t\t\t\thelpers.each(meta.data, function(point) {\n\t\t\t\t\tpoint.transition(easingDecimal);\n\t\t\t\t});\n\t\n\t\t\t\t// Transition and Draw the line\n\t\t\t\tmeta.dataset.transition(easingDecimal).draw();\n\t\n\t\t\t\t// Draw the points\n\t\t\t\thelpers.each(meta.data, function(point) {\n\t\t\t\t\tpoint.draw();\n\t\t\t\t});\n\t\t\t},\n\t\n\t\t\tsetHoverStyle: function(point) {\n\t\t\t\t// Point\n\t\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\n\t\t\t\tvar custom = point.custom || {};\n\t\t\t\tvar index = point._index;\n\t\t\t\tvar model = point._model;\n\t\n\t\t\t\tmodel.radius = custom.hoverRadius ? custom.hoverRadius : helpers.getValueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\n\t\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.getValueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n\t\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.getValueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n\t\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.getValueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\n\t\t\t},\n\t\n\t\t\tremoveHoverStyle: function(point) {\n\t\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\n\t\t\t\tvar custom = point.custom || {};\n\t\t\t\tvar index = point._index;\n\t\t\t\tvar model = point._model;\n\t\t\t\tvar pointElementOptions = this.chart.options.elements.point;\n\t\n\t\t\t\tmodel.radius = custom.radius ? custom.radius : helpers.getValueAtIndexOrDefault(dataset.radius, index, pointElementOptions.radius);\n\t\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.getValueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor);\n\t\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : helpers.getValueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor);\n\t\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.getValueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth);\n\t\t\t}\n\t\t});\n\t};\n\n\n/***/ },\n/* 206 */\n/***/ function(module, exports) {\n\n\t/*global window: false */\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tvar helpers = Chart.helpers;\n\t\n\t\tChart.defaults.global.animation = {\n\t\t\tduration: 1000,\n\t\t\teasing: \"easeOutQuart\",\n\t\t\tonProgress: helpers.noop,\n\t\t\tonComplete: helpers.noop\n\t\t};\n\t\n\t\tChart.Animation = Chart.Element.extend({\n\t\t\tcurrentStep: null, // the current animation step\n\t\t\tnumSteps: 60, // default number of steps\n\t\t\teasing: \"\", // the easing to use for this animation\n\t\t\trender: null, // render function used by the animation service\n\t\n\t\t\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\t\t\tonAnimationComplete: null // user specified callback to fire when the animation finishes\n\t\t});\n\t\n\t\tChart.animationService = {\n\t\t\tframeDuration: 17,\n\t\t\tanimations: [],\n\t\t\tdropFrames: 0,\n\t\t\trequest: null,\n\t\t\taddAnimation: function(chartInstance, animationObject, duration, lazy) {\n\t\t\t\tvar me = this;\n\t\n\t\t\t\tif (!lazy) {\n\t\t\t\t\tchartInstance.animating = true;\n\t\t\t\t}\n\t\n\t\t\t\tfor (var index = 0; index < me.animations.length; ++index) {\n\t\t\t\t\tif (me.animations[index].chartInstance === chartInstance) {\n\t\t\t\t\t\t// replacing an in progress animation\n\t\t\t\t\t\tme.animations[index].animationObject = animationObject;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\tme.animations.push({\n\t\t\t\t\tchartInstance: chartInstance,\n\t\t\t\t\tanimationObject: animationObject\n\t\t\t\t});\n\t\n\t\t\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\t\t\tif (me.animations.length === 1) {\n\t\t\t\t\tme.requestAnimationFrame();\n\t\t\t\t}\n\t\t\t},\n\t\t\t// Cancel the animation for a given chart instance\n\t\t\tcancelAnimation: function(chartInstance) {\n\t\t\t\tvar index = helpers.findIndex(this.animations, function(animationWrapper) {\n\t\t\t\t\treturn animationWrapper.chartInstance === chartInstance;\n\t\t\t\t});\n\t\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tthis.animations.splice(index, 1);\n\t\t\t\t\tchartInstance.animating = false;\n\t\t\t\t}\n\t\t\t},\n\t\t\trequestAnimationFrame: function() {\n\t\t\t\tvar me = this;\n\t\t\t\tif (me.request === null) {\n\t\t\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\t\t\tme.request = helpers.requestAnimFrame.call(window, function() {\n\t\t\t\t\t\tme.request = null;\n\t\t\t\t\t\tme.startDigest();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tstartDigest: function() {\n\t\t\t\tvar me = this;\n\t\n\t\t\t\tvar startTime = Date.now();\n\t\t\t\tvar framesToDrop = 0;\n\t\n\t\t\t\tif (me.dropFrames > 1) {\n\t\t\t\t\tframesToDrop = Math.floor(me.dropFrames);\n\t\t\t\t\tme.dropFrames = me.dropFrames % 1;\n\t\t\t\t}\n\t\n\t\t\t\tvar i = 0;\n\t\t\t\twhile (i < me.animations.length) {\n\t\t\t\t\tif (me.animations[i].animationObject.currentStep === null) {\n\t\t\t\t\t\tme.animations[i].animationObject.currentStep = 0;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tme.animations[i].animationObject.currentStep += 1 + framesToDrop;\n\t\n\t\t\t\t\tif (me.animations[i].animationObject.currentStep > me.animations[i].animationObject.numSteps) {\n\t\t\t\t\t\tme.animations[i].animationObject.currentStep = me.animations[i].animationObject.numSteps;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tme.animations[i].animationObject.render(me.animations[i].chartInstance, me.animations[i].animationObject);\n\t\t\t\t\tif (me.animations[i].animationObject.onAnimationProgress && me.animations[i].animationObject.onAnimationProgress.call) {\n\t\t\t\t\t\tme.animations[i].animationObject.onAnimationProgress.call(me.animations[i].chartInstance, me.animations[i]);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (me.animations[i].animationObject.currentStep === me.animations[i].animationObject.numSteps) {\n\t\t\t\t\t\tif (me.animations[i].animationObject.onAnimationComplete && me.animations[i].animationObject.onAnimationComplete.call) {\n\t\t\t\t\t\t\tme.animations[i].animationObject.onAnimationComplete.call(me.animations[i].chartInstance, me.animations[i]);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// executed the last frame. Remove the animation.\n\t\t\t\t\t\tme.animations[i].chartInstance.animating = false;\n\t\n\t\t\t\t\t\tme.animations.splice(i, 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t++i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\tvar endTime = Date.now();\n\t\t\t\tvar dropFrames = (endTime - startTime) / me.frameDuration;\n\t\n\t\t\t\tme.dropFrames += dropFrames;\n\t\n\t\t\t\t// Do we have more stuff to animate?\n\t\t\t\tif (me.animations.length > 0) {\n\t\t\t\t\tme.requestAnimationFrame();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t};\n\n/***/ },\n/* 207 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\t// Global Chart canvas helpers object for drawing items to canvas\n\t\tvar helpers = Chart.canvasHelpers = {};\n\t\n\t\thelpers.drawPoint = function(ctx, pointStyle, radius, x, y) {\n\t\t\tvar type, edgeLength, xOffset, yOffset, height, size;\n\t\n\t\t\tif (typeof pointStyle === 'object') {\n\t\t\t\ttype = pointStyle.toString();\n\t\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\t\tctx.drawImage(pointStyle, x - pointStyle.width / 2, y - pointStyle.height / 2);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tswitch (pointStyle) {\n\t\t\t// Default includes circle\n\t\t\tdefault:\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.arc(x, y, radius, 0, Math.PI * 2);\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.fill();\n\t\t\t\tbreak;\n\t\t\tcase 'triangle':\n\t\t\t\tctx.beginPath();\n\t\t\t\tedgeLength = 3 * radius / Math.sqrt(3);\n\t\t\t\theight = edgeLength * Math.sqrt(3) / 2;\n\t\t\t\tctx.moveTo(x - edgeLength / 2, y + height / 3);\n\t\t\t\tctx.lineTo(x + edgeLength / 2, y + height / 3);\n\t\t\t\tctx.lineTo(x, y - 2 * height / 3);\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.fill();\n\t\t\t\tbreak;\n\t\t\tcase 'rect':\n\t\t\t\tsize = 1 / Math.SQRT2 * radius;\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.fillRect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tctx.strokeRect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\tcase 'rectRot':\n\t\t\t\tsize = 1 / Math.SQRT2 * radius;\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(x - size, y);\n\t\t\t\tctx.lineTo(x, y + size);\n\t\t\t\tctx.lineTo(x + size, y);\n\t\t\t\tctx.lineTo(x, y - size);\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.fill();\n\t\t\t\tbreak;\n\t\t\tcase 'cross':\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(x, y + radius);\n\t\t\t\tctx.lineTo(x, y - radius);\n\t\t\t\tctx.moveTo(x - radius, y);\n\t\t\t\tctx.lineTo(x + radius, y);\n\t\t\t\tctx.closePath();\n\t\t\t\tbreak;\n\t\t\tcase 'crossRot':\n\t\t\t\tctx.beginPath();\n\t\t\t\txOffset = Math.cos(Math.PI / 4) * radius;\n\t\t\t\tyOffset = Math.sin(Math.PI / 4) * radius;\n\t\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\t\tctx.moveTo(x - xOffset, y + yOffset);\n\t\t\t\tctx.lineTo(x + xOffset, y - yOffset);\n\t\t\t\tctx.closePath();\n\t\t\t\tbreak;\n\t\t\tcase 'star':\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(x, y + radius);\n\t\t\t\tctx.lineTo(x, y - radius);\n\t\t\t\tctx.moveTo(x - radius, y);\n\t\t\t\tctx.lineTo(x + radius, y);\n\t\t\t\txOffset = Math.cos(Math.PI / 4) * radius;\n\t\t\t\tyOffset = Math.sin(Math.PI / 4) * radius;\n\t\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\t\tctx.moveTo(x - xOffset, y + yOffset);\n\t\t\t\tctx.lineTo(x + xOffset, y - yOffset);\n\t\t\t\tctx.closePath();\n\t\t\t\tbreak;\n\t\t\tcase 'line':\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(x - radius, y);\n\t\t\t\tctx.lineTo(x + radius, y);\n\t\t\t\tctx.closePath();\n\t\t\t\tbreak;\n\t\t\tcase 'dash':\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(x, y);\n\t\t\t\tctx.lineTo(x + radius, y);\n\t\t\t\tctx.closePath();\n\t\t\t\tbreak;\n\t\t\t}\n\t\n\t\t\tctx.stroke();\n\t\t};\n\t};\n\n/***/ },\n/* 208 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function(Chart) {\n\t\n\t\tvar helpers = Chart.helpers;\n\t\t//Create a dictionary of chart types, to allow for extension of existing types\n\t\tChart.types = {};\n\t\n\t\t//Store a reference to each instance - allowing us to globally resize chart instances on window resize.\n\t\t//Destroy method on the chart will remove the instance of the chart from this reference.\n\t\tChart.instances = {};\n\t\n\t\t// Controllers available for dataset visualization eg. bar, line, slice, etc.\n\t\tChart.controllers = {};\n\t\n\t\t/**\n\t\t * @class Chart.Controller\n\t\t * The main controller of a chart.\n\t\t */\n\t\tChart.Controller = function(instance) {\n\t\n\t\t\tthis.chart = instance;\n\t\t\tthis.config = instance.config;\n\t\t\tthis.options = this.config.options = helpers.configMerge(Chart.defaults.global, Chart.defaults[this.config.type], this.config.options || {});\n\t\t\tthis.id = helpers.uid();\n\t\n\t\t\tObject.defineProperty(this, 'data', {\n\t\t\t\tget: function() {\n\t\t\t\t\treturn this.config.data;\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\t//Add the chart instance to the global namespace\n\t\t\tChart.instances[this.id] = this;\n\t\n\t\t\tif (this.options.responsive) {\n\t\t\t\t// Silent resize before chart draws\n\t\t\t\tthis.resize(true);\n\t\t\t}\n\t\n\t\t\tthis.initialize();\n\t\n\t\t\treturn this;\n\t\t};\n\t\n\t\thelpers.extend(Chart.Controller.prototype, /** @lends Chart.Controller */ {\n\t\n\t\t\tinitialize: function() {\n\t\t\t\tvar me = this;\n\t\t\t\t// Before init plugin notification\n\t\t\t\tChart.plugins.notify('beforeInit', [me]);\n\t\n\t\t\t\tme.bindEvents();\n\t\n\t\t\t\t// Make sure controllers are built first so that each dataset is bound to an axis before the scales\n\t\t\t\t// are built\n\t\t\t\tme.ensureScalesHaveIDs();\n\t\t\t\tme.buildOrUpdateControllers();\n\t\t\t\tme.buildScales();\n\t\t\t\tme.updateLayout();\n\t\t\t\tme.resetElements();\n\t\t\t\tme.initToolTip();\n\t\t\t\tme.update();\n\t\n\t\t\t\t// After init plugin notification\n\t\t\t\tChart.plugins.notify('afterInit', [me]);\n\t\n\t\t\t\treturn me;\n\t\t\t},\n\t\n\t\t\tclear: function() {\n\t\t\t\thelpers.clear(this.chart);\n\t\t\t\treturn this;\n\t\t\t},\n\t\n\t\t\tstop: function() {\n\t\t\t\t// Stops any current animation loop occuring\n\t\t\t\tChart.animationService.cancelAnimation(this);\n\t\t\t\treturn this;\n\t\t\t},\n\t\n\t\t\tresize: function resize(silent) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar chart = me.chart;\n\t\t\t\tvar canvas = chart.canvas;\n\t\t\t\tvar newWidth = helpers.getMaximumWidth(canvas);\n\t\t\t\tvar aspectRatio = chart.aspectRatio;\n\t\t\t\tvar newHeight = (me.options.maintainAspectRatio && isNaN(aspectRatio) === false && isFinite(aspectRatio) && aspectRatio !== 0) ? newWidth / aspectRatio : helpers.getMaximumHeight(canvas);\n\t\n\t\t\t\tvar sizeChanged = chart.width !== newWidth || chart.height !== newHeight;\n\t\n\t\t\t\tif (!sizeChanged) {\n\t\t\t\t\treturn me;\n\t\t\t\t}\n\t\n\t\t\t\tcanvas.width = chart.width = newWidth;\n\t\t\t\tcanvas.height = chart.height = newHeight;\n\t\n\t\t\t\thelpers.retinaScale(chart);\n\t\n\t\t\t\t// Notify any plugins about the resize\n\t\t\t\tvar newSize = { width: newWidth, height: newHeight };\n\t\t\t\tChart.plugins.notify('resize', [me, newSize]);\n\t\n\t\t\t\t// Notify of resize\n\t\t\t\tif (me.options.onResize) {\n\t\t\t\t\tme.options.onResize(me, newSize);\n\t\t\t\t}\n\t\n\t\t\t\tif (!silent) {\n\t\t\t\t\tme.stop();\n\t\t\t\t\tme.update(me.options.responsiveAnimationDuration);\n\t\t\t\t}\n\t\n\t\t\t\treturn me;\n\t\t\t},\n\t\n\t\t\tensureScalesHaveIDs: function() {\n\t\t\t\tvar options = this.options;\n\t\t\t\tvar scalesOptions = options.scales || {};\n\t\t\t\tvar scaleOptions = options.scale;\n\t\n\t\t\t\thelpers.each(scalesOptions.xAxes, function(xAxisOptions, index) {\n\t\t\t\t\txAxisOptions.id = xAxisOptions.id || ('x-axis-' + index);\n\t\t\t\t});\n\t\n\t\t\t\thelpers.each(scalesOptions.yAxes, function(yAxisOptions, index) {\n\t\t\t\t\tyAxisOptions.id = yAxisOptions.id || ('y-axis-' + index);\n\t\t\t\t});\n\t\n\t\t\t\tif (scaleOptions) {\n\t\t\t\t\tscaleOptions.id = scaleOptions.id || 'scale';\n\t\t\t\t}\n\t\t\t},\n\t\n\t\t\t/**\n\t\t\t * Builds a map of scale ID to scale object for future lookup.\n\t\t\t */\n\t\t\tbuildScales: function() {\n\t\t\t\tvar me = this;\n\t\t\t\tvar options = me.options;\n\t\t\t\tvar scales = me.scales = {};\n\t\t\t\tvar items = [];\n\t\n\t\t\t\tif (options.scales) {\n\t\t\t\t\titems = items.concat(\n\t\t\t\t\t\t(options.scales.xAxes || []).map(function(xAxisOptions) {\n\t\t\t\t\t\t\treturn { options: xAxisOptions, dtype: 'category' }; }),\n\t\t\t\t\t\t(options.scales.yAxes || []).map(function(yAxisOptions) {\n\t\t\t\t\t\t\treturn { options: yAxisOptions, dtype: 'linear' }; }));\n\t\t\t\t}\n\t\n\t\t\t\tif (options.scale) {\n\t\t\t\t\titems.push({ options: options.scale, dtype: 'radialLinear', isDefault: true });\n\t\t\t\t}\n\t\n\t\t\t\thelpers.each(items, function(item) {\n\t\t\t\t\tvar scaleOptions = item.options;\n\t\t\t\t\tvar scaleType = helpers.getValueOrDefault(scaleOptions.type, item.dtype);\n\t\t\t\t\tvar scaleClass = Chart.scaleService.getScaleConstructor(scaleType);\n\t\t\t\t\tif (!scaleClass) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tvar scale = new scaleClass({\n\t\t\t\t\t\tid: scaleOptions.id,\n\t\t\t\t\t\toptions: scaleOptions,\n\t\t\t\t\t\tctx: me.chart.ctx,\n\t\t\t\t\t\tchart: me\n\t\t\t\t\t});\n\t\n\t\t\t\t\tscales[scale.id] = scale;\n\t\n\t\t\t\t\t// TODO(SB): I think we should be able to remove this custom case (options.scale)\n\t\t\t\t\t// and consider it as a regular scale part of the \"scales\"\" map only! This would\n\t\t\t\t\t// make the logic easier and remove some useless? custom code.\n\t\t\t\t\tif (item.isDefault) {\n\t\t\t\t\t\tme.scale = scale;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tChart.scaleService.addScalesToLayout(this);\n\t\t\t},\n\t\n\t\t\tupdateLayout: function() {\n\t\t\t\tChart.layoutService.update(this, this.chart.width, this.chart.height);\n\t\t\t},\n\t\n\t\t\tbuildOrUpdateControllers: function() {\n\t\t\t\tvar me = this;\n\t\t\t\tvar types = [];\n\t\t\t\tvar newControllers = [];\n\t\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\n\t\t\t\t\tif (!meta.type) {\n\t\t\t\t\t\tmeta.type = dataset.type || me.config.type;\n\t\t\t\t\t}\n\t\n\t\t\t\t\ttypes.push(meta.type);\n\t\n\t\t\t\t\tif (meta.controller) {\n\t\t\t\t\t\tmeta.controller.updateIndex(datasetIndex);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmeta.controller = new Chart.controllers[meta.type](me, datasetIndex);\n\t\t\t\t\t\tnewControllers.push(meta.controller);\n\t\t\t\t\t}\n\t\t\t\t}, me);\n\t\n\t\t\t\tif (types.length > 1) {\n\t\t\t\t\tfor (var i = 1; i < types.length; i++) {\n\t\t\t\t\t\tif (types[i] !== types[i - 1]) {\n\t\t\t\t\t\t\tme.isCombo = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn newControllers;\n\t\t\t},\n\t\n\t\t\tresetElements: function() {\n\t\t\t\tvar me = this;\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tme.getDatasetMeta(datasetIndex).controller.reset();\n\t\t\t\t}, me);\n\t\t\t},\n\t\n\t\t\tupdate: function update(animationDuration, lazy) {\n\t\t\t\tvar me = this;\n\t\t\t\tChart.plugins.notify('beforeUpdate', [me]);\n\t\n\t\t\t\t// In case the entire data object changed\n\t\t\t\tme.tooltip._data = me.data;\n\t\n\t\t\t\t// Make sure dataset controllers are updated and new controllers are reset\n\t\t\t\tvar newControllers = me.buildOrUpdateControllers();\n\t\n\t\t\t\t// Make sure all dataset controllers have correct meta data counts\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tme.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements();\n\t\t\t\t}, me);\n\t\n\t\t\t\tChart.layoutService.update(me, me.chart.width, me.chart.height);\n\t\n\t\t\t\t// Apply changes to the dataets that require the scales to have been calculated i.e BorderColor chages\n\t\t\t\tChart.plugins.notify('afterScaleUpdate', [me]);\n\t\n\t\t\t\t// Can only reset the new controllers after the scales have been updated\n\t\t\t\thelpers.each(newControllers, function(controller) {\n\t\t\t\t\tcontroller.reset();\n\t\t\t\t});\n\t\n\t\t\t\tme.updateDatasets();\n\t\n\t\t\t\t// Do this before render so that any plugins that need final scale updates can use it\n\t\t\t\tChart.plugins.notify('afterUpdate', [me]);\n\t\n\t\t\t\tme.render(animationDuration, lazy);\n\t\t\t},\n\t\n\t\t\t/**\n\t\t\t * @method beforeDatasetsUpdate\n\t\t\t * @description Called before all datasets are updated. If a plugin returns false,\n\t\t\t * the datasets update will be cancelled until another chart update is triggered.\n\t\t\t * @param {Object} instance the chart instance being updated.\n\t\t\t * @returns {Boolean} false to cancel the datasets update.\n\t\t\t * @memberof Chart.PluginBase\n\t\t\t * @since version 2.1.5\n\t\t\t * @instance\n\t\t\t */\n\t\n\t\t\t/**\n\t\t\t * @method afterDatasetsUpdate\n\t\t\t * @description Called after all datasets have been updated. Note that this\n\t\t\t * extension will not be called if the datasets update has been cancelled.\n\t\t\t * @param {Object} instance the chart instance being updated.\n\t\t\t * @memberof Chart.PluginBase\n\t\t\t * @since version 2.1.5\n\t\t\t * @instance\n\t\t\t */\n\t\n\t\t\t/**\n\t\t\t * Updates all datasets unless a plugin returns false to the beforeDatasetsUpdate\n\t\t\t * extension, in which case no datasets will be updated and the afterDatasetsUpdate\n\t\t\t * notification will be skipped.\n\t\t\t * @protected\n\t\t\t * @instance\n\t\t\t */\n\t\t\tupdateDatasets: function() {\n\t\t\t\tvar me = this;\n\t\t\t\tvar i, ilen;\n\t\n\t\t\t\tif (Chart.plugins.notify('beforeDatasetsUpdate', [ me ])) {\n\t\t\t\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\t\t\t\tme.getDatasetMeta(i).controller.update();\n\t\t\t\t\t}\n\t\n\t\t\t\t\tChart.plugins.notify('afterDatasetsUpdate', [ me ]);\n\t\t\t\t}\n\t\t\t},\n\t\n\t\t\trender: function render(duration, lazy) {\n\t\t\t\tvar me = this;\n\t\t\t\tChart.plugins.notify('beforeRender', [me]);\n\t\n\t\t\t\tvar animationOptions = me.options.animation;\n\t\t\t\tif (animationOptions && ((typeof duration !== 'undefined' && duration !== 0) || (typeof duration === 'undefined' && animationOptions.duration !== 0))) {\n\t\t\t\t\tvar animation = new Chart.Animation();\n\t\t\t\t\tanimation.numSteps = (duration || animationOptions.duration) / 16.66; //60 fps\n\t\t\t\t\tanimation.easing = animationOptions.easing;\n\t\n\t\t\t\t\t// render function\n\t\t\t\t\tanimation.render = function(chartInstance, animationObject) {\n\t\t\t\t\t\tvar easingFunction = helpers.easingEffects[animationObject.easing];\n\t\t\t\t\t\tvar stepDecimal = animationObject.currentStep / animationObject.numSteps;\n\t\t\t\t\t\tvar easeDecimal = easingFunction(stepDecimal);\n\t\n\t\t\t\t\t\tchartInstance.draw(easeDecimal, stepDecimal, animationObject.currentStep);\n\t\t\t\t\t};\n\t\n\t\t\t\t\t// user events\n\t\t\t\t\tanimation.onAnimationProgress = animationOptions.onProgress;\n\t\t\t\t\tanimation.onAnimationComplete = animationOptions.onComplete;\n\t\n\t\t\t\t\tChart.animationService.addAnimation(me, animation, duration, lazy);\n\t\t\t\t} else {\n\t\t\t\t\tme.draw();\n\t\t\t\t\tif (animationOptions && animationOptions.onComplete && animationOptions.onComplete.call) {\n\t\t\t\t\t\tanimationOptions.onComplete.call(me);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn me;\n\t\t\t},\n\t\n\t\t\tdraw: function(ease) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar easingDecimal = ease || 1;\n\t\t\t\tme.clear();\n\t\n\t\t\t\tChart.plugins.notify('beforeDraw', [me, easingDecimal]);\n\t\n\t\t\t\t// Draw all the scales\n\t\t\t\thelpers.each(me.boxes, function(box) {\n\t\t\t\t\tbox.draw(me.chartArea);\n\t\t\t\t}, me);\n\t\t\t\tif (me.scale) {\n\t\t\t\t\tme.scale.draw();\n\t\t\t\t}\n\t\n\t\t\t\tChart.plugins.notify('beforeDatasetsDraw', [me, easingDecimal]);\n\t\n\t\t\t\t// Draw each dataset via its respective controller (reversed to support proper line stacking)\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tif (me.isDatasetVisible(datasetIndex)) {\n\t\t\t\t\t\tme.getDatasetMeta(datasetIndex).controller.draw(ease);\n\t\t\t\t\t}\n\t\t\t\t}, me, true);\n\t\n\t\t\t\tChart.plugins.notify('afterDatasetsDraw', [me, easingDecimal]);\n\t\n\t\t\t\t// Finally draw the tooltip\n\t\t\t\tme.tooltip.transition(easingDecimal).draw();\n\t\n\t\t\t\tChart.plugins.notify('afterDraw', [me, easingDecimal]);\n\t\t\t},\n\t\n\t\t\t// Get the single element that was clicked on\n\t\t\t// @return : An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\n\t\t\tgetElementAtEvent: function(e) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar eventPosition = helpers.getRelativePosition(e, me.chart);\n\t\t\t\tvar elementsArray = [];\n\t\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tif (me.isDatasetVisible(datasetIndex)) {\n\t\t\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\n\t\t\t\t\t\thelpers.each(meta.data, function(element) {\n\t\t\t\t\t\t\tif (element.inRange(eventPosition.x, eventPosition.y)) {\n\t\t\t\t\t\t\t\telementsArray.push(element);\n\t\t\t\t\t\t\t\treturn elementsArray;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\treturn elementsArray.slice(0, 1);\n\t\t\t},\n\t\n\t\t\tgetElementsAtEvent: function(e) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar eventPosition = helpers.getRelativePosition(e, me.chart);\n\t\t\t\tvar elementsArray = [];\n\t\n\t\t\t\tvar found = (function() {\n\t\t\t\t\tif (me.data.datasets) {\n\t\t\t\t\t\tfor (var i = 0; i < me.data.datasets.length; i++) {\n\t\t\t\t\t\t\tvar meta = me.getDatasetMeta(i);\n\t\t\t\t\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\t\t\t\t\tfor (var j = 0; j < meta.data.length; j++) {\n\t\t\t\t\t\t\t\t\tif (meta.data[j].inRange(eventPosition.x, eventPosition.y)) {\n\t\t\t\t\t\t\t\t\t\treturn meta.data[j];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}).call(me);\n\t\n\t\t\t\tif (!found) {\n\t\t\t\t\treturn elementsArray;\n\t\t\t\t}\n\t\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tif (me.isDatasetVisible(datasetIndex)) {\n\t\t\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex),\n\t\t\t\t\t\t\telement = meta.data[found._index];\n\t\t\t\t\t\tif(element && !element._view.skip){\n\t\t\t\t\t\t\telementsArray.push(element);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, me);\n\t\n\t\t\t\treturn elementsArray;\n\t\t\t},\n\t\n\t\t\tgetElementsAtXAxis: function(e) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar eventPosition = helpers.getRelativePosition(e, me.chart);\n\t\t\t\tvar elementsArray = [];\n\t\n\t\t\t\tvar found = (function() {\n\t\t\t\t\tif (me.data.datasets) {\n\t\t\t\t\t\tfor (var i = 0; i < me.data.datasets.length; i++) {\n\t\t\t\t\t\t\tvar meta = me.getDatasetMeta(i);\n\t\t\t\t\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\t\t\t\t\tfor (var j = 0; j < meta.data.length; j++) {\n\t\t\t\t\t\t\t\t\tif (meta.data[j].inLabelRange(eventPosition.x, eventPosition.y)) {\n\t\t\t\t\t\t\t\t\t\treturn meta.data[j];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}).call(me);\n\t\n\t\t\t\tif (!found) {\n\t\t\t\t\treturn elementsArray;\n\t\t\t\t}\n\t\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tif (me.isDatasetVisible(datasetIndex)) {\n\t\t\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\n\t\t\t\t\t\tvar index = helpers.findIndex(meta.data, function (it) {\n\t\t\t\t\t\t\treturn found._model.x === it._model.x;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif(index !== -1 && !meta.data[index]._view.skip) {\n\t\t\t\t\t\t\telementsArray.push(meta.data[index]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, me);\n\t\n\t\t\t\treturn elementsArray;\n\t\t\t},\t\t\n\t\n\t\t\tgetElementsAtEventForMode: function(e, mode) {\n\t\t\t\tvar me = this;\n\t\t\t\tswitch (mode) {\n\t\t\t\tcase 'single':\n\t\t\t\t\treturn me.getElementAtEvent(e);\n\t\t\t\tcase 'label':\n\t\t\t\t\treturn me.getElementsAtEvent(e);\n\t\t\t\tcase 'dataset':\n\t\t\t\t\treturn me.getDatasetAtEvent(e);\n\t case 'x-axis':\n\t return me.getElementsAtXAxis(e);\n\t\t\t\tdefault:\n\t\t\t\t\treturn e;\n\t\t\t\t}\n\t\t\t},\n\t\n\t\t\tgetDatasetAtEvent: function(e) {\n\t\t\t\tvar elementsArray = this.getElementAtEvent(e);\n\t\n\t\t\t\tif (elementsArray.length > 0) {\n\t\t\t\t\telementsArray = this.getDatasetMeta(elementsArray[0]._datasetIndex).data;\n\t\t\t\t}\n\t\n\t\t\t\treturn elementsArray;\n\t\t\t},\n\t\n\t\t\tgetDatasetMeta: function(datasetIndex) {\n\t\t\t\tvar me = this;\n\t\t\t\tvar dataset = me.data.datasets[datasetIndex];\n\t\t\t\tif (!dataset._meta) {\n\t\t\t\t\tdataset._meta = {};\n\t\t\t\t}\n\t\n\t\t\t\tvar meta = dataset._meta[me.id];\n\t\t\t\tif (!meta) {\n\t\t\t\t\tmeta = dataset._meta[me.id] = {\n\t\t\t\t\ttype: null,\n\t\t\t\t\tdata: [],\n\t\t\t\t\tdataset: null,\n\t\t\t\t\tcontroller: null,\n\t\t\t\t\thidden: null,\t\t\t// See isDatasetVisible() comment\n\t\t\t\t\txAxisID: null,\n\t\t\t\t\tyAxisID: null\n\t\t\t\t};\n\t\t\t\t}\n\t\n\t\t\t\treturn meta;\n\t\t\t},\n\t\n\t\t\tgetVisibleDatasetCount: function() {\n\t\t\t\tvar count = 0;\n\t\t\t\tfor (var i = 0, ilen = this.data.datasets.length; i