From a3bed8b8b628585c7d8bb96ccbbde95375500e94 Mon Sep 17 00:00:00 2001 From: Jakub Juszczak Date: Sun, 21 Aug 2016 14:38:34 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=8E=20Release=20new=20version=201.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jakub Juszczak --- dist/vue-chartjs.js | 30 ++++++++++++++++-------------- dist/vue-chartjs.js.map | 2 +- package.json | 2 +- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/dist/vue-chartjs.js b/dist/vue-chartjs.js index 1855493..7ecb5a8 100644 --- a/dist/vue-chartjs.js +++ b/dist/vue-chartjs.js @@ -1,20 +1,22 @@ -!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(104),r=a(i),s=n(105),o=a(s),d=n(106),l=a(d),u=n(107),c=a(u),h=n(108),_=a(h),m=n(109),f=a(m),p={Bar:r["default"],Doughnut:o["default"],Line:l["default"],Pie:c["default"],PolarArea:_["default"],Radar:f["default"]};e.exports=p},function(e,t,n){(function(e){!function(t,n){e.exports=n()}(this,function(){"use strict";function t(){return da.apply(null,arguments)}function a(e){da=e}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function s(e,t){var n,a=[];for(n=0;n0)for(n in ua)a=ua[n],i=t[a],m(i)||(e[a]=i);return e}function p(e){f(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),ca===!1&&(ca=!0,t.updateOffset(this),ca=!1)}function g(e){return e instanceof p||null!=e&&null!=e._isAMomentObject}function y(e){return 0>e?Math.ceil(e):Math.floor(e)}function v(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=y(t)),n}function M(e,t,n){var a,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),s=0;for(a=0;i>a;a++)(n&&e[a]!==t[a]||!n&&v(e[a])!==v(t[a]))&&s++;return s+r}function L(e){t.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function b(e,n){var a=!0;return d(function(){return null!=t.deprecationHandler&&t.deprecationHandler(null,e),a&&(L(e+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),a=!1),n.apply(this,arguments)},n)}function k(e,n){null!=t.deprecationHandler&&t.deprecationHandler(e,n),ha[e]||(L(n),ha[e]=!0)}function Y(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function w(e){return"[object Object]"===Object.prototype.toString.call(e)}function D(e){var t,n;for(n in e)t=e[n],Y(t)?this[n]=t:this["_"+n]=t;this._config=e,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function x(e,t){var n,a=d({},e);for(n in t)o(t,n)&&(w(e[n])&&w(t[n])?(a[n]={},d(a[n],e[n]),d(a[n],t[n])):null!=t[n]?a[n]=t[n]:delete a[n]);return a}function T(e){null!=e&&this.set(e)}function S(e){return e?e.toLowerCase().replace("_","-"):e}function H(e){for(var t,n,a,i,r=0;r0;){if(a=C(i.slice(0,t).join("-")))return a;if(n&&n.length>=t&&M(i,n,!0)>=t-1)break;t--}r++}return null}function C(t){var a=null;if(!pa[t]&&"undefined"!=typeof e&&e&&e.exports)try{a=ma._abbr,n(151)("./"+t),j(a)}catch(i){}return pa[t]}function j(e,t){var n;return e&&(n=m(t)?F(e):A(e,t),n&&(ma=n)),ma._abbr}function A(e,t){return null!==t?(t.abbr=e,null!=pa[e]?(k("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),t=x(pa[e]._config,t)):null!=t.parentLocale&&(null!=pa[t.parentLocale]?t=x(pa[t.parentLocale]._config,t):k("parentLocaleUndefined","specified parentLocale is not defined yet")),pa[e]=new T(t),j(e),pa[e]):(delete pa[e],null)}function P(e,t){if(null!=t){var n;null!=pa[e]&&(t=x(pa[e]._config,t)),n=new T(t),n.parentLocale=pa[e],pa[e]=n,j(e)}else null!=pa[e]&&(null!=pa[e].parentLocale?pa[e]=pa[e].parentLocale:null!=pa[e]&&delete pa[e]);return pa[e]}function F(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return ma;if(!i(e)){if(t=C(e))return t;e=[e]}return H(e)}function W(){return _a(pa)}function O(e,t){var n=e.toLowerCase();ga[n]=ga[n+"s"]=ga[t]=e}function I(e){return"string"==typeof e?ga[e]||ga[e.toLowerCase()]:void 0}function E(e){var t,n,a={};for(n in e)o(e,n)&&(t=I(n),t&&(a[t]=e[n]));return a}function R(e,n){return function(a){return null!=a?(V(this,e,a),t.updateOffset(this,n),this):z(this,e)}}function z(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 N(e,t){var n;if("object"==typeof e)for(n in e)this.set(n,e[n]);else if(e=I(e),Y(this[e]))return this[e](t);return this}function B(e,t,n){var a=""+Math.abs(e),i=t-a.length,r=e>=0;return(r?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+a}function $(e,t,n,a){var i=a;"string"==typeof a&&(i=function(){return this[a]()}),e&&(La[e]=i),t&&(La[t[0]]=function(){return B(i.apply(this,arguments),t[1],t[2])}),n&&(La[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function J(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function U(e){var t,n,a=e.match(ya);for(t=0,n=a.length;n>t;t++)La[a[t]]?a[t]=La[a[t]]:a[t]=J(a[t]);return function(t){var i,r="";for(i=0;n>i;i++)r+=a[i]instanceof Function?a[i].call(t,e):a[i];return r}}function G(e,t){return e.isValid()?(t=q(t,e.localeData()),Ma[t]=Ma[t]||U(t),Ma[t](e)):e.localeData().invalidDate()}function q(e,t){function n(e){return t.longDateFormat(e)||e}var a=5;for(va.lastIndex=0;a>=0&&va.test(e);)e=e.replace(va,n),va.lastIndex=0,a-=1;return e}function Z(e,t,n){Ea[e]=Y(t)?t:function(e,a){return e&&n?n:t}}function Q(e,t){return o(Ea,e)?Ea[e](t._strict,t._locale):new RegExp(X(e))}function X(e){return K(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,a,i){return t||n||a||i}))}function K(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ee(e,t){var n,a=t;for("string"==typeof e&&(e=[e]),"number"==typeof t&&(a=function(e,n){n[t]=v(e)}),n=0;na;++a)r=l([2e3,a]),this._shortMonthsParse[a]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?(i=fa.call(this._shortMonthsParse,s),-1!==i?i:null):(i=fa.call(this._longMonthsParse,s),-1!==i?i:null):"MMM"===t?(i=fa.call(this._shortMonthsParse,s),-1!==i?i:(i=fa.call(this._longMonthsParse,s),-1!==i?i:null)):(i=fa.call(this._longMonthsParse,s),-1!==i?i:(i=fa.call(this._shortMonthsParse,s),-1!==i?i:null))}function oe(e,t,n){var a,i,r;if(this._monthsParseExact)return se.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),a=0;12>a;a++){if(i=l([2e3,a]),n&&!this._longMonthsParse[a]&&(this._longMonthsParse[a]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[a]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[a]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[a]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[a].test(e))return a;if(n&&"MMM"===t&&this._shortMonthsParse[a].test(e))return a;if(!n&&this._monthsParse[a].test(e))return a}}function de(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=v(t);else if(t=e.localeData().monthsParse(t),"number"!=typeof t)return e;return n=Math.min(e.date(),ae(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function le(e){return null!=e?(de(this,e),t.updateOffset(this,!0),this):z(this,"Month")}function ue(){return ae(this.year(),this.month())}function ce(e){return this._monthsParseExact?(o(this,"_monthsRegex")||_e.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex}function he(e){return this._monthsParseExact?(o(this,"_monthsRegex")||_e.call(this),e?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex}function _e(){function e(e,t){return t.length-e.length}var t,n,a=[],i=[],r=[];for(t=0;12>t;t++)n=l([2e3,t]),a.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(a.sort(e),i.sort(e),r.sort(e),t=0;12>t;t++)a[t]=K(a[t]),i[t]=K(i[t]),r[t]=K(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+a.join("|")+")","i")}function me(e){var t,n=e._a;return n&&-2===c(e).overflow&&(t=n[Va]<0||n[Va]>11?Va:n[Na]<1||n[Na]>ae(n[za],n[Va])?Na:n[Ba]<0||n[Ba]>24||24===n[Ba]&&(0!==n[$a]||0!==n[Ja]||0!==n[Ua])?Ba:n[$a]<0||n[$a]>59?$a:n[Ja]<0||n[Ja]>59?Ja:n[Ua]<0||n[Ua]>999?Ua:-1,c(e)._overflowDayOfYear&&(za>t||t>Na)&&(t=Na),c(e)._overflowWeeks&&-1===t&&(t=Ga),c(e)._overflowWeekday&&-1===t&&(t=qa),c(e).overflow=t),e}function fe(e){var t,n,a,i,r,s,o=e._i,d=ti.exec(o)||ni.exec(o);if(d){for(c(e).iso=!0,t=0,n=ii.length;n>t;t++)if(ii[t][1].exec(d[1])){i=ii[t][0],a=ii[t][2]!==!1;break}if(null==i)return void(e._isValid=!1);if(d[3]){for(t=0,n=ri.length;n>t;t++)if(ri[t][1].exec(d[3])){r=(d[2]||" ")+ri[t][0];break}if(null==r)return void(e._isValid=!1)}if(!a&&null!=r)return void(e._isValid=!1);if(d[4]){if(!ai.exec(d[4]))return void(e._isValid=!1);s="Z"}e._f=i+(r||"")+(s||""),He(e)}else e._isValid=!1}function pe(e){var n=si.exec(e._i);return null!==n?void(e._d=new Date(+n[1])):(fe(e),void(e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e))))}function ge(e,t,n,a,i,r,s){var o=new Date(e,t,n,a,i,r,s);return 100>e&&e>=0&&isFinite(o.getFullYear())&&o.setFullYear(e),o}function ye(e){var t=new Date(Date.UTC.apply(null,arguments));return 100>e&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function ve(e){return Me(e)?366:365}function Me(e){return e%4===0&&e%100!==0||e%400===0}function Le(){return Me(this.year())}function be(e,t,n){var a=7+t-n,i=(7+ye(e,0,a).getUTCDay()-t)%7;return-i+a-1}function ke(e,t,n,a,i){var r,s,o=(7+n-a)%7,d=be(e,a,i),l=1+7*(t-1)+o+d;return 0>=l?(r=e-1,s=ve(r)+l):l>ve(e)?(r=e+1,s=l-ve(e)):(r=e,s=l),{year:r,dayOfYear:s}}function Ye(e,t,n){var a,i,r=be(e.year(),t,n),s=Math.floor((e.dayOfYear()-r-1)/7)+1;return 1>s?(i=e.year()-1,a=s+we(i,t,n)):s>we(e.year(),t,n)?(a=s-we(e.year(),t,n),i=e.year()+1):(i=e.year(),a=s),{week:a,year:i}}function we(e,t,n){var a=be(e,t,n),i=be(e+1,t,n);return(ve(e)-a+i)/7}function De(e,t,n){return null!=e?e:null!=t?t:n}function xe(e){var n=new Date(t.now());return e._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function Te(e){var t,n,a,i,r=[];if(!e._d){for(a=xe(e),e._w&&null==e._a[Na]&&null==e._a[Va]&&Se(e),e._dayOfYear&&(i=De(e._a[za],a[za]),e._dayOfYear>ve(i)&&(c(e)._overflowDayOfYear=!0),n=ye(i,0,e._dayOfYear),e._a[Va]=n.getUTCMonth(),e._a[Na]=n.getUTCDate()),t=0;3>t&&null==e._a[t];++t)e._a[t]=r[t]=a[t];for(;7>t;t++)e._a[t]=r[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[Ba]&&0===e._a[$a]&&0===e._a[Ja]&&0===e._a[Ua]&&(e._nextDay=!0,e._a[Ba]=0),e._d=(e._useUTC?ye:ge).apply(null,r),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Ba]=24)}}function Se(e){var t,n,a,i,r,s,o,d;t=e._w,null!=t.GG||null!=t.W||null!=t.E?(r=1,s=4,n=De(t.GG,e._a[za],Ye(Ie(),1,4).year),a=De(t.W,1),i=De(t.E,1),(1>i||i>7)&&(d=!0)):(r=e._locale._week.dow,s=e._locale._week.doy,n=De(t.gg,e._a[za],Ye(Ie(),r,s).year),a=De(t.w,1),null!=t.d?(i=t.d,(0>i||i>6)&&(d=!0)):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(d=!0)):i=r),1>a||a>we(n,r,s)?c(e)._overflowWeeks=!0:null!=d?c(e)._overflowWeekday=!0:(o=ke(n,a,i,r,s),e._a[za]=o.year,e._dayOfYear=o.dayOfYear)}function He(e){if(e._f===t.ISO_8601)return void fe(e);e._a=[],c(e).empty=!0;var n,a,i,r,s,o=""+e._i,d=o.length,l=0;for(i=q(e._f,e._locale).match(ya)||[],n=0;n0&&c(e).unusedInput.push(s),o=o.slice(o.indexOf(a)+a.length),l+=a.length),La[r]?(a?c(e).empty=!1:c(e).unusedTokens.push(r),ne(r,a,e)):e._strict&&!a&&c(e).unusedTokens.push(r);c(e).charsLeftOver=d-l,o.length>0&&c(e).unusedInput.push(o),c(e).bigHour===!0&&e._a[Ba]<=12&&e._a[Ba]>0&&(c(e).bigHour=void 0),c(e).parsedDateParts=e._a.slice(0),c(e).meridiem=e._meridiem,e._a[Ba]=Ce(e._locale,e._a[Ba],e._meridiem),Te(e),me(e)}function Ce(e,t,n){var a;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(a=e.isPM(n),a&&12>t&&(t+=12),a||12!==t||(t=0),t):t}function je(e){var t,n,a,i,r;if(0===e._f.length)return c(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;ir)&&(a=r,n=t));d(e,n||t)}function Ae(e){if(!e._d){var t=E(e._i);e._a=s([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),Te(e)}}function Pe(e){var t=new p(me(Fe(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}function Fe(e){var t=e._i,n=e._f;return e._locale=e._locale||F(e._l),null===t||void 0===n&&""===t?_({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),g(t)?new p(me(t)):(i(n)?je(e):n?He(e):r(t)?e._d=t:We(e),h(e)||(e._d=null),e))}function We(e){var n=e._i;void 0===n?e._d=new Date(t.now()):r(n)?e._d=new Date(n.valueOf()):"string"==typeof n?pe(e):i(n)?(e._a=s(n.slice(0),function(e){return parseInt(e,10)}),Te(e)):"object"==typeof n?Ae(e):"number"==typeof n?e._d=new Date(n):t.createFromInputFallback(e)}function Oe(e,t,n,a,i){var r={};return"boolean"==typeof n&&(a=n,n=void 0),r._isAMomentObject=!0,r._useUTC=r._isUTC=i,r._l=n,r._i=e,r._f=t,r._strict=a,Pe(r)}function Ie(e,t,n,a){return Oe(e,t,n,a,!1)}function Ee(e,t){var n,a;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Ie();for(n=t[0],a=1;ae&&(e=-e,n="-"),n+B(~~(e/60),2)+t+B(~~e%60,2)})}function $e(e,t){var n=(t||"").match(e)||[],a=n[n.length-1]||[],i=(a+"").match(ci)||["-",0,0],r=+(60*i[1])+v(i[2]);return"+"===i[0]?r:-r}function Je(e,n){var a,i;return n._isUTC?(a=n.clone(),i=(g(e)||r(e)?e.valueOf():Ie(e).valueOf())-a.valueOf(),a._d.setTime(a._d.valueOf()+i),t.updateOffset(a,!1),a):Ie(e).local()}function Ue(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Ge(e,n){var a,i=this._offset||0;return this.isValid()?null!=e?("string"==typeof e?e=$e(Wa,e):Math.abs(e)<16&&(e=60*e),!this._isUTC&&n&&(a=Ue(this)),this._offset=e,this._isUTC=!0,null!=a&&this.add(a,"m"),i!==e&&(!n||this._changeInProgress?ct(this,rt(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?i:Ue(this):null!=e?this:NaN}function qe(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function Ze(e){return this.utcOffset(0,e)}function Qe(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Ue(this),"m")),this}function Xe(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset($e(Fa,this._i)),this}function Ke(e){return this.isValid()?(e=e?Ie(e).utcOffset():0,(this.utcOffset()-e)%60===0):!1}function et(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function tt(){if(!m(this._isDSTShifted))return this._isDSTShifted;var e={};if(f(e,this),e=Fe(e),e._a){var t=e._isUTC?l(e._a):Ie(e._a);this._isDSTShifted=this.isValid()&&M(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function nt(){return this.isValid()?!this._isUTC:!1}function at(){return this.isValid()?this._isUTC:!1}function it(){return this.isValid()?this._isUTC&&0===this._offset:!1}function rt(e,t){var n,a,i,r=e,s=null;return Ne(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:"number"==typeof e?(r={},t?r[t]=e:r.milliseconds=e):(s=hi.exec(e))?(n="-"===s[1]?-1:1,r={y:0,d:v(s[Na])*n,h:v(s[Ba])*n,m:v(s[$a])*n,s:v(s[Ja])*n,ms:v(s[Ua])*n}):(s=_i.exec(e))?(n="-"===s[1]?-1:1,r={y:st(s[2],n),M:st(s[3],n),w:st(s[4],n),d:st(s[5],n),h:st(s[6],n),m:st(s[7],n),s:st(s[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=dt(Ie(r.from),Ie(r.to)),r={},r.ms=i.milliseconds,r.M=i.months),a=new Ve(r),Ne(e)&&o(e,"_locale")&&(a._locale=e._locale),a}function st(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function ot(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 dt(e,t){var n;return e.isValid()&&t.isValid()?(t=Je(t,e),e.isBefore(t)?n=ot(e,t):(n=ot(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function lt(e){return 0>e?-1*Math.round(-1*e):Math.round(e)}function ut(e,t){return function(n,a){var i,r;return null===a||isNaN(+a)||(k(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period)."),r=n,n=a,a=r),n="string"==typeof n?+n:n,i=rt(n,a),ct(this,i,e),this}}function ct(e,n,a,i){var r=n._milliseconds,s=lt(n._days),o=lt(n._months);e.isValid()&&(i=null==i?!0:i,r&&e._d.setTime(e._d.valueOf()+r*a),s&&V(e,"Date",z(e,"Date")+s*a),o&&de(e,z(e,"Month")+o*a),i&&t.updateOffset(e,s||o))}function ht(e,t){var n=e||Ie(),a=Je(n,this).startOf("day"),i=this.diff(a,"days",!0),r=-6>i?"sameElse":-1>i?"lastWeek":0>i?"lastDay":1>i?"sameDay":2>i?"nextDay":7>i?"nextWeek":"sameElse",s=t&&(Y(t[r])?t[r]():t[r]);return this.format(s||this.localeData().calendar(r,this,Ie(n)))}function _t(){return new p(this)}function mt(e,t){var n=g(e)?e:Ie(e);return this.isValid()&&n.isValid()?(t=I(m(t)?"millisecond":t),"millisecond"===t?this.valueOf()>n.valueOf():n.valueOf()t-r?(n=e.clone().add(i-1,"months"),a=(t-r)/(r-n)):(n=e.clone().add(i+1,"months"),a=(t-r)/(n-r)),-(i+a)||0}function bt(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function kt(){var e=this.clone().utc();return 0r&&(t=r),qt.call(this,e,t,n,a,i))}function qt(e,t,n,a,i){var r=ke(e,t,n,a,i),s=ye(r.year,0,r.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}function Zt(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Qt(e){return Ye(e,this._week.dow,this._week.doy).week}function Xt(){return this._week.dow}function Kt(){return this._week.doy}function en(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function tn(e){var t=Ye(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function nn(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function an(e,t){return i(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]}function rn(e){return this._weekdaysShort[e.day()]}function sn(e){return this._weekdaysMin[e.day()]}function on(e,t,n){var a,i,r,s=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;7>a;++a)r=l([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=fa.call(this._weekdaysParse,s),-1!==i?i:null):"ddd"===t?(i=fa.call(this._shortWeekdaysParse,s),-1!==i?i:null):(i=fa.call(this._minWeekdaysParse,s),-1!==i?i:null):"dddd"===t?(i=fa.call(this._weekdaysParse,s),-1!==i?i:(i=fa.call(this._shortWeekdaysParse,s),-1!==i?i:(i=fa.call(this._minWeekdaysParse,s),-1!==i?i:null))):"ddd"===t?(i=fa.call(this._shortWeekdaysParse,s),-1!==i?i:(i=fa.call(this._weekdaysParse,s),-1!==i?i:(i=fa.call(this._minWeekdaysParse,s),-1!==i?i:null))):(i=fa.call(this._minWeekdaysParse,s),-1!==i?i:(i=fa.call(this._weekdaysParse,s),-1!==i?i:(i=fa.call(this._shortWeekdaysParse,s),-1!==i?i:null)))}function dn(e,t,n){var a,i,r;if(this._weekdaysParseExact)return on.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;7>a;a++){if(i=l([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 ln(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=nn(e,this.localeData()),this.add(e-t,"d")):t}function un(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 cn(e){return this.isValid()?null==e?this.day()||7:this.day(this.day()%7?e:e-7):null!=e?this:NaN}function hn(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||fn.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex}function _n(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||fn.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}function mn(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||fn.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}function fn(){function e(e,t){return t.length-e.length}var t,n,a,i,r,s=[],o=[],d=[],u=[];for(t=0;7>t;t++)n=l([2e3,1]).day(t),a=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),s.push(a),o.push(i),d.push(r),u.push(a),u.push(i),u.push(r);for(s.sort(e),o.sort(e),d.sort(e),u.sort(e),t=0;7>t;t++)o[t]=K(o[t]),d[t]=K(d[t]),u[t]=K(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("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}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 gn(){return this.hours()%12||12}function yn(){return this.hours()||24}function vn(e,t){$(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Mn(e,t){return t._meridiemParse}function Ln(e){return"p"===(e+"").toLowerCase().charAt(0)}function bn(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}function kn(e,t){t[Ua]=v(1e3*("0."+e))}function Yn(){return this._isUTC?"UTC":""}function wn(){return this._isUTC?"Coordinated Universal Time":""}function Dn(e){return Ie(1e3*e)}function xn(){return Ie.apply(null,arguments).parseZone()}function Tn(e,t,n){var a=this._calendar[e];return Y(a)?a.call(t,n):a}function Sn(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])}function Hn(){return this._invalidDate}function Cn(e){return this._ordinal.replace("%d",e)}function jn(e){return e}function An(e,t,n,a){var i=this._relativeTime[n];return Y(i)?i(e,t,n,a):i.replace(/%d/i,e)}function Pn(e,t){var n=this._relativeTime[e>0?"future":"past"];return Y(n)?n(t):n.replace(/%s/i,t)}function Fn(e,t,n,a){var i=F(),r=l().set(a,t);return i[n](r,e)}function Wn(e,t,n){if("number"==typeof e&&(t=e,e=void 0),e=e||"",null!=t)return Fn(e,t,n,"month");var a,i=[];for(a=0;12>a;a++)i[a]=Fn(e,a,n,"month");return i}function On(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=F(),r=e?i._week.dow:0;if(null!=n)return Fn(t,(n+r)%7,a,"day");var s,o=[];for(s=0;7>s;s++)o[s]=Fn(t,(s+r)%7,a,"day");return o}function In(e,t){return Wn(e,t,"months")}function En(e,t){return Wn(e,t,"monthsShort")}function Rn(e,t,n){return On(e,t,n,"weekdays")}function zn(e,t,n){return On(e,t,n,"weekdaysShort")}function Vn(e,t,n){return On(e,t,n,"weekdaysMin")}function Nn(){var e=this._data;return this._milliseconds=Ri(this._milliseconds),this._days=Ri(this._days),this._months=Ri(this._months),e.milliseconds=Ri(e.milliseconds),e.seconds=Ri(e.seconds),e.minutes=Ri(e.minutes),e.hours=Ri(e.hours),e.months=Ri(e.months),e.years=Ri(e.years),this}function Bn(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 $n(e,t){return Bn(this,e,t,1)}function Jn(e,t){return Bn(this,e,t,-1)}function Un(e){return 0>e?Math.floor(e):Math.ceil(e)}function Gn(){var e,t,n,a,i,r=this._milliseconds,s=this._days,o=this._months,d=this._data;return r>=0&&s>=0&&o>=0||0>=r&&0>=s&&0>=o||(r+=864e5*Un(Zn(o)+s),s=0,o=0),d.milliseconds=r%1e3,e=y(r/1e3),d.seconds=e%60,t=y(e/60),d.minutes=t%60,n=y(t/60),d.hours=n%24,s+=y(n/24),i=y(qn(s)),o+=i,s-=Un(Zn(i)),a=y(o/12),o%=12,d.days=s,d.months=o,d.years=a,this}function qn(e){return 4800*e/146097}function Zn(e){return 146097*e/4800; -}function Qn(e){var t,n,a=this._milliseconds;if(e=I(e),"month"===e||"year"===e)return t=this._days+a/864e5,n=this._months+qn(t),"month"===e?n:n/12;switch(t=this._days+Math.round(Zn(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 Xn(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*v(this._months/12)}function Kn(e){return function(){return this.as(e)}}function ea(e){return e=I(e),this[e+"s"]()}function ta(e){return function(){return this._data[e]}}function na(){return y(this.days()/7)}function aa(e,t,n,a,i){return i.relativeTime(t||1,!!n,e,a)}function ia(e,t,n){var a=rt(e).abs(),i=nr(a.as("s")),r=nr(a.as("m")),s=nr(a.as("h")),o=nr(a.as("d")),d=nr(a.as("M")),l=nr(a.as("y")),u=i=r&&["m"]||r=s&&["h"]||s=o&&["d"]||o=d&&["M"]||d=l&&["y"]||["yy",l];return u[2]=t,u[3]=+e>0,u[4]=n,aa.apply(null,u)}function ra(e,t){return void 0===ar[e]?!1:void 0===t?ar[e]:(ar[e]=t,!0)}function sa(e){var t=this.localeData(),n=ia(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}function oa(){var e,t,n,a=ir(this._milliseconds)/1e3,i=ir(this._days),r=ir(this._months);e=y(a/60),t=y(e/60),a%=60,e%=60,n=y(r/12),r%=12;var s=n,o=r,d=i,l=t,u=e,c=a,h=this.asSeconds();return h?(0>h?"-":"")+"P"+(s?s+"Y":"")+(o?o+"M":"")+(d?d+"D":"")+(l||u||c?"T":"")+(l?l+"H":"")+(u?u+"M":"")+(c?c+"S":""):"P0D"}var da,la;la=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,a=0;n>a;a++)if(a in t&&e.call(this,t[a],a,t))return!0;return!1};var ua=t.momentProperties=[],ca=!1,ha={};t.suppressDeprecationWarnings=!1,t.deprecationHandler=null;var _a;_a=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)o(e,t)&&n.push(t);return n};var ma,fa,pa={},ga={},ya=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,va=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ma={},La={},ba=/\d/,ka=/\d\d/,Ya=/\d{3}/,wa=/\d{4}/,Da=/[+-]?\d{6}/,xa=/\d\d?/,Ta=/\d\d\d\d?/,Sa=/\d\d\d\d\d\d?/,Ha=/\d{1,3}/,Ca=/\d{1,4}/,ja=/[+-]?\d{1,6}/,Aa=/\d+/,Pa=/[+-]?\d+/,Fa=/Z|[+-]\d\d:?\d\d/gi,Wa=/Z|[+-]\d\d(?::?\d\d)?/gi,Oa=/[+-]?\d+(\.\d{1,3})?/,Ia=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ea={},Ra={},za=0,Va=1,Na=2,Ba=3,$a=4,Ja=5,Ua=6,Ga=7,qa=8;fa=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t=e?""+e:"+"+e}),$(0,["YY",2],0,function(){return this.year()%100}),$(0,["YYYY",4],0,"year"),$(0,["YYYYY",5],0,"year"),$(0,["YYYYYY",6,!0],0,"year"),O("year","y"),Z("Y",Pa),Z("YY",xa,ka),Z("YYYY",Ca,wa),Z("YYYYY",ja,Da),Z("YYYYYY",ja,Da),ee(["YYYYY","YYYYYY"],za),ee("YYYY",function(e,n){n[za]=2===e.length?t.parseTwoDigitYear(e):v(e)}),ee("YY",function(e,n){n[za]=t.parseTwoDigitYear(e)}),ee("Y",function(e,t){t[za]=parseInt(e,10)}),t.parseTwoDigitYear=function(e){return v(e)+(v(e)>68?1900:2e3)};var oi=R("FullYear",!0);t.ISO_8601=function(){};var di=b("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var e=Ie.apply(null,arguments);return this.isValid()&&e.isValid()?this>e?this:e:_()}),li=b("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var e=Ie.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:_()}),ui=function(){return Date.now?Date.now():+new Date};Be("Z",":"),Be("ZZ",""),Z("Z",Wa),Z("ZZ",Wa),ee(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=$e(Wa,e)});var ci=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var hi=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,_i=/^(-)?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=Ve.prototype;var mi=ut(1,"add"),fi=ut(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var pi=b("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)});$(0,["gg",2],0,function(){return this.weekYear()%100}),$(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Nt("gggg","weekYear"),Nt("ggggg","weekYear"),Nt("GGGG","isoWeekYear"),Nt("GGGGG","isoWeekYear"),O("weekYear","gg"),O("isoWeekYear","GG"),Z("G",Pa),Z("g",Pa),Z("GG",xa,ka),Z("gg",xa,ka),Z("GGGG",Ca,wa),Z("gggg",Ca,wa),Z("GGGGG",ja,Da),Z("ggggg",ja,Da),te(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,a){t[a.substr(0,2)]=v(e)}),te(["gg","GG"],function(e,n,a,i){n[i]=t.parseTwoDigitYear(e)}),$("Q",0,"Qo","quarter"),O("quarter","Q"),Z("Q",ba),ee("Q",function(e,t){t[Va]=3*(v(e)-1)}),$("w",["ww",2],"wo","week"),$("W",["WW",2],"Wo","isoWeek"),O("week","w"),O("isoWeek","W"),Z("w",xa),Z("ww",xa,ka),Z("W",xa),Z("WW",xa,ka),te(["w","ww","W","WW"],function(e,t,n,a){t[a.substr(0,1)]=v(e)});var gi={dow:0,doy:6};$("D",["DD",2],"Do","date"),O("date","D"),Z("D",xa),Z("DD",xa,ka),Z("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),ee(["D","DD"],Na),ee("Do",function(e,t){t[Na]=v(e.match(xa)[0],10)});var yi=R("Date",!0);$("d",0,"do","day"),$("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),$("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),$("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),$("e",0,0,"weekday"),$("E",0,0,"isoWeekday"),O("day","d"),O("weekday","e"),O("isoWeekday","E"),Z("d",xa),Z("e",xa),Z("E",xa),Z("dd",function(e,t){return t.weekdaysMinRegex(e)}),Z("ddd",function(e,t){return t.weekdaysShortRegex(e)}),Z("dddd",function(e,t){return t.weekdaysRegex(e)}),te(["dd","ddd","dddd"],function(e,t,n,a){var i=n._locale.weekdaysParse(e,a,n._strict);null!=i?t.d=i:c(n).invalidWeekday=e}),te(["d","e","E"],function(e,t,n,a){t[a]=v(e)});var vi="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Mi="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Li="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),bi=Ia,ki=Ia,Yi=Ia;$("DDD",["DDDD",3],"DDDo","dayOfYear"),O("dayOfYear","DDD"),Z("DDD",Ha),Z("DDDD",Ya),ee(["DDD","DDDD"],function(e,t,n){n._dayOfYear=v(e)}),$("H",["HH",2],0,"hour"),$("h",["hh",2],0,gn),$("k",["kk",2],0,yn),$("hmm",0,0,function(){return""+gn.apply(this)+B(this.minutes(),2)}),$("hmmss",0,0,function(){return""+gn.apply(this)+B(this.minutes(),2)+B(this.seconds(),2)}),$("Hmm",0,0,function(){return""+this.hours()+B(this.minutes(),2)}),$("Hmmss",0,0,function(){return""+this.hours()+B(this.minutes(),2)+B(this.seconds(),2)}),vn("a",!0),vn("A",!1),O("hour","h"),Z("a",Mn),Z("A",Mn),Z("H",xa),Z("h",xa),Z("HH",xa,ka),Z("hh",xa,ka),Z("hmm",Ta),Z("hmmss",Sa),Z("Hmm",Ta),Z("Hmmss",Sa),ee(["H","HH"],Ba),ee(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ee(["h","hh"],function(e,t,n){t[Ba]=v(e),c(n).bigHour=!0}),ee("hmm",function(e,t,n){var a=e.length-2;t[Ba]=v(e.substr(0,a)),t[$a]=v(e.substr(a)),c(n).bigHour=!0}),ee("hmmss",function(e,t,n){var a=e.length-4,i=e.length-2;t[Ba]=v(e.substr(0,a)),t[$a]=v(e.substr(a,2)),t[Ja]=v(e.substr(i)),c(n).bigHour=!0}),ee("Hmm",function(e,t,n){var a=e.length-2;t[Ba]=v(e.substr(0,a)),t[$a]=v(e.substr(a))}),ee("Hmmss",function(e,t,n){var a=e.length-4,i=e.length-2;t[Ba]=v(e.substr(0,a)),t[$a]=v(e.substr(a,2)),t[Ja]=v(e.substr(i))});var wi=/[ap]\.?m?\.?/i,Di=R("Hours",!0);$("m",["mm",2],0,"minute"),O("minute","m"),Z("m",xa),Z("mm",xa,ka),ee(["m","mm"],$a);var xi=R("Minutes",!1);$("s",["ss",2],0,"second"),O("second","s"),Z("s",xa),Z("ss",xa,ka),ee(["s","ss"],Ja);var Ti=R("Seconds",!1);$("S",0,0,function(){return~~(this.millisecond()/100)}),$(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),$(0,["SSS",3],0,"millisecond"),$(0,["SSSS",4],0,function(){return 10*this.millisecond()}),$(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),$(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),$(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),$(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),$(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),O("millisecond","ms"),Z("S",Ha,ba),Z("SS",Ha,ka),Z("SSS",Ha,Ya);var Si;for(Si="SSSS";Si.length<=9;Si+="S")Z(Si,Aa);for(Si="S";Si.length<=9;Si+="S")ee(Si,kn);var Hi=R("Milliseconds",!1);$("z",0,0,"zoneAbbr"),$("zz",0,0,"zoneName");var Ci=p.prototype;Ci.add=mi,Ci.calendar=ht,Ci.clone=_t,Ci.diff=Mt,Ci.endOf=jt,Ci.format=Yt,Ci.from=wt,Ci.fromNow=Dt,Ci.to=xt,Ci.toNow=Tt,Ci.get=N,Ci.invalidAt=zt,Ci.isAfter=mt,Ci.isBefore=ft,Ci.isBetween=pt,Ci.isSame=gt,Ci.isSameOrAfter=yt,Ci.isSameOrBefore=vt,Ci.isValid=Et,Ci.lang=pi,Ci.locale=St,Ci.localeData=Ht,Ci.max=li,Ci.min=di,Ci.parsingFlags=Rt,Ci.set=N,Ci.startOf=Ct,Ci.subtract=fi,Ci.toArray=Wt,Ci.toObject=Ot,Ci.toDate=Ft,Ci.toISOString=kt,Ci.toJSON=It,Ci.toString=bt,Ci.unix=Pt,Ci.valueOf=At,Ci.creationData=Vt,Ci.year=oi,Ci.isLeapYear=Le,Ci.weekYear=Bt,Ci.isoWeekYear=$t,Ci.quarter=Ci.quarters=Zt,Ci.month=le,Ci.daysInMonth=ue,Ci.week=Ci.weeks=en,Ci.isoWeek=Ci.isoWeeks=tn,Ci.weeksInYear=Ut,Ci.isoWeeksInYear=Jt,Ci.date=yi,Ci.day=Ci.days=ln,Ci.weekday=un,Ci.isoWeekday=cn,Ci.dayOfYear=pn,Ci.hour=Ci.hours=Di,Ci.minute=Ci.minutes=xi,Ci.second=Ci.seconds=Ti,Ci.millisecond=Ci.milliseconds=Hi,Ci.utcOffset=Ge,Ci.utc=Ze,Ci.local=Qe,Ci.parseZone=Xe,Ci.hasAlignedHourOffset=Ke,Ci.isDST=et,Ci.isDSTShifted=tt,Ci.isLocal=nt,Ci.isUtcOffset=at,Ci.isUtc=it,Ci.isUTC=it,Ci.zoneAbbr=Yn,Ci.zoneName=wn,Ci.dates=b("dates accessor is deprecated. Use date instead.",yi),Ci.months=b("months accessor is deprecated. Use month instead",le),Ci.years=b("years accessor is deprecated. Use year instead",oi),Ci.zone=b("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",qe);var ji=Ci,Ai={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Pi={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Fi="Invalid date",Wi="%d",Oi=/\d{1,2}/,Ii={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Ei=T.prototype;Ei._calendar=Ai,Ei.calendar=Tn,Ei._longDateFormat=Pi,Ei.longDateFormat=Sn,Ei._invalidDate=Fi,Ei.invalidDate=Hn,Ei._ordinal=Wi,Ei.ordinal=Cn,Ei._ordinalParse=Oi,Ei.preparse=jn,Ei.postformat=jn,Ei._relativeTime=Ii,Ei.relativeTime=An,Ei.pastFuture=Pn,Ei.set=D,Ei.months=ie,Ei._months=Qa,Ei.monthsShort=re,Ei._monthsShort=Xa,Ei.monthsParse=oe,Ei._monthsRegex=ei,Ei.monthsRegex=he,Ei._monthsShortRegex=Ka,Ei.monthsShortRegex=ce,Ei.week=Qt,Ei._week=gi,Ei.firstDayOfYear=Kt,Ei.firstDayOfWeek=Xt,Ei.weekdays=an,Ei._weekdays=vi,Ei.weekdaysMin=sn,Ei._weekdaysMin=Li,Ei.weekdaysShort=rn,Ei._weekdaysShort=Mi,Ei.weekdaysParse=dn,Ei._weekdaysRegex=bi,Ei.weekdaysRegex=hn,Ei._weekdaysShortRegex=ki,Ei.weekdaysShortRegex=_n,Ei._weekdaysMinRegex=Yi,Ei.weekdaysMinRegex=mn,Ei.isPM=Ln,Ei._meridiemParse=wi,Ei.meridiem=bn,j("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===v(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),t.lang=b("moment.lang is deprecated. Use moment.locale instead.",j),t.langData=b("moment.langData is deprecated. Use moment.localeData instead.",F);var Ri=Math.abs,zi=Kn("ms"),Vi=Kn("s"),Ni=Kn("m"),Bi=Kn("h"),$i=Kn("d"),Ji=Kn("w"),Ui=Kn("M"),Gi=Kn("y"),qi=ta("milliseconds"),Zi=ta("seconds"),Qi=ta("minutes"),Xi=ta("hours"),Ki=ta("days"),er=ta("months"),tr=ta("years"),nr=Math.round,ar={s:45,m:45,h:22,d:26,M:11},ir=Math.abs,rr=Ve.prototype;rr.abs=Nn,rr.add=$n,rr.subtract=Jn,rr.as=Qn,rr.asMilliseconds=zi,rr.asSeconds=Vi,rr.asMinutes=Ni,rr.asHours=Bi,rr.asDays=$i,rr.asWeeks=Ji,rr.asMonths=Ui,rr.asYears=Gi,rr.valueOf=Xn,rr._bubble=Gn,rr.get=ea,rr.milliseconds=qi,rr.seconds=Zi,rr.minutes=Qi,rr.hours=Xi,rr.days=Ki,rr.weeks=na,rr.months=er,rr.years=tr,rr.humanize=sa,rr.toISOString=oa,rr.toString=oa,rr.toJSON=oa,rr.locale=St,rr.localeData=Ht,rr.toIsoString=b("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",oa),rr.lang=pi,$("X",0,0,"unix"),$("x",0,0,"valueOf"),Z("x",Pa),Z("X",Oa),ee("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ee("x",function(e,t,n){n._d=new Date(v(e))}),t.version="2.13.0",a(Ie),t.fn=ji,t.min=Re,t.max=ze,t.now=ui,t.utc=l,t.unix=Dn,t.months=In,t.isDate=r,t.locale=j,t.invalid=_,t.duration=rt,t.isMoment=g,t.weekdays=Rn,t.parseZone=xn,t.localeData=F,t.isDuration=Ne,t.monthsShort=En,t.weekdaysMin=Vn,t.defineLocale=A,t.updateLocale=P,t.locales=W,t.weekdaysShort=zn,t.normalizeUnits=I,t.relativeTimeThreshold=ra,t.prototype=ji;var sr=t;return sr})}).call(t,n(152)(e))},function(e,t,n){var a=n(128)();n(127)(a),n(126)(a),n(123)(a),n(124)(a),n(125)(a),n(129)(a),n(133)(a),n(131)(a),n(132)(a),n(134)(a),n(130)(a),n(135)(a),n(136)(a),n(137)(a),n(138)(a),n(139)(a),n(142)(a),n(140)(a),n(141)(a),n(143)(a),n(144)(a),n(145)(a),n(117)(a),n(118)(a),n(119)(a),n(120)(a),n(121)(a),n(122)(a),n(110)(a),n(111)(a),n(112)(a),n(113)(a),n(114)(a),n(115)(a),n(116)(a),window.Chart=e.exports=a},function(e,t,n){(function(t){/*! +!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(185),r=a(i),o=n(186),s=a(o),l=n(187),d=a(l),u=n(188),c=a(u),h=n(189),_=a(h),f=n(190),m=a(f),p={Bar:r["default"],Doughnut:s["default"],Line:d["default"],Pie:c["default"],PolarArea:_["default"],Radar:m["default"]};e.exports=p},function(e,t,n){(function(e){!function(t,n){e.exports=n()}(this,function(){"use strict";function t(){return la.apply(null,arguments)}function a(e){la=e}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function o(e,t){var n,a=[];for(n=0;n0)for(n in ua)a=ua[n],i=t[a],f(i)||(e[a]=i);return e}function p(e){m(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),ca===!1&&(ca=!0,t.updateOffset(this),ca=!1)}function g(e){return e instanceof p||null!=e&&null!=e._isAMomentObject}function y(e){return 0>e?Math.ceil(e):Math.floor(e)}function v(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=y(t)),n}function M(e,t,n){var a,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),o=0;for(a=0;i>a;a++)(n&&e[a]!==t[a]||!n&&v(e[a])!==v(t[a]))&&o++;return o+r}function b(e){t.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function L(e,n){var a=!0;return l(function(){return null!=t.deprecationHandler&&t.deprecationHandler(null,e),a&&(b(e+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),a=!1),n.apply(this,arguments)},n)}function k(e,n){null!=t.deprecationHandler&&t.deprecationHandler(e,n),ha[e]||(b(n),ha[e]=!0)}function Y(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function x(e){return"[object Object]"===Object.prototype.toString.call(e)}function w(e){var t,n;for(n in e)t=e[n],Y(t)?this[n]=t:this["_"+n]=t;this._config=e,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function D(e,t){var n,a=l({},e);for(n in t)s(t,n)&&(x(e[n])&&x(t[n])?(a[n]={},l(a[n],e[n]),l(a[n],t[n])):null!=t[n]?a[n]=t[n]:delete a[n]);return a}function T(e){null!=e&&this.set(e)}function S(e){return e?e.toLowerCase().replace("_","-"):e}function j(e){for(var t,n,a,i,r=0;r0;){if(a=A(i.slice(0,t).join("-")))return a;if(n&&n.length>=t&&M(i,n,!0)>=t-1)break;t--}r++}return null}function A(t){var a=null;if(!pa[t]&&"undefined"!=typeof e&&e&&e.exports)try{a=fa._abbr,n(357)("./"+t),H(a)}catch(i){}return pa[t]}function H(e,t){var n;return e&&(n=f(t)?F(e):C(e,t),n&&(fa=n)),fa._abbr}function C(e,t){return null!==t?(t.abbr=e,null!=pa[e]?(k("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),t=D(pa[e]._config,t)):null!=t.parentLocale&&(null!=pa[t.parentLocale]?t=D(pa[t.parentLocale]._config,t):k("parentLocaleUndefined","specified parentLocale is not defined yet")),pa[e]=new T(t),H(e),pa[e]):(delete pa[e],null)}function P(e,t){if(null!=t){var n;null!=pa[e]&&(t=D(pa[e]._config,t)),n=new T(t),n.parentLocale=pa[e],pa[e]=n,H(e)}else null!=pa[e]&&(null!=pa[e].parentLocale?pa[e]=pa[e].parentLocale:null!=pa[e]&&delete pa[e]);return pa[e]}function F(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return fa;if(!i(e)){if(t=A(e))return t;e=[e]}return j(e)}function O(){return _a(pa)}function W(e,t){var n=e.toLowerCase();ga[n]=ga[n+"s"]=ga[t]=e}function I(e){return"string"==typeof e?ga[e]||ga[e.toLowerCase()]:void 0}function E(e){var t,n,a={};for(n in e)s(e,n)&&(t=I(n),t&&(a[t]=e[n]));return a}function R(e,n){return function(a){return null!=a?(V(this,e,a),t.updateOffset(this,n),this):z(this,e)}}function z(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 N(e,t){var n;if("object"==typeof e)for(n in e)this.set(n,e[n]);else if(e=I(e),Y(this[e]))return this[e](t);return this}function B(e,t,n){var a=""+Math.abs(e),i=t-a.length,r=e>=0;return(r?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+a}function $(e,t,n,a){var i=a;"string"==typeof a&&(i=function(){return this[a]()}),e&&(ba[e]=i),t&&(ba[t[0]]=function(){return B(i.apply(this,arguments),t[1],t[2])}),n&&(ba[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function J(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function U(e){var t,n,a=e.match(ya);for(t=0,n=a.length;n>t;t++)ba[a[t]]?a[t]=ba[a[t]]:a[t]=J(a[t]);return function(t){var i,r="";for(i=0;n>i;i++)r+=a[i]instanceof Function?a[i].call(t,e):a[i];return r}}function G(e,t){return e.isValid()?(t=q(t,e.localeData()),Ma[t]=Ma[t]||U(t),Ma[t](e)):e.localeData().invalidDate()}function q(e,t){function n(e){return t.longDateFormat(e)||e}var a=5;for(va.lastIndex=0;a>=0&&va.test(e);)e=e.replace(va,n),va.lastIndex=0,a-=1;return e}function Z(e,t,n){Ea[e]=Y(t)?t:function(e,a){return e&&n?n:t}}function K(e,t){return s(Ea,e)?Ea[e](t._strict,t._locale):new RegExp(Q(e))}function Q(e){return X(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,a,i){return t||n||a||i}))}function X(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ee(e,t){var n,a=t;for("string"==typeof e&&(e=[e]),"number"==typeof t&&(a=function(e,n){n[t]=v(e)}),n=0;na;++a)r=d([2e3,a]),this._shortMonthsParse[a]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?(i=ma.call(this._shortMonthsParse,o),-1!==i?i:null):(i=ma.call(this._longMonthsParse,o),-1!==i?i:null):"MMM"===t?(i=ma.call(this._shortMonthsParse,o),-1!==i?i:(i=ma.call(this._longMonthsParse,o),-1!==i?i:null)):(i=ma.call(this._longMonthsParse,o),-1!==i?i:(i=ma.call(this._shortMonthsParse,o),-1!==i?i:null))}function se(e,t,n){var a,i,r;if(this._monthsParseExact)return oe.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),a=0;12>a;a++){if(i=d([2e3,a]),n&&!this._longMonthsParse[a]&&(this._longMonthsParse[a]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[a]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[a]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[a]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[a].test(e))return a;if(n&&"MMM"===t&&this._shortMonthsParse[a].test(e))return a;if(!n&&this._monthsParse[a].test(e))return a}}function le(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=v(t);else if(t=e.localeData().monthsParse(t),"number"!=typeof t)return e;return n=Math.min(e.date(),ae(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function de(e){return null!=e?(le(this,e),t.updateOffset(this,!0),this):z(this,"Month")}function ue(){return ae(this.year(),this.month())}function ce(e){return this._monthsParseExact?(s(this,"_monthsRegex")||_e.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex}function he(e){return this._monthsParseExact?(s(this,"_monthsRegex")||_e.call(this),e?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex}function _e(){function e(e,t){return t.length-e.length}var t,n,a=[],i=[],r=[];for(t=0;12>t;t++)n=d([2e3,t]),a.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(a.sort(e),i.sort(e),r.sort(e),t=0;12>t;t++)a[t]=X(a[t]),i[t]=X(i[t]),r[t]=X(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+a.join("|")+")","i")}function fe(e){var t,n=e._a;return n&&-2===c(e).overflow&&(t=n[Va]<0||n[Va]>11?Va:n[Na]<1||n[Na]>ae(n[za],n[Va])?Na:n[Ba]<0||n[Ba]>24||24===n[Ba]&&(0!==n[$a]||0!==n[Ja]||0!==n[Ua])?Ba:n[$a]<0||n[$a]>59?$a:n[Ja]<0||n[Ja]>59?Ja:n[Ua]<0||n[Ua]>999?Ua:-1,c(e)._overflowDayOfYear&&(za>t||t>Na)&&(t=Na),c(e)._overflowWeeks&&-1===t&&(t=Ga),c(e)._overflowWeekday&&-1===t&&(t=qa),c(e).overflow=t),e}function me(e){var t,n,a,i,r,o,s=e._i,l=ti.exec(s)||ni.exec(s);if(l){for(c(e).iso=!0,t=0,n=ii.length;n>t;t++)if(ii[t][1].exec(l[1])){i=ii[t][0],a=ii[t][2]!==!1;break}if(null==i)return void(e._isValid=!1);if(l[3]){for(t=0,n=ri.length;n>t;t++)if(ri[t][1].exec(l[3])){r=(l[2]||" ")+ri[t][0];break}if(null==r)return void(e._isValid=!1)}if(!a&&null!=r)return void(e._isValid=!1);if(l[4]){if(!ai.exec(l[4]))return void(e._isValid=!1);o="Z"}e._f=i+(r||"")+(o||""),je(e)}else e._isValid=!1}function pe(e){var n=oi.exec(e._i);return null!==n?void(e._d=new Date(+n[1])):(me(e),void(e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e))))}function ge(e,t,n,a,i,r,o){var s=new Date(e,t,n,a,i,r,o);return 100>e&&e>=0&&isFinite(s.getFullYear())&&s.setFullYear(e),s}function ye(e){var t=new Date(Date.UTC.apply(null,arguments));return 100>e&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function ve(e){return Me(e)?366:365}function Me(e){return e%4===0&&e%100!==0||e%400===0}function be(){return Me(this.year())}function Le(e,t,n){var a=7+t-n,i=(7+ye(e,0,a).getUTCDay()-t)%7;return-i+a-1}function ke(e,t,n,a,i){var r,o,s=(7+n-a)%7,l=Le(e,a,i),d=1+7*(t-1)+s+l;return 0>=d?(r=e-1,o=ve(r)+d):d>ve(e)?(r=e+1,o=d-ve(e)):(r=e,o=d),{year:r,dayOfYear:o}}function Ye(e,t,n){var a,i,r=Le(e.year(),t,n),o=Math.floor((e.dayOfYear()-r-1)/7)+1;return 1>o?(i=e.year()-1,a=o+xe(i,t,n)):o>xe(e.year(),t,n)?(a=o-xe(e.year(),t,n),i=e.year()+1):(i=e.year(),a=o),{week:a,year:i}}function xe(e,t,n){var a=Le(e,t,n),i=Le(e+1,t,n);return(ve(e)-a+i)/7}function we(e,t,n){return null!=e?e:null!=t?t:n}function De(e){var n=new Date(t.now());return e._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function Te(e){var t,n,a,i,r=[];if(!e._d){for(a=De(e),e._w&&null==e._a[Na]&&null==e._a[Va]&&Se(e),e._dayOfYear&&(i=we(e._a[za],a[za]),e._dayOfYear>ve(i)&&(c(e)._overflowDayOfYear=!0),n=ye(i,0,e._dayOfYear),e._a[Va]=n.getUTCMonth(),e._a[Na]=n.getUTCDate()),t=0;3>t&&null==e._a[t];++t)e._a[t]=r[t]=a[t];for(;7>t;t++)e._a[t]=r[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[Ba]&&0===e._a[$a]&&0===e._a[Ja]&&0===e._a[Ua]&&(e._nextDay=!0,e._a[Ba]=0),e._d=(e._useUTC?ye:ge).apply(null,r),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Ba]=24)}}function Se(e){var t,n,a,i,r,o,s,l;t=e._w,null!=t.GG||null!=t.W||null!=t.E?(r=1,o=4,n=we(t.GG,e._a[za],Ye(Ie(),1,4).year),a=we(t.W,1),i=we(t.E,1),(1>i||i>7)&&(l=!0)):(r=e._locale._week.dow,o=e._locale._week.doy,n=we(t.gg,e._a[za],Ye(Ie(),r,o).year),a=we(t.w,1),null!=t.d?(i=t.d,(0>i||i>6)&&(l=!0)):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(l=!0)):i=r),1>a||a>xe(n,r,o)?c(e)._overflowWeeks=!0:null!=l?c(e)._overflowWeekday=!0:(s=ke(n,a,i,r,o),e._a[za]=s.year,e._dayOfYear=s.dayOfYear)}function je(e){if(e._f===t.ISO_8601)return void me(e);e._a=[],c(e).empty=!0;var n,a,i,r,o,s=""+e._i,l=s.length,d=0;for(i=q(e._f,e._locale).match(ya)||[],n=0;n0&&c(e).unusedInput.push(o),s=s.slice(s.indexOf(a)+a.length),d+=a.length),ba[r]?(a?c(e).empty=!1:c(e).unusedTokens.push(r),ne(r,a,e)):e._strict&&!a&&c(e).unusedTokens.push(r);c(e).charsLeftOver=l-d,s.length>0&&c(e).unusedInput.push(s),c(e).bigHour===!0&&e._a[Ba]<=12&&e._a[Ba]>0&&(c(e).bigHour=void 0),c(e).parsedDateParts=e._a.slice(0),c(e).meridiem=e._meridiem,e._a[Ba]=Ae(e._locale,e._a[Ba],e._meridiem),Te(e),fe(e)}function Ae(e,t,n){var a;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(a=e.isPM(n),a&&12>t&&(t+=12),a||12!==t||(t=0),t):t}function He(e){var t,n,a,i,r;if(0===e._f.length)return c(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;ir)&&(a=r,n=t));l(e,n||t)}function Ce(e){if(!e._d){var t=E(e._i);e._a=o([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),Te(e)}}function Pe(e){var t=new p(fe(Fe(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}function Fe(e){var t=e._i,n=e._f;return e._locale=e._locale||F(e._l),null===t||void 0===n&&""===t?_({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),g(t)?new p(fe(t)):(i(n)?He(e):n?je(e):r(t)?e._d=t:Oe(e),h(e)||(e._d=null),e))}function Oe(e){var n=e._i;void 0===n?e._d=new Date(t.now()):r(n)?e._d=new Date(n.valueOf()):"string"==typeof n?pe(e):i(n)?(e._a=o(n.slice(0),function(e){return parseInt(e,10)}),Te(e)):"object"==typeof n?Ce(e):"number"==typeof n?e._d=new Date(n):t.createFromInputFallback(e)}function We(e,t,n,a,i){var r={};return"boolean"==typeof n&&(a=n,n=void 0),r._isAMomentObject=!0,r._useUTC=r._isUTC=i,r._l=n,r._i=e,r._f=t,r._strict=a,Pe(r)}function Ie(e,t,n,a){return We(e,t,n,a,!1)}function Ee(e,t){var n,a;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Ie();for(n=t[0],a=1;ae&&(e=-e,n="-"),n+B(~~(e/60),2)+t+B(~~e%60,2)})}function $e(e,t){var n=(t||"").match(e)||[],a=n[n.length-1]||[],i=(a+"").match(ci)||["-",0,0],r=+(60*i[1])+v(i[2]);return"+"===i[0]?r:-r}function Je(e,n){var a,i;return n._isUTC?(a=n.clone(),i=(g(e)||r(e)?e.valueOf():Ie(e).valueOf())-a.valueOf(),a._d.setTime(a._d.valueOf()+i),t.updateOffset(a,!1),a):Ie(e).local()}function Ue(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Ge(e,n){var a,i=this._offset||0;return this.isValid()?null!=e?("string"==typeof e?e=$e(Oa,e):Math.abs(e)<16&&(e=60*e),!this._isUTC&&n&&(a=Ue(this)),this._offset=e,this._isUTC=!0,null!=a&&this.add(a,"m"),i!==e&&(!n||this._changeInProgress?ct(this,rt(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?i:Ue(this):null!=e?this:NaN}function qe(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function Ze(e){return this.utcOffset(0,e)}function Ke(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Ue(this),"m")),this}function Qe(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset($e(Fa,this._i)),this}function Xe(e){return this.isValid()?(e=e?Ie(e).utcOffset():0,(this.utcOffset()-e)%60===0):!1}function et(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function tt(){if(!f(this._isDSTShifted))return this._isDSTShifted;var e={};if(m(e,this),e=Fe(e),e._a){var t=e._isUTC?d(e._a):Ie(e._a);this._isDSTShifted=this.isValid()&&M(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function nt(){return this.isValid()?!this._isUTC:!1}function at(){return this.isValid()?this._isUTC:!1}function it(){return this.isValid()?this._isUTC&&0===this._offset:!1}function rt(e,t){var n,a,i,r=e,o=null;return Ne(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:"number"==typeof e?(r={},t?r[t]=e:r.milliseconds=e):(o=hi.exec(e))?(n="-"===o[1]?-1:1,r={y:0,d:v(o[Na])*n,h:v(o[Ba])*n,m:v(o[$a])*n,s:v(o[Ja])*n,ms:v(o[Ua])*n}):(o=_i.exec(e))?(n="-"===o[1]?-1:1,r={y:ot(o[2],n),M:ot(o[3],n),w:ot(o[4],n),d:ot(o[5],n),h:ot(o[6],n),m:ot(o[7],n),s:ot(o[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=lt(Ie(r.from),Ie(r.to)),r={},r.ms=i.milliseconds,r.M=i.months),a=new Ve(r),Ne(e)&&s(e,"_locale")&&(a._locale=e._locale),a}function ot(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function st(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 lt(e,t){var n;return e.isValid()&&t.isValid()?(t=Je(t,e),e.isBefore(t)?n=st(e,t):(n=st(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function dt(e){return 0>e?-1*Math.round(-1*e):Math.round(e)}function ut(e,t){return function(n,a){var i,r;return null===a||isNaN(+a)||(k(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period)."),r=n,n=a,a=r),n="string"==typeof n?+n:n,i=rt(n,a),ct(this,i,e),this}}function ct(e,n,a,i){var r=n._milliseconds,o=dt(n._days),s=dt(n._months);e.isValid()&&(i=null==i?!0:i,r&&e._d.setTime(e._d.valueOf()+r*a),o&&V(e,"Date",z(e,"Date")+o*a),s&&le(e,z(e,"Month")+s*a),i&&t.updateOffset(e,o||s))}function ht(e,t){var n=e||Ie(),a=Je(n,this).startOf("day"),i=this.diff(a,"days",!0),r=-6>i?"sameElse":-1>i?"lastWeek":0>i?"lastDay":1>i?"sameDay":2>i?"nextDay":7>i?"nextWeek":"sameElse",o=t&&(Y(t[r])?t[r]():t[r]);return this.format(o||this.localeData().calendar(r,this,Ie(n)))}function _t(){return new p(this)}function ft(e,t){var n=g(e)?e:Ie(e);return this.isValid()&&n.isValid()?(t=I(f(t)?"millisecond":t),"millisecond"===t?this.valueOf()>n.valueOf():n.valueOf()t-r?(n=e.clone().add(i-1,"months"),a=(t-r)/(r-n)):(n=e.clone().add(i+1,"months"),a=(t-r)/(n-r)),-(i+a)||0}function Lt(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function kt(){var e=this.clone().utc();return 0r&&(t=r),qt.call(this,e,t,n,a,i))}function qt(e,t,n,a,i){var r=ke(e,t,n,a,i),o=ye(r.year,0,r.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function Zt(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Kt(e){return Ye(e,this._week.dow,this._week.doy).week}function Qt(){return this._week.dow}function Xt(){return this._week.doy}function en(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function tn(e){var t=Ye(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function nn(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function an(e,t){return i(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]}function rn(e){return this._weekdaysShort[e.day()]}function on(e){return this._weekdaysMin[e.day()]}function sn(e,t,n){var a,i,r,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;7>a;++a)r=d([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=ma.call(this._weekdaysParse,o),-1!==i?i:null):"ddd"===t?(i=ma.call(this._shortWeekdaysParse,o),-1!==i?i:null):(i=ma.call(this._minWeekdaysParse,o),-1!==i?i:null):"dddd"===t?(i=ma.call(this._weekdaysParse,o),-1!==i?i:(i=ma.call(this._shortWeekdaysParse,o),-1!==i?i:(i=ma.call(this._minWeekdaysParse,o),-1!==i?i:null))):"ddd"===t?(i=ma.call(this._shortWeekdaysParse,o),-1!==i?i:(i=ma.call(this._weekdaysParse,o),-1!==i?i:(i=ma.call(this._minWeekdaysParse,o),-1!==i?i:null))):(i=ma.call(this._minWeekdaysParse,o),-1!==i?i:(i=ma.call(this._weekdaysParse,o),-1!==i?i:(i=ma.call(this._shortWeekdaysParse,o),-1!==i?i:null)))}function ln(e,t,n){var a,i,r;if(this._weekdaysParseExact)return sn.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;7>a;a++){if(i=d([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 dn(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=nn(e,this.localeData()),this.add(e-t,"d")):t}function un(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 cn(e){return this.isValid()?null==e?this.day()||7:this.day(this.day()%7?e:e-7):null!=e?this:NaN}function hn(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||mn.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex}function _n(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||mn.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}function fn(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||mn.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}function mn(){function e(e,t){return t.length-e.length}var t,n,a,i,r,o=[],s=[],l=[],u=[];for(t=0;7>t;t++)n=d([2e3,1]).day(t),a=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),o.push(a),s.push(i),l.push(r),u.push(a),u.push(i),u.push(r);for(o.sort(e),s.sort(e),l.sort(e),u.sort(e),t=0;7>t;t++)s[t]=X(s[t]),l[t]=X(l[t]),u[t]=X(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}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 gn(){return this.hours()%12||12}function yn(){return this.hours()||24}function vn(e,t){$(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Mn(e,t){return t._meridiemParse}function bn(e){return"p"===(e+"").toLowerCase().charAt(0)}function Ln(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}function kn(e,t){t[Ua]=v(1e3*("0."+e))}function Yn(){return this._isUTC?"UTC":""}function xn(){return this._isUTC?"Coordinated Universal Time":""}function wn(e){return Ie(1e3*e)}function Dn(){return Ie.apply(null,arguments).parseZone()}function Tn(e,t,n){var a=this._calendar[e];return Y(a)?a.call(t,n):a}function Sn(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])}function jn(){return this._invalidDate}function An(e){return this._ordinal.replace("%d",e)}function Hn(e){return e}function Cn(e,t,n,a){var i=this._relativeTime[n];return Y(i)?i(e,t,n,a):i.replace(/%d/i,e)}function Pn(e,t){var n=this._relativeTime[e>0?"future":"past"];return Y(n)?n(t):n.replace(/%s/i,t)}function Fn(e,t,n,a){var i=F(),r=d().set(a,t);return i[n](r,e)}function On(e,t,n){if("number"==typeof e&&(t=e,e=void 0),e=e||"",null!=t)return Fn(e,t,n,"month");var a,i=[];for(a=0;12>a;a++)i[a]=Fn(e,a,n,"month");return i}function Wn(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=F(),r=e?i._week.dow:0;if(null!=n)return Fn(t,(n+r)%7,a,"day");var o,s=[];for(o=0;7>o;o++)s[o]=Fn(t,(o+r)%7,a,"day");return s}function In(e,t){return On(e,t,"months")}function En(e,t){return On(e,t,"monthsShort")}function Rn(e,t,n){return Wn(e,t,n,"weekdays")}function zn(e,t,n){return Wn(e,t,n,"weekdaysShort")}function Vn(e,t,n){return Wn(e,t,n,"weekdaysMin")}function Nn(){var e=this._data;return this._milliseconds=Ri(this._milliseconds),this._days=Ri(this._days),this._months=Ri(this._months),e.milliseconds=Ri(e.milliseconds),e.seconds=Ri(e.seconds),e.minutes=Ri(e.minutes),e.hours=Ri(e.hours),e.months=Ri(e.months),e.years=Ri(e.years),this}function Bn(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 $n(e,t){return Bn(this,e,t,1)}function Jn(e,t){return Bn(this,e,t,-1)}function Un(e){return 0>e?Math.floor(e):Math.ceil(e)}function Gn(){var e,t,n,a,i,r=this._milliseconds,o=this._days,s=this._months,l=this._data;return r>=0&&o>=0&&s>=0||0>=r&&0>=o&&0>=s||(r+=864e5*Un(Zn(s)+o),o=0,s=0),l.milliseconds=r%1e3,e=y(r/1e3),l.seconds=e%60,t=y(e/60),l.minutes=t%60,n=y(t/60),l.hours=n%24,o+=y(n/24),i=y(qn(o)),s+=i,o-=Un(Zn(i)),a=y(s/12),s%=12,l.days=o,l.months=s,l.years=a,this}function qn(e){return 4800*e/146097}function Zn(e){return 146097*e/4800; +}function Kn(e){var t,n,a=this._milliseconds;if(e=I(e),"month"===e||"year"===e)return t=this._days+a/864e5,n=this._months+qn(t),"month"===e?n:n/12;switch(t=this._days+Math.round(Zn(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 Qn(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*v(this._months/12)}function Xn(e){return function(){return this.as(e)}}function ea(e){return e=I(e),this[e+"s"]()}function ta(e){return function(){return this._data[e]}}function na(){return y(this.days()/7)}function aa(e,t,n,a,i){return i.relativeTime(t||1,!!n,e,a)}function ia(e,t,n){var a=rt(e).abs(),i=nr(a.as("s")),r=nr(a.as("m")),o=nr(a.as("h")),s=nr(a.as("d")),l=nr(a.as("M")),d=nr(a.as("y")),u=i=r&&["m"]||r=o&&["h"]||o=s&&["d"]||s=l&&["M"]||l=d&&["y"]||["yy",d];return u[2]=t,u[3]=+e>0,u[4]=n,aa.apply(null,u)}function ra(e,t){return void 0===ar[e]?!1:void 0===t?ar[e]:(ar[e]=t,!0)}function oa(e){var t=this.localeData(),n=ia(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}function sa(){var e,t,n,a=ir(this._milliseconds)/1e3,i=ir(this._days),r=ir(this._months);e=y(a/60),t=y(e/60),a%=60,e%=60,n=y(r/12),r%=12;var o=n,s=r,l=i,d=t,u=e,c=a,h=this.asSeconds();return h?(0>h?"-":"")+"P"+(o?o+"Y":"")+(s?s+"M":"")+(l?l+"D":"")+(d||u||c?"T":"")+(d?d+"H":"")+(u?u+"M":"")+(c?c+"S":""):"P0D"}var la,da;da=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,a=0;n>a;a++)if(a in t&&e.call(this,t[a],a,t))return!0;return!1};var ua=t.momentProperties=[],ca=!1,ha={};t.suppressDeprecationWarnings=!1,t.deprecationHandler=null;var _a;_a=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)s(e,t)&&n.push(t);return n};var fa,ma,pa={},ga={},ya=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,va=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ma={},ba={},La=/\d/,ka=/\d\d/,Ya=/\d{3}/,xa=/\d{4}/,wa=/[+-]?\d{6}/,Da=/\d\d?/,Ta=/\d\d\d\d?/,Sa=/\d\d\d\d\d\d?/,ja=/\d{1,3}/,Aa=/\d{1,4}/,Ha=/[+-]?\d{1,6}/,Ca=/\d+/,Pa=/[+-]?\d+/,Fa=/Z|[+-]\d\d:?\d\d/gi,Oa=/Z|[+-]\d\d(?::?\d\d)?/gi,Wa=/[+-]?\d+(\.\d{1,3})?/,Ia=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ea={},Ra={},za=0,Va=1,Na=2,Ba=3,$a=4,Ja=5,Ua=6,Ga=7,qa=8;ma=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t=e?""+e:"+"+e}),$(0,["YY",2],0,function(){return this.year()%100}),$(0,["YYYY",4],0,"year"),$(0,["YYYYY",5],0,"year"),$(0,["YYYYYY",6,!0],0,"year"),W("year","y"),Z("Y",Pa),Z("YY",Da,ka),Z("YYYY",Aa,xa),Z("YYYYY",Ha,wa),Z("YYYYYY",Ha,wa),ee(["YYYYY","YYYYYY"],za),ee("YYYY",function(e,n){n[za]=2===e.length?t.parseTwoDigitYear(e):v(e)}),ee("YY",function(e,n){n[za]=t.parseTwoDigitYear(e)}),ee("Y",function(e,t){t[za]=parseInt(e,10)}),t.parseTwoDigitYear=function(e){return v(e)+(v(e)>68?1900:2e3)};var si=R("FullYear",!0);t.ISO_8601=function(){};var li=L("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var e=Ie.apply(null,arguments);return this.isValid()&&e.isValid()?this>e?this:e:_()}),di=L("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var e=Ie.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:_()}),ui=function(){return Date.now?Date.now():+new Date};Be("Z",":"),Be("ZZ",""),Z("Z",Oa),Z("ZZ",Oa),ee(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=$e(Oa,e)});var ci=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var hi=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,_i=/^(-)?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=Ve.prototype;var fi=ut(1,"add"),mi=ut(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var pi=L("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)});$(0,["gg",2],0,function(){return this.weekYear()%100}),$(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Nt("gggg","weekYear"),Nt("ggggg","weekYear"),Nt("GGGG","isoWeekYear"),Nt("GGGGG","isoWeekYear"),W("weekYear","gg"),W("isoWeekYear","GG"),Z("G",Pa),Z("g",Pa),Z("GG",Da,ka),Z("gg",Da,ka),Z("GGGG",Aa,xa),Z("gggg",Aa,xa),Z("GGGGG",Ha,wa),Z("ggggg",Ha,wa),te(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,a){t[a.substr(0,2)]=v(e)}),te(["gg","GG"],function(e,n,a,i){n[i]=t.parseTwoDigitYear(e)}),$("Q",0,"Qo","quarter"),W("quarter","Q"),Z("Q",La),ee("Q",function(e,t){t[Va]=3*(v(e)-1)}),$("w",["ww",2],"wo","week"),$("W",["WW",2],"Wo","isoWeek"),W("week","w"),W("isoWeek","W"),Z("w",Da),Z("ww",Da,ka),Z("W",Da),Z("WW",Da,ka),te(["w","ww","W","WW"],function(e,t,n,a){t[a.substr(0,1)]=v(e)});var gi={dow:0,doy:6};$("D",["DD",2],"Do","date"),W("date","D"),Z("D",Da),Z("DD",Da,ka),Z("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),ee(["D","DD"],Na),ee("Do",function(e,t){t[Na]=v(e.match(Da)[0],10)});var yi=R("Date",!0);$("d",0,"do","day"),$("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),$("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),$("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),$("e",0,0,"weekday"),$("E",0,0,"isoWeekday"),W("day","d"),W("weekday","e"),W("isoWeekday","E"),Z("d",Da),Z("e",Da),Z("E",Da),Z("dd",function(e,t){return t.weekdaysMinRegex(e)}),Z("ddd",function(e,t){return t.weekdaysShortRegex(e)}),Z("dddd",function(e,t){return t.weekdaysRegex(e)}),te(["dd","ddd","dddd"],function(e,t,n,a){var i=n._locale.weekdaysParse(e,a,n._strict);null!=i?t.d=i:c(n).invalidWeekday=e}),te(["d","e","E"],function(e,t,n,a){t[a]=v(e)});var vi="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Mi="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),bi="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Li=Ia,ki=Ia,Yi=Ia;$("DDD",["DDDD",3],"DDDo","dayOfYear"),W("dayOfYear","DDD"),Z("DDD",ja),Z("DDDD",Ya),ee(["DDD","DDDD"],function(e,t,n){n._dayOfYear=v(e)}),$("H",["HH",2],0,"hour"),$("h",["hh",2],0,gn),$("k",["kk",2],0,yn),$("hmm",0,0,function(){return""+gn.apply(this)+B(this.minutes(),2)}),$("hmmss",0,0,function(){return""+gn.apply(this)+B(this.minutes(),2)+B(this.seconds(),2)}),$("Hmm",0,0,function(){return""+this.hours()+B(this.minutes(),2)}),$("Hmmss",0,0,function(){return""+this.hours()+B(this.minutes(),2)+B(this.seconds(),2)}),vn("a",!0),vn("A",!1),W("hour","h"),Z("a",Mn),Z("A",Mn),Z("H",Da),Z("h",Da),Z("HH",Da,ka),Z("hh",Da,ka),Z("hmm",Ta),Z("hmmss",Sa),Z("Hmm",Ta),Z("Hmmss",Sa),ee(["H","HH"],Ba),ee(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ee(["h","hh"],function(e,t,n){t[Ba]=v(e),c(n).bigHour=!0}),ee("hmm",function(e,t,n){var a=e.length-2;t[Ba]=v(e.substr(0,a)),t[$a]=v(e.substr(a)),c(n).bigHour=!0}),ee("hmmss",function(e,t,n){var a=e.length-4,i=e.length-2;t[Ba]=v(e.substr(0,a)),t[$a]=v(e.substr(a,2)),t[Ja]=v(e.substr(i)),c(n).bigHour=!0}),ee("Hmm",function(e,t,n){var a=e.length-2;t[Ba]=v(e.substr(0,a)),t[$a]=v(e.substr(a))}),ee("Hmmss",function(e,t,n){var a=e.length-4,i=e.length-2;t[Ba]=v(e.substr(0,a)),t[$a]=v(e.substr(a,2)),t[Ja]=v(e.substr(i))});var xi=/[ap]\.?m?\.?/i,wi=R("Hours",!0);$("m",["mm",2],0,"minute"),W("minute","m"),Z("m",Da),Z("mm",Da,ka),ee(["m","mm"],$a);var Di=R("Minutes",!1);$("s",["ss",2],0,"second"),W("second","s"),Z("s",Da),Z("ss",Da,ka),ee(["s","ss"],Ja);var Ti=R("Seconds",!1);$("S",0,0,function(){return~~(this.millisecond()/100)}),$(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),$(0,["SSS",3],0,"millisecond"),$(0,["SSSS",4],0,function(){return 10*this.millisecond()}),$(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),$(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),$(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),$(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),$(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),W("millisecond","ms"),Z("S",ja,La),Z("SS",ja,ka),Z("SSS",ja,Ya);var Si;for(Si="SSSS";Si.length<=9;Si+="S")Z(Si,Ca);for(Si="S";Si.length<=9;Si+="S")ee(Si,kn);var ji=R("Milliseconds",!1);$("z",0,0,"zoneAbbr"),$("zz",0,0,"zoneName");var Ai=p.prototype;Ai.add=fi,Ai.calendar=ht,Ai.clone=_t,Ai.diff=Mt,Ai.endOf=Ht,Ai.format=Yt,Ai.from=xt,Ai.fromNow=wt,Ai.to=Dt,Ai.toNow=Tt,Ai.get=N,Ai.invalidAt=zt,Ai.isAfter=ft,Ai.isBefore=mt,Ai.isBetween=pt,Ai.isSame=gt,Ai.isSameOrAfter=yt,Ai.isSameOrBefore=vt,Ai.isValid=Et,Ai.lang=pi,Ai.locale=St,Ai.localeData=jt,Ai.max=di,Ai.min=li,Ai.parsingFlags=Rt,Ai.set=N,Ai.startOf=At,Ai.subtract=mi,Ai.toArray=Ot,Ai.toObject=Wt,Ai.toDate=Ft,Ai.toISOString=kt,Ai.toJSON=It,Ai.toString=Lt,Ai.unix=Pt,Ai.valueOf=Ct,Ai.creationData=Vt,Ai.year=si,Ai.isLeapYear=be,Ai.weekYear=Bt,Ai.isoWeekYear=$t,Ai.quarter=Ai.quarters=Zt,Ai.month=de,Ai.daysInMonth=ue,Ai.week=Ai.weeks=en,Ai.isoWeek=Ai.isoWeeks=tn,Ai.weeksInYear=Ut,Ai.isoWeeksInYear=Jt,Ai.date=yi,Ai.day=Ai.days=dn,Ai.weekday=un,Ai.isoWeekday=cn,Ai.dayOfYear=pn,Ai.hour=Ai.hours=wi,Ai.minute=Ai.minutes=Di,Ai.second=Ai.seconds=Ti,Ai.millisecond=Ai.milliseconds=ji,Ai.utcOffset=Ge,Ai.utc=Ze,Ai.local=Ke,Ai.parseZone=Qe,Ai.hasAlignedHourOffset=Xe,Ai.isDST=et,Ai.isDSTShifted=tt,Ai.isLocal=nt,Ai.isUtcOffset=at,Ai.isUtc=it,Ai.isUTC=it,Ai.zoneAbbr=Yn,Ai.zoneName=xn,Ai.dates=L("dates accessor is deprecated. Use date instead.",yi),Ai.months=L("months accessor is deprecated. Use month instead",de),Ai.years=L("years accessor is deprecated. Use year instead",si),Ai.zone=L("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",qe);var Hi=Ai,Ci={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Pi={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Fi="Invalid date",Oi="%d",Wi=/\d{1,2}/,Ii={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Ei=T.prototype;Ei._calendar=Ci,Ei.calendar=Tn,Ei._longDateFormat=Pi,Ei.longDateFormat=Sn,Ei._invalidDate=Fi,Ei.invalidDate=jn,Ei._ordinal=Oi,Ei.ordinal=An,Ei._ordinalParse=Wi,Ei.preparse=Hn,Ei.postformat=Hn,Ei._relativeTime=Ii,Ei.relativeTime=Cn,Ei.pastFuture=Pn,Ei.set=w,Ei.months=ie,Ei._months=Ka,Ei.monthsShort=re,Ei._monthsShort=Qa,Ei.monthsParse=se,Ei._monthsRegex=ei,Ei.monthsRegex=he,Ei._monthsShortRegex=Xa,Ei.monthsShortRegex=ce,Ei.week=Kt,Ei._week=gi,Ei.firstDayOfYear=Xt,Ei.firstDayOfWeek=Qt,Ei.weekdays=an,Ei._weekdays=vi,Ei.weekdaysMin=on,Ei._weekdaysMin=bi,Ei.weekdaysShort=rn,Ei._weekdaysShort=Mi,Ei.weekdaysParse=ln,Ei._weekdaysRegex=Li,Ei.weekdaysRegex=hn,Ei._weekdaysShortRegex=ki,Ei.weekdaysShortRegex=_n,Ei._weekdaysMinRegex=Yi,Ei.weekdaysMinRegex=fn,Ei.isPM=bn,Ei._meridiemParse=xi,Ei.meridiem=Ln,H("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===v(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),t.lang=L("moment.lang is deprecated. Use moment.locale instead.",H),t.langData=L("moment.langData is deprecated. Use moment.localeData instead.",F);var Ri=Math.abs,zi=Xn("ms"),Vi=Xn("s"),Ni=Xn("m"),Bi=Xn("h"),$i=Xn("d"),Ji=Xn("w"),Ui=Xn("M"),Gi=Xn("y"),qi=ta("milliseconds"),Zi=ta("seconds"),Ki=ta("minutes"),Qi=ta("hours"),Xi=ta("days"),er=ta("months"),tr=ta("years"),nr=Math.round,ar={s:45,m:45,h:22,d:26,M:11},ir=Math.abs,rr=Ve.prototype;rr.abs=Nn,rr.add=$n,rr.subtract=Jn,rr.as=Kn,rr.asMilliseconds=zi,rr.asSeconds=Vi,rr.asMinutes=Ni,rr.asHours=Bi,rr.asDays=$i,rr.asWeeks=Ji,rr.asMonths=Ui,rr.asYears=Gi,rr.valueOf=Qn,rr._bubble=Gn,rr.get=ea,rr.milliseconds=qi,rr.seconds=Zi,rr.minutes=Ki,rr.hours=Qi,rr.days=Xi,rr.weeks=na,rr.months=er,rr.years=tr,rr.humanize=oa,rr.toISOString=sa,rr.toString=sa,rr.toJSON=sa,rr.locale=St,rr.localeData=jt,rr.toIsoString=L("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",sa),rr.lang=pi,$("X",0,0,"unix"),$("x",0,0,"valueOf"),Z("x",Pa),Z("X",Wa),ee("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ee("x",function(e,t,n){n._d=new Date(v(e))}),t.version="2.13.0",a(Ie),t.fn=Hi,t.min=Re,t.max=ze,t.now=ui,t.utc=d,t.unix=wn,t.months=In,t.isDate=r,t.locale=H,t.invalid=_,t.duration=rt,t.isMoment=g,t.weekdays=Rn,t.parseZone=Dn,t.localeData=F,t.isDuration=Ne,t.monthsShort=En,t.weekdaysMin=Vn,t.defineLocale=C,t.updateLocale=P,t.locales=O,t.weekdaysShort=zn,t.normalizeUnits=I,t.relativeTimeThreshold=ra,t.prototype=Hi;var or=t;return or})}).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){function a(e,t){var n=r(e,t);return i(n)?n:void 0}var i=n(251),r=n(285);e.exports=a},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(335),o=a(r)},function(e,t,n){var a=n(209)();n(208)(a),n(207)(a),n(204)(a),n(205)(a),n(206)(a),n(210)(a),n(214)(a),n(212)(a),n(213)(a),n(215)(a),n(211)(a),n(216)(a),n(217)(a),n(218)(a),n(219)(a),n(220)(a),n(223)(a),n(221)(a),n(222)(a),n(224)(a),n(225)(a),n(226)(a),n(198)(a),n(199)(a),n(200)(a),n(201)(a),n(202)(a),n(203)(a),n(191)(a),n(192)(a),n(193)(a),n(194)(a),n(195)(a),n(196)(a),n(197)(a),window.Chart=e.exports=a},function(e,t){function n(e){return!!e&&"object"==typeof e}e.exports=n},function(e,t,n){(function(t){/*! * Vue.js v1.0.25 * (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 s=r.vms.length;s--;){var o=r.vms[s];o._proxy(t),o._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 Hn.call(e,t)}function r(e){return Cn.test(e)}function s(e){var t=(e+"").charCodeAt(0);return 36===t||95===t}function o(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?!0:"false"===e?!1: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(jn,h)}function h(e,t){return t?t.toUpperCase():""}function _(e){return e.replace(An,"$1-$2").toLowerCase()}function m(e){return e.replace(Pn,h)}function f(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)===Wn}function M(e,t,n,a){Object.defineProperty(e,t,{value:n,enumerable:!!a,writable:!0,configurable:!0})}function L(e,t){var n,a,i,r,s,o=function d(){var o=Date.now()-r;t>o&&o>=0?n=setTimeout(d,t-o):(n=null,s=e.apply(i,a),n||(i=a=null))};return function(){return i=this,a=arguments,r=Date.now(),n||(n=setTimeout(o,t)),s}}function b(e,t){for(var n=e.length;n--;)if(e[n]===t)return n;return-1}function k(e){var t=function n(){return n.cancelled?void 0: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):!1)}function w(e){this.size=0,this.limit=e,this.head=this.tail=void 0,this._keymap=Object.create(null)}function D(){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(x))}e&&(ra.filters=ra.filters||[]).push(e),ua=da+1}function x(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=ma=fa=0,ua=0,ra={},da=0,la=ia.length;la>da;da++)if(oa=sa,sa=ia.charCodeAt(da),ca)39===sa&&92!==oa&&(ca=!ca);else if(ha)34===sa&&92!==oa&&(ha=!ha);else if(124===sa&&124!==ia.charCodeAt(da+1)&&124!==ia.charCodeAt(da-1))null==ra.expression?(ua=da+1,ra.expression=ia.slice(0,da).trim()):D();else switch(sa){case 34:ha=!0;break;case 39:ca=!0;break;case 40:fa++;break;case 41:fa--;break;case 91:ma++;break;case 93:ma--;break;case 123:_a++;break;case 125:_a--}return null==ra.expression?ra.expression=ia.slice(0,da).trim():0!==ua&&D(),pa.put(e,ra),ra}function S(e){return e.replace(Ma,"\\$&")}function H(){var e=S(Ta.delimiters[0]),t=S(Ta.delimiters[1]),n=S(Ta.unsafeDelimiters[0]),a=S(Ta.unsafeDelimiters[1]);ba=new RegExp(n+"((?:.|\\n)+?)"+a+"|"+e+"((?:.|\\n)+?)"+t,"g"),ka=new RegExp("^"+n+"((?:.|\\n)+?)"+a+"$"),La=new w(1e3)}function C(e){La||H();var t=La.get(e);if(t)return t;if(!ba.test(e))return null;for(var n,a,i,r,s,o,d=[],l=ba.lastIndex=0;n=ba.exec(e);)a=n.index,a>l&&d.push({value:e.slice(l,a)}),i=ka.test(n[0]),r=i?n[1]:n[2],s=r.charCodeAt(0),o=42===s,r=o?r.slice(1):r,d.push({tag:!0,value:r.trim(),html:i,oneTime:o}),l=a+n[0].length;return l1?e.map(function(e){return A(e,t)}).join("+"):A(e[0],t,!0)}function A(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 W(e,t,n,a){I(e,1,function(){B(e,t)},n,a)}function O(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&&!Zn||!a._isCompiled||a.$parent&&!a.$parent._isCompiled)return n(),void(i&&i());var s=t>0?"enter":"leave";r[s](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 V(e,t){var n=z(e,":"+t);return null===n&&(n=z(e,"v-bind:"+t)),n}function N(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 Z(e,t,n){e.removeEventListener(t,n)}function Q(e){var t=e.className;return"object"==typeof t&&(t=t.baseVal||""),t}function X(e,t){Nn&&!/svg$/.test(e.namespaceURI)?e.className=t:e.setAttribute("class",t)}function K(e,t){if(e.classList)e.classList.add(t);else{var n=" "+Q(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=" "+Q(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 se(e){if(e.hasAttributes())for(var t=e.attributes,n=0,a=t.length;a>n;n++){var i=t[n].name;if(Ca.test(i))return c(i.replace(Ca,""))}}function oe(e,t,n){for(var a;e!==t;)a=e.nextSibling,n(e),e=a;n(t)}function de(e,t,n,a,i){function r(){if(o++,s&&o>=d.length){for(var e=0;ei;i++){var s=a[i];ja.test(s)||Aa.test(s)||(t=n[s],v(t)&&(n[s]=Yn.extend(t)))}}function pe(e){var t,n,a=e.props;if(On(a))for(e.props={},t=a.length;t--;)n=a[t],"string"==typeof n?e.props[n]=null:n.name&&(e.props[n.name]=n);else if(v(a)){var i=Object.keys(a);for(t=i.length;t--;)n=a[i[t]],"function"==typeof n&&(a[i[t]]={type:n})}}function ge(e){if(On(e)){for(var t,n={},a=e.length;a--;){t=e[a];var i="function"==typeof t?t.options&&t.options.name||t.id:t.name||t.id;i&&(n[i]=t)}return n}return e}function ye(e,t,n){function a(a){var i=Pa[a]||Fa;s[a]=i(e[a],t[a],n,a)}fe(t),pe(t);var r,s={};if(t["extends"]&&(e="function"==typeof t["extends"]?ye(e,t["extends"].options,n):ye(e,t["extends"],n)),t.mixins)for(var o=0,d=t.mixins.length;d>o;o++){var l=t.mixins[o],u=l.prototype instanceof Yn?l.options:l;e=ye(e,u,n)}for(r in e)a(r);for(r in t)i(e,r)||a(r);return s}function ve(e,t,n,a){if("string"==typeof n){var i,r=e[t],s=r[n]||r[i=c(n)]||r[i.charAt(0).toUpperCase()+i.slice(1)];return s}}function Me(){this.id=Wa++,this.subs=[]}function Le(e){Ra=!1,e(),Ra=!0}function be(e){if(this.value=e,this.dep=new Me,M(e,"__ob__",this),On(e)){var t=In?ke:Ye;t(e,Ia,Ea),this.observeArray(e)}else this.walk(e)}function ke(e,t){e.__proto__=t}function Ye(e,t,n){for(var a=0,i=n.length;i>a;a++){var r=n[a];M(e,r,t[r])}}function we(e,t){if(e&&"object"==typeof e){var n;return i(e,"__ob__")&&e.__ob__ instanceof be?n=e.__ob__:Ra&&(On(e)||v(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new be(e)),n&&t&&n.addVm(t),n}}function De(e,t,n){var a=new Me,i=Object.getOwnPropertyDescriptor(e,t);if(!i||i.configurable!==!1){var r=i&&i.get,s=i&&i.set,o=we(n);Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var t=r?r.call(e):n;if(Me.target&&(a.depend(),o&&o.dep.depend(),On(t)))for(var i,s=0,d=t.length;d>s;s++)i=t[s],i&&i.__ob__&&i.__ob__.dep.depend();return t},set:function(t){var i=r?r.call(e):n;t!==i&&(s?s.call(e,t):n=t,o=we(t),a.notify())}})}}function xe(e){e.prototype._init=function(e){e=e||{},this.$el=null,this.$parent=e.parent,this.$root=this.$parent?this.$parent.$root:this,this.$children=[],this.$refs={},this.$els={},this._watchers=[],this._directives=[],this._uid=Va++,this._isVue=!0,this._events={},this._eventsCount={},this._isFragment=!1,this._fragment=this._fragmentStart=this._fragmentEnd=null,this._isCompiled=this._isDestroyed=this._isReady=this._isAttached=this._isBeingDestroyed=this._vForRemoving=!1,this._unlinkFn=null,this._context=e._context||this.$parent,this._scope=e._scope,this._frag=e._frag,this._frag&&this._frag.children.push(this),this.$parent&&this.$parent.$children.push(this),e=this.$options=ye(this.constructor.options,e,this),this._updateRef(),this._data={},this._callHook("init"),this._initState(),this._initEvents(),this._callHook("created"),e.el&&this.$mount(e.el)}}function Te(e){if(void 0===e)return"eof";var t=e.charCodeAt(0);switch(t){case 91:case 93:case 46:case 34:case 39:case 48:return e;case 95:case 36:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return t>=97&&122>=t||t>=65&&90>=t?"ident":t>=49&&57>=t?"number":"else"}function Se(e){var t=e.trim();return"0"===e.charAt(0)&&isNaN(e)?!1:r(t)?u(t):"*"+t}function He(e){function t(){var t=e[u+1];return c===Ka&&"'"===t||c===ei&&'"'===t?(u++,a="\\"+t,_[Ba](),!0):void 0}var n,a,i,r,s,o,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],s=d[r]||d["else"]||ni,s===ni)return;if(c=s[0],o=_[s[1]],o&&(a=s[2],a=void 0===a?n:a,o()===!1))return;if(c===ti)return l.raw=e,l}}function Ce(e){var t=Na.get(e);return t||(t=He(e),t&&Na.put(e,t)),t}function je(e,t){return ze(t).get(e)}function Ae(e,t,a){var i=e;if("string"==typeof t&&(t=He(t)),!t||!y(e))return!1;for(var r,s,o=0,d=t.length;d>o;o++)r=e,s=t[o],"*"===s.charAt(0)&&(s=ze(s.slice(1)).get.call(i,i)),d-1>o?(e=e[s],y(e)||(e={},n(r,s,e))):On(e)?e.$set(s,a):s in e?e[s]=a:n(e,s,a);return!0}function Pe(){}function Fe(e,t){var n=gi.length;return gi[n]=t?e.replace(ci,"\\n"):e,'"'+n+'"'}function We(e){var t=e.charAt(0),n=e.slice(1);return oi.test(n)?e:(n=n.indexOf('"')>-1?n.replace(_i,Oe):n,t+"scope."+n)}function Oe(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(fi,We).replace(_i,Oe),Ee(t)}function Ee(e){try{return new Function("scope","return "+e+";")}catch(t){return Pe}}function Re(e){var t=Ce(e);return t?function(e,n){Ae(e,t,n)}:void 0}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=Ve(e)&&e.indexOf("[")<0?Ee("scope."+e):Ie(e),t&&(a.set=Re(e)),ri.put(e,a),a}function Ve(e){return mi.test(e)&&!pi.test(e)&&"Math."!==e.slice(0,5)}function Ne(){vi.length=0,Mi.length=0,Li={},bi={},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"),Ne())}function $e(e){for(var t=0;t0){var s=r+(a?t:ue(t));i=Oi.get(s),i||(i=Wt(n,e.$options,!0),Oi.put(s,i))}else i=Wt(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));++to;o++)if(a=e.options[o],r=n?a.hasAttribute("selected"):a.selected){if(i=a.hasOwnProperty("_value")?a._value:a.value,!t)return i;s.push(i)}return s}function _t(e,t){for(var n=e.length;n--;)if(Y(e[n],t))return n;return-1}function mt(e,t){var n=t.map(function(e){var t=e.charCodeAt(0);return t>47&&58>t?parseInt(e,10):1===e.length&&(t=e.toUpperCase().charCodeAt(0),t>64&&91>t)?t:ir[e]});return n=[].concat.apply([],n),function(t){return n.indexOf(t.keyCode)>-1?e.call(this,t):void 0}}function ft(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){return t.target===t.currentTarget?e.call(this,t):void 0}}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=sr.length;if("filter"!==t&&t in ur.style)return{kebab:e,camel:t};for(;i--;)if(a=or[i]+n,a in ur.style)return{kebab:sr[i]+e,camel:a}}function Mt(e){var t=[];if(On(e))for(var n=0,a=e.length;a>n;n++){var i=e[n];if(i)if("string"==typeof i)t.push(i);else for(var r in i)i[r]&&t.push(r)}else if(y(e))for(var s in e)e[s]&&t.push(s);return t}function Lt(e,t,n){if(t=t.trim(),-1===t.indexOf(" "))return void n(e,t);for(var a=t.split(/\s+/),i=0,r=a.length;r>i;i++)n(e,a[i])}function bt(e,t,n){function a(){++r>=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,s,o,d,l,u,h=[],m=Object.keys(t),f=m.length;f--;)if(i=m[f],a=t[i]||Dr,d=c(i),xr.test(d)){if(u={name:i,path:d,options:a,mode:wr.ONE_WAY,raw:null},s=_(i),null===(o=V(e,s))&&(null!==(o=V(e,s+".sync"))?u.mode=wr.TWO_WAY:null!==(o=V(e,s+".once"))&&(u.mode=wr.ONE_TIME)),null!==o)u.raw=o,l=T(o),o=l.expression,u.filters=l.filters,r(o)&&!l.filters?u.optimizedLiteral=!0:u.dynamic=!0,u.parentPath=o;else if(null!==(o=z(e,s)))u.raw=o;else;h.push(u)}return Yt(h)}function Yt(e){return function(t,n){t._props={};for(var a,r,s,o,c,h=t.$options.propsData,m=e.length;m--;)if(a=e[m],c=a.raw,r=a.path,s=a.options,t._props[r]=a,h&&i(h,r)&&Dt(t,a,h[r]),null===c)Dt(t,a,void 0);else if(a.dynamic)a.mode===wr.ONE_TIME?(o=(n||t._context||t).$get(a.parentPath),Dt(t,a,o)):t._context?t._bindDir({name:"prop",def:Sr,prop:a},null,null,n):Dt(t,a,t.$get(a.parentPath));else if(a.optimizedLiteral){var f=u(c);o=f===c?l(d(c)):f,Dt(t,a,o)}else o=s.type!==Boolean||""!==c&&c!==_(a.name)?c:!0,Dt(t,a,o)}}function wt(e,t,n,a){var i=t.dynamic&&Ve(t.parentPath),r=n;void 0===r&&(r=Tt(e,t)),r=Ht(t,r,e);var s=r!==n;St(t,r,e)||(r=void 0),i&&!s?Le(function(){a(r)}):a(r)}function Dt(e,t,n){wt(e,t,n,function(n){De(e,t.path,n)})}function xt(e,t,n){wt(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?!1: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,s=[];if(i){On(i)||(i=[i]);for(var o=0;oi;i++)a[i]._bind();return a}function It(e,t){return e=e.descriptor.def.priority||Jr,t=t.descriptor.def.priority||Jr,e>t?-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=Ot(function(){i(e,a)},e);return Et(e,r)}function Vt(e,t,n){var a,i,r=t._containerAttrs,s=t._replacerAttrs;if(11!==e.nodeType)t._asComponent?(r&&n&&(a=nn(r,n)),s&&(i=nn(s,t))):i=nn(e.attributes,t);else;return t._containerAttrs=t._replacerAttrs=null,function(e,t,n){var r,s=e._context;s&&a&&(r=Ot(function(){a(s,t,null,n)},s));var o=Ot(function(){i&&i(e,t)},e);return Et(e,o,s,r)}}function Nt(e,t){var n=e.nodeType;return 1!==n||on(e)?3===n&&e.data.trim()?$t(e,t):null:Bt(e,t)}function Bt(e,t){if("TEXTAREA"===e.tagName){var n=C(e.value);n&&(e.setAttribute(":value",j(n)),e.value="")}var a,i=e.hasAttributes(),r=i&&p(e.attributes);return i&&(a=Kt(e,r,t)),a||(a=Qt(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=C(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,s=document.createDocumentFragment(),o=0,d=n.length;d>o;o++)r=n[o],i=r.tag?Ut(r,t):document.createTextNode(r.value),s.appendChild(i);return Gt(n,s,t)}function Jt(e,t){J(t)}function Ut(e,t){function n(t){if(!e.descriptor){var n=T(e.value);e.descriptor={name:t,def:br[t],expression:n.expression,filters:n.filters}}}var a;return e.oneTime?a=document.createTextNode(e.value):e.html?(a=document.createComment("v-html"),n("html")):(a=document.createTextNode(" "),n("text")),a}function Gt(e,t){return function(n,a,i,r){for(var s,d,l,u=t.cloneNode(!0),c=p(u.childNodes),h=0,_=e.length;_>h;h++)s=e[h],d=s.value,s.tag&&(l=c[h],s.oneTime?(d=(r||n).$eval(d),s.html?G(l,Ke(d,!0)):l.data=o(d)):n._bindDir(s.descriptor,l,i,r));G(a,u)}}function qt(e,t){for(var n,a,i,r=[],s=0,o=e.length;o>s;s++)i=e[s],n=Nt(i,t),a=n&&n.terminal||"SCRIPT"===i.tagName||!i.hasChildNodes()?null:qt(i.childNodes,t),r.push(n,a);return r.length?Zt(r):null}function Zt(e){return function(t,n,a,i,r){for(var s,o,d,l=0,u=0,c=e.length;c>l;u++){s=n[u],o=e[l++],d=e[l++];var h=p(s.childNodes);o&&o(t,s,a,i,r),d&&d(t,h,a,i,r)}}}function Qt(e,t){var n=e.tagName.toLowerCase();if(!ja.test(n)){var a=ve(t,"elementDirectives",n);return a?tn(e,n,"",t,a):void 0}}function Xt(e,t){var n=ce(e,t);if(n){var a=se(e),i={name:"component",ref:a,expression:n.id,def:Rr.component,modifiers:{literal:!n.dynamic}},r=function(e,t,n,r,s){a&&De((r||e).$refs,a,null),e._bindDir(i,t,n,r,s)};return r.terminal=!0,r}}function Kt(e,t,n){if(null!==z(e,"v-pre"))return en;if(e.hasAttribute("v-else")){var a=e.previousElementSibling;if(a&&a.hasAttribute("v-if"))return en}for(var i,r,s,o,d,l,u,c,h,_,m=0,f=t.length;f>m;m++)i=t[m],r=i.name.replace(Br,""),(d=r.match(Nr))&&(h=ve(n,"directives",d[1]),h&&h.terminal&&(!_||(h.priority||Ur)>_.priority)&&(_=h,u=i.name,o=an(i.name),s=i.value,l=d[1],c=d[2]));return _?tn(e,l,s,n,_,u,c,o):void 0}function en(){}function tn(e,t,n,a,i,r,s,o){var d=T(n),l={name:t,arg:s,expression:d.expression,filters:d.filters,raw:n,attr:r,modifiers:o,def:i};"for"!==t&&"router-view"!==t||(l.ref=se(e));var u=function(e,t,n,a,i){l.ref&&De((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&&sn(n),i=!a&&T(r);f.push({name:e,attr:s,raw:o,def:t,arg:l,modifiers:u,expression:i&&i.expression,filters:i&&i.filters,interp:n,hasOneTime:a})}for(var a,i,r,s,o,d,l,u,c,h,_,m=e.length,f=[];m--;)if(a=e[m],i=s=a.name,r=o=a.value,h=C(r),l=null,u=an(i),i=i.replace(Br,""),h)r=j(h),l=i,n("bind",br.bind,h);else if($r.test(i))u.literal=!zr.test(i),n("transition",Rr.transition);else if(Vr.test(i))l=i.replace(Vr,""),n("on",br.on);else if(zr.test(i))d=i.replace(zr,""),"style"===d||"class"===d?n(d,Rr[d]):(l=d,n("bind",br.bind));else if(_=i.match(Nr)){if(d=_[1],l=_[2],"else"===d)continue;c=ve(t,"directives",d,!0),c&&n(d,c)}return f.length?rn(f):void 0}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 s=e.length;s--;)t._bindDir(e[s],n,a,i,r)}}function sn(e){for(var t=e.length;t--;)if(e[t].oneTime)return!0}function on(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=Ke(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=Ke(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)||N(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){return 1===e.nodeType&&e.hasAttributes()?p(e.attributes):void 0}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&&!C(a)&&(a=a.trim())&&a.split(/\s+/).forEach(function(e){K(t,e)}):t.setAttribute(n,a)}function hn(e,t){if(t){for(var n,a,i=e._slotContents=Object.create(null),r=0,s=t.children.length;s>r;r++)n=t.children[r],(a=n.getAttribute("slot"))&&(i[a]||(i[a]=[])).push(n);for(a in i)i[a]=_n(i[a],t);if(t.hasChildNodes()){var o=t.childNodes;if(1===o.length&&3===o[0].nodeType&&!o[0].data.trim())return;i["default"]=_n(t.childNodes,t)}}}function _n(e,t){var n=document.createDocumentFragment();e=p(e);for(var a=0,i=e.length;i>a;a++){var r=e[a];!ie(r)||r.hasAttribute("v-if")||r.hasAttribute("v-for")||(t.removeChild(r),r=Ke(r,!0)),n.appendChild(r)}return n}function mn(e){function t(){}function n(e,t){var n=new Ue(t,e,null,{lazy:!0});return function(){return n.dirty&&n.evaluate(),Me.target&&n.depend(),n.value}}Object.defineProperty(e.prototype,"$data",{get:function(){return this._data},set:function(e){e!==this._data&&this._setData(e)}}),e.prototype._initState=function(){this._initProps(),this._initMeta(),this._initMethods(),this._initData(),this._initComputed()},e.prototype._initProps=function(){var e=this.$options,t=e.el,n=e.props;t=e.el=E(t),this._propsUnlinkFn=t&&1===t.nodeType&&n?zt(this,t,n,this._scope):null},e.prototype._initData=function(){var e=this.$options.data,t=this._data=e?e():{};v(t)||(t={});var n,a,r=this._props,s=Object.keys(t);for(n=s.length;n--;)a=s[n],r&&i(r,a)||this._proxy(a);we(t,this)},e.prototype._setData=function(e){e=e||{};var t=this._data;this._data=e;var n,a,r;for(n=Object.keys(t),r=n.length;r--;)a=n[r],a in e||this._unproxy(a);for(n=Object.keys(e),r=n.length;r--;)a=n[r],i(this,a)||this._proxy(a);t.__ob__.removeVm(this),we(e,this),this._digest()},e.prototype._proxy=function(e){if(!s(e)){var t=this;Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:function(){return t._data[e]},set:function(n){t._data[e]=n}})}},e.prototype._unproxy=function(e){s(e)||delete this[e]},e.prototype._digest=function(){for(var e=0,t=this._watchers.length;t>e;e++)this._watchers[e].update(!0)},e.prototype._initComputed=function(){var e=this.$options.computed;if(e)for(var a in e){var i=e[a],r={enumerable:!0,configurable:!0};"function"==typeof i?(r.get=n(i,this),r.set=t):(r.get=i.get?i.cache!==!1?n(i.get,this):f(i.get,this):t,r.set=i.set?f(i.set,this):t),Object.defineProperty(this,a,r)}},e.prototype._initMethods=function(){var e=this.$options.methods;if(e)for(var t in e)this[t]=f(e[t],this)},e.prototype._initMeta=function(){var e=this.$options._meta;if(e)for(var t in e)De(this,t,e[t])}}function fn(e){function t(e,t){for(var n,a,i,r=t.attributes,s=0,o=r.length;o>s;s++)n=r[s].name,Zr.test(n)&&(n=n.replace(Zr,""),a=r[s].value,Ve(a)&&(a+=".apply(this, $arguments)"),i=(e._scope||e._context).$eval(a,!0),i._fromParent=!0,e.$on(n.replace(Zr),i))}function n(e,t,n){if(n){var i,r,s,o;for(r in n)if(i=n[r],On(i))for(s=0,o=i.length;o>s;s++)a(e,t,r,i[s]);else a(e,t,r,i)}}function a(e,t,n,i,r){var s=typeof i;if("function"===s)e[t](n,i,r);else if("string"===s){var o=e.$options.methods,d=o&&o[i];d&&e[t](n,d,r)}else i&&"object"===s&&a(e,t,n,i.handler,i)}function i(){this._isAttached||(this._isAttached=!0,this.$children.forEach(r))}function r(e){!e._isAttached&&R(e.$el)&&e._callHook("attached")}function s(){this._isAttached&&(this._isAttached=!1,this.$children.forEach(o))}function o(e){e._isAttached&&!R(e.$el)&&e._callHook("detached")}e.prototype._initEvents=function(){var e=this.$options;e._asComponent&&t(this,e.el),n(this,"$on",e.events),n(this,"$watch",e.watch)},e.prototype._initDOMHooks=function(){this.$on("hook:attached",i),this.$on("hook:detached",s)},e.prototype._callHook=function(e){this.$emit("pre-hook:"+e);var t=this.$options[e];if(t)for(var n=0,a=t.length;a>n;n++)t[n].call(this);this.$emit("hook:"+e)}}function pn(){}function gn(e,t,n,a,i,r){this.vm=t,this.el=n,this.descriptor=e,this.name=e.name,this.expression=e.expression,this.arg=e.arg,this.modifiers=e.modifiers,this.filters=e.filters,this.literal=this.modifiers&&this.modifiers.literal,this._locked=!1,this._bound=!1,this._listeners=null,this._host=a,this._scope=i,this._frag=r}function yn(e){e.prototype._updateRef=function(e){var t=this.$options._ref;if(t){var n=(this._scope||this._context).$refs;e?n[t]===this&&(n[t]=null):n[t]=this}},e.prototype._compile=function(e){var t=this.$options,n=e;if(e=dn(e,t),this._initElement(e),1!==e.nodeType||null===z(e,"v-pre")){var a=this._context&&this._context.$options,i=Vt(e,t,a);hn(this,t._content);var r,s=this.constructor;t._linkerCachable&&(r=s.linker,r||(r=s.linker=Wt(e,t)));var o=i(this,e,this._scope),d=r?r(this,e):Wt(e,t)(this,e);this._unlinkFn=function(){o(),d(!0)},t.replace&&G(n,e),this._isCompiled=!0,this._callHook("compiled")}},e.prototype._initElement=function(e){le(e)?(this._isFragment=!0,this.$el=this._fragmentStart=e.firstChild,this._fragmentEnd=e.lastChild,3===this._fragmentStart.nodeType&&(this._fragmentStart.data=this._fragmentEnd.data=""),this._fragment=e):this.$el=e,this.$el.__vue__=this,this._callHook("beforeCompile")},e.prototype._bindDir=function(e,t,n,a,i){this._directives.push(new gn(e,this,t,n,a,i))},e.prototype._destroy=function(e,t){if(this._isBeingDestroyed)return void(t||this._cleanup());var n,a,i=this,r=function(){!n||a||t||i._cleanup()};e&&this.$el&&(a=!0,this.$remove(function(){a=!1,r()})),this._callHook("beforeDestroy"),this._isBeingDestroyed=!0;var s,o=this.$parent;for(o&&!o._isBeingDestroyed&&(o.$children.$remove(this),this._updateRef(!0)), -s=this.$children.length;s--;)this.$children[s].$destroy();for(this._propsUnlinkFn&&this._propsUnlinkFn(),this._unlinkFn&&this._unlinkFn(),s=this._watchers.length;s--;)this._watchers[s].teardown();this.$el&&(this.$el.__vue__=null),n=!0,r()},e.prototype._cleanup=function(){this._isDestroyed||(this._frag&&this._frag.children.$remove(this),this._data&&this._data.__ob__&&this._data.__ob__.removeVm(this),this.$el=this.$parent=this.$root=this.$children=this._watchers=this._context=this._scope=this._directives=null,this._isDestroyed=!0,this._callHook("destroyed"),this.$off())}}function vn(e){e.prototype._applyFilters=function(e,t,n,a){var i,r,s,o,d,l,u,c,h;for(l=0,u=n.length;u>l;l++)if(i=n[a?u-l-1:l],r=ve(this.$options,"filters",i.name,!0),r&&(r=a?r.write:r.read||r,"function"==typeof r)){if(s=a?[e,t]:[e],d=a?2:1,i.args)for(c=0,h=i.args.length;h>c;c++)o=i.args[c],s[c+d]=o.dynamic?this.$get(o.value):o.value;e=r.apply(this,s)}return e},e.prototype._resolveComponent=function(t,n){var a;if(a="function"==typeof t?t:ve(this.$options,"components",t,!0))if(a.options)n(a);else if(a.resolved)n(a.resolved);else if(a.requested)a.pendingCallbacks.push(n);else{a.requested=!0;var i=a.pendingCallbacks=[n];a.call(this,function(t){v(t)&&(t=e.extend(t)),a.resolved=t;for(var n=0,r=i.length;r>n;n++)i[n](t)},function(e){})}}}function Mn(e){function t(e){return JSON.parse(JSON.stringify(e))}e.prototype.$get=function(e,t){var n=ze(e);if(n){if(t){var a=this;return function(){a.$arguments=p(arguments);var e=n.get.call(a,a);return a.$arguments=null,e}}try{return n.get.call(this,this)}catch(i){}}},e.prototype.$set=function(e,t){var n=ze(e,!0);n&&n.set&&n.set.call(this,this,t)},e.prototype.$delete=function(e){a(this._data,e)},e.prototype.$watch=function(e,t,n){var a,i=this;"string"==typeof e&&(a=T(e),e=a.expression);var r=new Ue(i,e,t,{deep:n&&n.deep,sync:n&&n.sync,filters:a&&a.filters,user:!n||n.user!==!1});return n&&n.immediate&&t.call(i,r.value),function(){r.teardown()}},e.prototype.$eval=function(e,t){if(Qr.test(e)){var n=T(e),a=this.$get(n.expression,t);return n.filters?this._applyFilters(a,null,n.filters):a}return this.$get(e,t)},e.prototype.$interpolate=function(e){var t=C(e),n=this;return t?1===t.length?n.$eval(t[0].value)+"":t.map(function(e){return e.tag?n.$eval(e.value):e.value}).join(""):e},e.prototype.$log=function(e){var n=e?je(this._data,e):this._data;if(n&&(n=t(n)),!e){var a;for(a in this.$options.computed)n[a]=t(this[a]);if(this._props)for(a in this._props)n[a]=t(this[a])}console.log(n)}}function Ln(e){function t(e,t,a,i,r,s){t=n(t);var o=!R(t),d=i===!1||o?r:s,l=!o&&!e._isAttached&&!R(e.$el);return e._isFragment?(oe(e._fragmentStart,e._fragmentEnd,function(n){d(n,t,e)}),a&&a()):d(e.$el,t,e,a),l&&e._callHook("attached"),e}function n(e){return"string"==typeof e?document.querySelector(e):e}function a(e,t,n,a){t.appendChild(e),a&&a()}function i(e,t,n,a){B(e,t),a&&a()}function r(e,t,n){J(e),n&&n()}e.prototype.$nextTick=function(e){ta(e,this)},e.prototype.$appendTo=function(e,n,i){return t(this,e,n,i,a,F)},e.prototype.$prependTo=function(e,t,a){return e=n(e),e.hasChildNodes()?this.$before(e.firstChild,t,a):this.$appendTo(e,t,a),this},e.prototype.$before=function(e,n,a){return t(this,e,n,a,i,W)},e.prototype.$after=function(e,t,a){return e=n(e),e.nextSibling?this.$before(e.nextSibling,t,a):this.$appendTo(e.parentNode,t,a),this},e.prototype.$remove=function(e,t){if(!this.$el.parentNode)return e&&e();var n=this._isAttached&&R(this.$el);n||(t=!1);var a=this,i=function(){n&&a._callHook("detached"),e&&e()};if(this._isFragment)de(this._fragmentStart,this._fragmentEnd,this,this._fragment,i);else{var s=t===!1?r:O;s(this.$el,this,i)}return this}}function bn(e){function t(e,t,a){var i=e.$parent;if(i&&a&&!n.test(t))for(;i;)i._eventsCount[t]=(i._eventsCount[t]||0)+a,i=i.$parent}e.prototype.$on=function(e,n){return(this._events[e]||(this._events[e]=[])).push(n),t(this,e,1),this},e.prototype.$once=function(e,t){function n(){a.$off(e,n),t.apply(this,arguments)}var a=this;return n.fn=t,this.$on(e,n),this},e.prototype.$off=function(e,n){var a;if(!arguments.length){if(this.$parent)for(e in this._events)a=this._events[e],a&&t(this,e,-a.length);return this._events={},this}if(a=this._events[e],!a)return this;if(1===arguments.length)return t(this,e,-a.length),this._events[e]=null,this;for(var i,r=a.length;r--;)if(i=a[r],i===n||i.fn===n){t(this,e,-1),a.splice(r,1);break}return this},e.prototype.$emit=function(e){var t="string"==typeof e;e=t?e:e.name;var n=this._events[e],a=t||!n;if(n){n=n.length>1?p(n):n;var i=t&&n.some(function(e){return e._fromParent});i&&(a=!1);for(var r=p(arguments,1),s=0,o=n.length;o>s;s++){var d=n[s],l=d.apply(this,r);l!==!0||i&&!d._fromParent||(a=!0)}}return a},e.prototype.$broadcast=function(e){var t="string"==typeof e;if(e=t?e:e.name,this._eventsCount[e]){var n=this.$children,a=p(arguments);t&&(a[0]={name:e,source:this});for(var i=0,r=n.length;r>i;i++){var s=n[i],o=s.$emit.apply(s,a);o&&s.$broadcast.apply(s,a)}return this}},e.prototype.$dispatch=function(e){var t=this.$emit.apply(this,arguments);if(t){var n=this.$parent,a=p(arguments);for(a[0]={name:e,source:this};n;)t=n.$emit.apply(n,a),n=t?n.$parent:null;return this}};var n=/^hook:/}function kn(e){function t(){this._isAttached=!0,this._isReady=!0,this._callHook("ready")}e.prototype.$mount=function(e){return this._isCompiled?void 0:(e=E(e),e||(e=document.createElement("div")),this._compile(e),this._initDOMHooks(),R(this.$el)?(this._callHook("attached"),t.call(this)):this.$once("hook:attached",t),this)},e.prototype.$destroy=function(e,t){this._destroy(e,t)},e.prototype.$compile=function(e,t,n,a){return Wt(e,this.$options,!0)(this,e,t,n,a)}}function Yn(e){this._init(e)}function wn(e,t,n){return n=n?parseInt(n,10):0,t=d(t),"number"==typeof t?e.slice(n,n+t):e}function Dn(e,t,n){if(e=ts(e),null==t)return e;if("function"==typeof t)return e.filter(t);t=(""+t).toLowerCase();for(var a,i,r,s,o="in"===n?3:2,d=Array.prototype.concat.apply([],p(arguments,o)),l=[],u=0,c=e.length;c>u;u++)if(a=e[u],r=a&&a.$value||a,s=d.length){for(;s--;)if(i=d[s],"$key"===i&&Tn(a.$key,t)||Tn(je(r,i),t)){l.push(a);break}}else Tn(a,t)&&l.push(a);return l}function xn(e){function t(e,t,n){var i=a[n];return i&&("$key"!==i&&(y(e)&&"$value"in e&&(e=e.$value),y(t)&&"$value"in t&&(t=t.$value)),e=y(e)?je(e,i):e,t=y(t)?je(t,i):t),e===t?0:e>t?r:-r}var n=null,a=void 0;e=ts(e);var i=p(arguments,1),r=i[i.length-1];"number"==typeof r?(r=0>r?-1:1,i=i.length>1?i.slice(0,-1):i):r=1;var s=i[0];return s?("function"==typeof s?n=function(e,t){return s(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(On(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 "+m(e)+" (options) { this._init(options) }")()}e.options={directives:br,elementDirectives:es,filters:as,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=ot,e.internalDirectives=Rr,e.parsers={path:ii,text:wa,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,s=t(r||"VueComponent");return s.prototype=Object.create(n.prototype),s.prototype.constructor=s,s.cid=i++,s.options=ye(n.options,e),s["super"]=n,s.extend=n.extend,Ta._assetTypes.forEach(function(e){s[e]=n[e]}),r&&(s.options.components[r]=s),a&&(e._Ctor=s),s},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,Ha)}var Hn=Object.prototype.hasOwnProperty,Cn=/^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/,jn=/-(\w)/g,An=/([a-z\d])([A-Z])/g,Pn=/(?:^|[-_\/])(\w)/g,Fn=Object.prototype.toString,Wn="[object Object]",On=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(),Vn=zn&&zn.indexOf("trident")>0,Nn=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,Zn=void 0,Qn=void 0,Xn=void 0;if(En&&!Nn){var Kn=void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend,ea=void 0===window.onanimationend&&void 0!==window.onwebkitanimationend;qn=Kn?"WebkitTransition":"transition",Zn=Kn?"webkitTransitionEnd":"transitionend",Qn=ea?"WebkitAnimation":"animation",Xn=ea?"webkitAnimationEnd":"animationend"}var ta=function(){function e(){i=!1;var e=a.slice(0);a=[];for(var t=0;tt;t++)e[t].update()};var Oa=Array.prototype,Ia=Object.create(Oa);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(e){var t=Oa[e];M(Ia,e,function(){for(var n=arguments.length,a=new Array(n);n--;)a[n]=arguments[n];var i,r=t.apply(this,a),s=this.__ob__;switch(e){case"push":i=a;break;case"unshift":i=a;break;case"splice":i=a.slice(2)}return i&&s.observeArray(i),s.dep.notify(),r})}),M(Oa,"$set",function(e,t){return e>=this.length&&(this.length=Number(e)+1),this.splice(e,1,t)[0]}),M(Oa,"$remove",function(e){if(this.length){var t=b(this,e);return t>-1?this.splice(t,1):void 0}});var Ea=Object.getOwnPropertyNames(Ia),Ra=!0;be.prototype.walk=function(e){for(var t=Object.keys(e),n=0,a=t.length;a>n;n++)this.convert(t[n],e[t[n]])},be.prototype.observeArray=function(e){for(var t=0,n=e.length;n>t;t++)we(e[t])},be.prototype.convert=function(e,t){De(this.value,e,t)},be.prototype.addVm=function(e){(this.vms||(this.vms=[])).push(e)},be.prototype.removeVm=function(e){this.vms.$remove(e)};var za=Object.freeze({defineReactive:De,set:n,del:a,hasOwn:i,isLiteral:r,isReserved:s,_toString:o,toNumber:d,toBoolean:l,stripQuotes:u,camelize:c,hyphenate:_,classify:m,bind:f,toArray:p,extend:g,isObject:y,isPlainObject:v,def:M,debounce:L,indexOf:b,cancellable:k,looseEqual:Y,isArray:On,hasProto:In,inBrowser:En,devtools:Rn,isIE:Vn,isIE9:Nn,isAndroid:Bn,isIos:$n,iosVersionMatch:Jn,iosVersion:Un,hasMutationObserverBug:Gn,get transitionProp(){return qn},get transitionEndEvent(){return Zn},get animationProp(){return Qn},get animationEndEvent(){return Xn},nextTick:ta,get _Set(){return na},query:E,inDoc:R,getAttr:z,getBindAttr:V,hasBindAttr:N,before:B,after:$,remove:J,prepend:U,replace:G,on:q,off:Z,setClass:X,addClass:K,removeClass:ee,extractContent:te,trimNode:ne,isTemplate:ie,createAnchor:re,findRef:se,mapNodeRange:oe,removeNodeRange:de,isFragment:le,getOuterHTML:ue,mergeOptions:ye,resolveAsset:ve,checkComponentAttr:ce,commonTagRE:ja,reservedTagRE:Aa,get warn(){return Sa}}),Va=0,Na=new w(1e3),Ba=0,$a=1,Ja=2,Ua=3,Ga=0,qa=1,Za=2,Qa=3,Xa=4,Ka=5,ei=6,ti=7,ni=8,ai=[];ai[Ga]={ws:[Ga],ident:[Qa,Ba],"[":[Xa],eof:[ti]},ai[qa]={ws:[qa],".":[Za],"[":[Xa],eof:[ti]},ai[Za]={ws:[Za],ident:[Qa,Ba]},ai[Qa]={ident:[Qa,Ba],0:[Qa,Ba],number:[Qa,Ba],ws:[qa,$a],".":[Za,$a],"[":[Xa,$a],eof:[ti,$a]},ai[Xa]={"'":[Ka,Ba],'"':[ei,Ba],"[":[Xa,Ja],"]":[qa,Ua],eof:ni,"else":[Xa,Ba]},ai[Ka]={"'":[Xa,Ba],eof:ni,"else":[Ka,Ba]},ai[ei]={'"':[Xa,Ba],eof:ni,"else":[ei,Ba]};var ii=Object.freeze({parsePath:Ce,getPath:je,setPath:Ae}),ri=new w(1e3),si="Math,Date,this,true,false,null,undefined,Infinity,NaN,isNaN,isFinite,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,parseInt,parseFloat",oi=new RegExp("^("+si.replace(/,/g,"\\b|")+"\\b)"),di="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",li=new RegExp("^("+di.replace(/,/g,"\\b|")+"\\b)"),ui=/\s/g,ci=/\n/g,hi=/[\{,]\s*[\w\$_]+\s*:|('(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`)|new |typeof |void /g,_i=/"(\d+)"/g,mi=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\]|\[\d+\]|\[[A-Za-z_$][\w$]*\])*$/,fi=/[^\w$\.](?:[A-Za-z_$][\w$]*)/g,pi=/^(?:true|false|null|undefined|Infinity|NaN)$/,gi=[],yi=Object.freeze({parseExpression:ze,isSimplePath:Ve}),vi=[],Mi=[],Li={},bi={},ki=!1,Yi=0;Ue.prototype.get=function(){this.beforeGet();var e,t=this.scope||this.vm;try{e=this.getter.call(t,t)}catch(n){}return this.deep&&Ge(e),this.preProcess&&(e=this.preProcess(e)),this.filters&&(e=t._applyFilters(e,null,this.filters,!1)),this.postProcess&&(e=this.postProcess(e)),this.afterGet(),e},Ue.prototype.set=function(e){var t=this.scope||this.vm;this.filters&&(e=t._applyFilters(e,this.value,this.filters,!0));try{this.setter.call(t,t,e)}catch(n){}var a=t.$forContext;if(a&&a.alias===this.expression){if(a.filters)return;a._withLock(function(){t.$key?a.rawValue[t.$key]=e:a.rawValue.$set(t.$index,e)})}},Ue.prototype.beforeGet=function(){Me.target=this},Ue.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},Ue.prototype.afterGet=function(){Me.target=null;for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},Ue.prototype.update=function(e){this.lazy?this.dirty=!0:this.sync||!Ta.async?this.run():(this.shallow=this.queued?e?this.shallow:!1:!!e,this.queued=!0,Je(this))},Ue.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||(y(e)||this.deep)&&!this.shallow){var t=this.value;this.value=e;this.prevError;this.cb.call(this.vm,e,t)}this.queued=this.shallow=!1}},Ue.prototype.evaluate=function(){var e=Me.target;this.value=this.get(),this.dirty=!1,Me.target=e},Ue.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},Ue.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||this.vm._vForRemoving||this.vm._watchers.$remove(this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1,this.vm=this.cb=this.value=null}};var wi=new na,Di={bind:function(){this.attr=3===this.el.nodeType?"data":"textContent"},update:function(e){this.el[this.attr]=o(e)}},xi=new w(1e3),Ti=new w(1e3),Si={efault:[0,"",""],legend:[1,"
","
"],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 Hi=/<([\w:-]+)/,Ci=/&#?\w+?;/,ji=/\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 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 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 diff = this.diff(sod, 'days', true),\n\t format = 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 var output = formats && (isFunction(formats[format]) ? formats[format]() : 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 this._offset ? new Date(this.valueOf()) : this._d;\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 // 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 // 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('w', ['ww', 2], 'wo', 'week');\n\t addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\t\n\t // ALIASES\n\t\n\t addUnitAlias('week', 'w');\n\t addUnitAlias('isoWeek', 'W');\n\t\n\t // PARSING\n\t\n\t addRegexToken('w', match1to2);\n\t addRegexToken('ww', match1to2, match2);\n\t addRegexToken('W', match1to2);\n\t addRegexToken('WW', match1to2, match2);\n\t\n\t addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n\t week[token.substr(0, 1)] = toInt(input);\n\t });\n\t\n\t // HELPERS\n\t\n\t // LOCALES\n\t\n\t function localeWeek (mom) {\n\t return weekOfYear(mom, this._week.dow, this._week.doy).week;\n\t }\n\t\n\t var defaultLocaleWeek = {\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 function localeFirstDayOfWeek () {\n\t return this._week.dow;\n\t }\n\t\n\t function localeFirstDayOfYear () {\n\t return this._week.doy;\n\t }\n\t\n\t // MOMENTS\n\t\n\t function getSetWeek (input) {\n\t var week = this.localeData().week(this);\n\t return input == null ? week : this.add((input - week) * 7, 'd');\n\t }\n\t\n\t function getSetISOWeek (input) {\n\t var week = weekOfYear(this, 1, 4).week;\n\t return input == null ? week : this.add((input - week) * 7, 'd');\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 // 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('d', 0, 'do', 'day');\n\t\n\t addFormatToken('dd', 0, 0, function (format) {\n\t return this.localeData().weekdaysMin(this, format);\n\t });\n\t\n\t addFormatToken('ddd', 0, 0, function (format) {\n\t return this.localeData().weekdaysShort(this, format);\n\t });\n\t\n\t addFormatToken('dddd', 0, 0, function (format) {\n\t return this.localeData().weekdays(this, format);\n\t });\n\t\n\t addFormatToken('e', 0, 0, 'weekday');\n\t addFormatToken('E', 0, 0, 'isoWeekday');\n\t\n\t // ALIASES\n\t\n\t addUnitAlias('day', 'd');\n\t addUnitAlias('weekday', 'e');\n\t addUnitAlias('isoWeekday', 'E');\n\t\n\t // PARSING\n\t\n\t addRegexToken('d', match1to2);\n\t addRegexToken('e', match1to2);\n\t addRegexToken('E', match1to2);\n\t addRegexToken('dd', function (isStrict, locale) {\n\t return locale.weekdaysMinRegex(isStrict);\n\t });\n\t addRegexToken('ddd', function (isStrict, locale) {\n\t return locale.weekdaysShortRegex(isStrict);\n\t });\n\t addRegexToken('dddd', function (isStrict, locale) {\n\t return locale.weekdaysRegex(isStrict);\n\t });\n\t\n\t addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n\t var weekday = config._locale.weekdaysParse(input, token, config._strict);\n\t // if we didn't get a weekday name, mark the date as invalid\n\t if (weekday != null) {\n\t week.d = weekday;\n\t } else {\n\t getParsingFlags(config).invalidWeekday = input;\n\t }\n\t });\n\t\n\t addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n\t week[token] = toInt(input);\n\t });\n\t\n\t // HELPERS\n\t\n\t function parseWeekday(input, locale) {\n\t if (typeof input !== 'string') {\n\t return input;\n\t }\n\t\n\t if (!isNaN(input)) {\n\t return parseInt(input, 10);\n\t }\n\t\n\t input = locale.weekdaysParse(input);\n\t if (typeof input === 'number') {\n\t return input;\n\t }\n\t\n\t return null;\n\t }\n\t\n\t // LOCALES\n\t\n\t var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n\t function localeWeekdays (m, format) {\n\t return isArray(this._weekdays) ? this._weekdays[m.day()] :\n\t this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];\n\t }\n\t\n\t var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n\t function localeWeekdaysShort (m) {\n\t return this._weekdaysShort[m.day()];\n\t }\n\t\n\t var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n\t function localeWeekdaysMin (m) {\n\t return this._weekdaysMin[m.day()];\n\t }\n\t\n\t function day_of_week__handleStrictParse(weekdayName, format, strict) {\n\t var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n\t if (!this._weekdaysParse) {\n\t this._weekdaysParse = [];\n\t this._shortWeekdaysParse = [];\n\t this._minWeekdaysParse = [];\n\t\n\t for (i = 0; i < 7; ++i) {\n\t mom = create_utc__createUTC([2000, 1]).day(i);\n\t this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n\t this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n\t this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n\t }\n\t }\n\t\n\t if (strict) {\n\t if (format === 'dddd') {\n\t ii = indexOf.call(this._weekdaysParse, llc);\n\t return ii !== -1 ? ii : null;\n\t } else if (format === 'ddd') {\n\t ii = indexOf.call(this._shortWeekdaysParse, llc);\n\t return ii !== -1 ? ii : null;\n\t } else {\n\t ii = indexOf.call(this._minWeekdaysParse, llc);\n\t return ii !== -1 ? ii : null;\n\t }\n\t } else {\n\t if (format === 'dddd') {\n\t ii = indexOf.call(this._weekdaysParse, llc);\n\t if (ii !== -1) {\n\t return ii;\n\t }\n\t ii = indexOf.call(this._shortWeekdaysParse, llc);\n\t if (ii !== -1) {\n\t return ii;\n\t }\n\t ii = indexOf.call(this._minWeekdaysParse, llc);\n\t return ii !== -1 ? ii : null;\n\t } else if (format === 'ddd') {\n\t ii = indexOf.call(this._shortWeekdaysParse, llc);\n\t if (ii !== -1) {\n\t return ii;\n\t }\n\t ii = indexOf.call(this._weekdaysParse, llc);\n\t if (ii !== -1) {\n\t return ii;\n\t }\n\t ii = indexOf.call(this._minWeekdaysParse, llc);\n\t return ii !== -1 ? ii : null;\n\t } else {\n\t ii = indexOf.call(this._minWeekdaysParse, llc);\n\t if (ii !== -1) {\n\t return ii;\n\t }\n\t ii = indexOf.call(this._weekdaysParse, llc);\n\t if (ii !== -1) {\n\t return ii;\n\t }\n\t ii = indexOf.call(this._shortWeekdaysParse, llc);\n\t return ii !== -1 ? ii : null;\n\t }\n\t }\n\t }\n\t\n\t function localeWeekdaysParse (weekdayName, format, strict) {\n\t var i, mom, regex;\n\t\n\t if (this._weekdaysParseExact) {\n\t return day_of_week__handleStrictParse.call(this, weekdayName, format, strict);\n\t }\n\t\n\t if (!this._weekdaysParse) {\n\t this._weekdaysParse = [];\n\t this._minWeekdaysParse = [];\n\t this._shortWeekdaysParse = [];\n\t this._fullWeekdaysParse = [];\n\t }\n\t\n\t for (i = 0; i < 7; i++) {\n\t // make the regex if we don't have it already\n\t\n\t mom = create_utc__createUTC([2000, 1]).day(i);\n\t if (strict && !this._fullWeekdaysParse[i]) {\n\t this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');\n\t this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');\n\t this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');\n\t }\n\t if (!this._weekdaysParse[i]) {\n\t regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n\t this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n\t }\n\t // test the regex\n\t if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n\t return i;\n\t } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n\t return i;\n\t } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n\t return i;\n\t } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n\t return i;\n\t }\n\t }\n\t }\n\t\n\t // MOMENTS\n\t\n\t function getSetDayOfWeek (input) {\n\t if (!this.isValid()) {\n\t return input != null ? this : NaN;\n\t }\n\t var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\t if (input != null) {\n\t input = parseWeekday(input, this.localeData());\n\t return this.add(input - day, 'd');\n\t } else {\n\t return day;\n\t }\n\t }\n\t\n\t function getSetLocaleDayOfWeek (input) {\n\t if (!this.isValid()) {\n\t return input != null ? this : NaN;\n\t }\n\t var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n\t return input == null ? weekday : this.add(input - weekday, 'd');\n\t }\n\t\n\t function getSetISODayOfWeek (input) {\n\t if (!this.isValid()) {\n\t return input != null ? this : NaN;\n\t }\n\t // behaves the same as moment#day except\n\t // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n\t // as a setter, sunday should belong to the previous week.\n\t return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7);\n\t }\n\t\n\t var defaultWeekdaysRegex = matchWord;\n\t function weekdaysRegex (isStrict) {\n\t if (this._weekdaysParseExact) {\n\t if (!hasOwnProp(this, '_weekdaysRegex')) {\n\t computeWeekdaysParse.call(this);\n\t }\n\t if (isStrict) {\n\t return this._weekdaysStrictRegex;\n\t } else {\n\t return this._weekdaysRegex;\n\t }\n\t } else {\n\t return this._weekdaysStrictRegex && isStrict ?\n\t this._weekdaysStrictRegex : this._weekdaysRegex;\n\t }\n\t }\n\t\n\t var defaultWeekdaysShortRegex = matchWord;\n\t function weekdaysShortRegex (isStrict) {\n\t if (this._weekdaysParseExact) {\n\t if (!hasOwnProp(this, '_weekdaysRegex')) {\n\t computeWeekdaysParse.call(this);\n\t }\n\t if (isStrict) {\n\t return this._weekdaysShortStrictRegex;\n\t } else {\n\t return this._weekdaysShortRegex;\n\t }\n\t } else {\n\t return this._weekdaysShortStrictRegex && isStrict ?\n\t this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n\t }\n\t }\n\t\n\t var defaultWeekdaysMinRegex = matchWord;\n\t function weekdaysMinRegex (isStrict) {\n\t if (this._weekdaysParseExact) {\n\t if (!hasOwnProp(this, '_weekdaysRegex')) {\n\t computeWeekdaysParse.call(this);\n\t }\n\t if (isStrict) {\n\t return this._weekdaysMinStrictRegex;\n\t } else {\n\t return this._weekdaysMinRegex;\n\t }\n\t } else {\n\t return this._weekdaysMinStrictRegex && isStrict ?\n\t this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n\t }\n\t }\n\t\n\t\n\t function computeWeekdaysParse () {\n\t function cmpLenRev(a, b) {\n\t return b.length - a.length;\n\t }\n\t\n\t var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n\t i, mom, minp, shortp, longp;\n\t for (i = 0; i < 7; i++) {\n\t // make the regex if we don't have it already\n\t mom = create_utc__createUTC([2000, 1]).day(i);\n\t minp = this.weekdaysMin(mom, '');\n\t shortp = this.weekdaysShort(mom, '');\n\t longp = this.weekdays(mom, '');\n\t minPieces.push(minp);\n\t shortPieces.push(shortp);\n\t longPieces.push(longp);\n\t mixedPieces.push(minp);\n\t mixedPieces.push(shortp);\n\t mixedPieces.push(longp);\n\t }\n\t // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n\t // will match the longer piece.\n\t minPieces.sort(cmpLenRev);\n\t shortPieces.sort(cmpLenRev);\n\t longPieces.sort(cmpLenRev);\n\t mixedPieces.sort(cmpLenRev);\n\t for (i = 0; i < 7; i++) {\n\t shortPieces[i] = regexEscape(shortPieces[i]);\n\t longPieces[i] = regexEscape(longPieces[i]);\n\t mixedPieces[i] = regexEscape(mixedPieces[i]);\n\t }\n\t\n\t this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n\t this._weekdaysShortRegex = this._weekdaysRegex;\n\t this._weekdaysMinRegex = this._weekdaysRegex;\n\t\n\t this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n\t this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n\t this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n\t }\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 // 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 function hFormat() {\n\t return this.hours() % 12 || 12;\n\t }\n\t\n\t function kFormat() {\n\t return this.hours() || 24;\n\t }\n\t\n\t addFormatToken('H', ['HH', 2], 0, 'hour');\n\t addFormatToken('h', ['hh', 2], 0, hFormat);\n\t addFormatToken('k', ['kk', 2], 0, kFormat);\n\t\n\t addFormatToken('hmm', 0, 0, function () {\n\t return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n\t });\n\t\n\t addFormatToken('hmmss', 0, 0, function () {\n\t return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n\t zeroFill(this.seconds(), 2);\n\t });\n\t\n\t addFormatToken('Hmm', 0, 0, function () {\n\t return '' + this.hours() + zeroFill(this.minutes(), 2);\n\t });\n\t\n\t addFormatToken('Hmmss', 0, 0, function () {\n\t return '' + this.hours() + zeroFill(this.minutes(), 2) +\n\t zeroFill(this.seconds(), 2);\n\t });\n\t\n\t function meridiem (token, lowercase) {\n\t addFormatToken(token, 0, 0, function () {\n\t return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n\t });\n\t }\n\t\n\t meridiem('a', true);\n\t meridiem('A', false);\n\t\n\t // ALIASES\n\t\n\t addUnitAlias('hour', 'h');\n\t\n\t // PARSING\n\t\n\t function matchMeridiem (isStrict, locale) {\n\t return locale._meridiemParse;\n\t }\n\t\n\t addRegexToken('a', matchMeridiem);\n\t addRegexToken('A', matchMeridiem);\n\t addRegexToken('H', match1to2);\n\t addRegexToken('h', match1to2);\n\t addRegexToken('HH', match1to2, match2);\n\t addRegexToken('hh', match1to2, match2);\n\t\n\t addRegexToken('hmm', match3to4);\n\t addRegexToken('hmmss', match5to6);\n\t addRegexToken('Hmm', match3to4);\n\t addRegexToken('Hmmss', match5to6);\n\t\n\t addParseToken(['H', 'HH'], HOUR);\n\t addParseToken(['a', 'A'], function (input, array, config) {\n\t config._isPm = config._locale.isPM(input);\n\t config._meridiem = input;\n\t });\n\t addParseToken(['h', 'hh'], function (input, array, config) {\n\t array[HOUR] = toInt(input);\n\t getParsingFlags(config).bigHour = true;\n\t });\n\t addParseToken('hmm', function (input, array, config) {\n\t var pos = input.length - 2;\n\t array[HOUR] = toInt(input.substr(0, pos));\n\t array[MINUTE] = toInt(input.substr(pos));\n\t getParsingFlags(config).bigHour = true;\n\t });\n\t addParseToken('hmmss', function (input, array, config) {\n\t var pos1 = input.length - 4;\n\t var pos2 = input.length - 2;\n\t array[HOUR] = toInt(input.substr(0, pos1));\n\t array[MINUTE] = toInt(input.substr(pos1, 2));\n\t array[SECOND] = toInt(input.substr(pos2));\n\t getParsingFlags(config).bigHour = true;\n\t });\n\t addParseToken('Hmm', function (input, array, config) {\n\t var pos = input.length - 2;\n\t array[HOUR] = toInt(input.substr(0, pos));\n\t array[MINUTE] = toInt(input.substr(pos));\n\t });\n\t addParseToken('Hmmss', function (input, array, config) {\n\t var pos1 = input.length - 4;\n\t var pos2 = input.length - 2;\n\t array[HOUR] = toInt(input.substr(0, pos1));\n\t array[MINUTE] = toInt(input.substr(pos1, 2));\n\t array[SECOND] = toInt(input.substr(pos2));\n\t });\n\t\n\t // LOCALES\n\t\n\t function localeIsPM (input) {\n\t // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n\t // Using charAt should be more compatible.\n\t return ((input + '').toLowerCase().charAt(0) === 'p');\n\t }\n\t\n\t var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n\t function localeMeridiem (hours, minutes, isLower) {\n\t if (hours > 11) {\n\t return isLower ? 'pm' : 'PM';\n\t } else {\n\t return isLower ? 'am' : 'AM';\n\t }\n\t }\n\t\n\t\n\t // MOMENTS\n\t\n\t // Setting the hour should keep the time, because the user explicitly\n\t // specified which hour he wants. So trying to maintain the same hour (in\n\t // a new timezone) makes sense. Adding/subtracting hours does not follow\n\t // this rule.\n\t var getSetHour = makeGetSet('Hours', true);\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 // 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 // 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 // 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 = getSet;\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 = getSet;\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.isDSTShifted = isDaylightSavingTimeShifted;\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. https://github.com/moment/moment/issues/1779', getSetZone);\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 var defaultCalendar = {\n\t sameDay : '[Today at] LT',\n\t nextDay : '[Tomorrow at] LT',\n\t nextWeek : 'dddd [at] LT',\n\t lastDay : '[Yesterday at] LT',\n\t lastWeek : '[Last] dddd [at] LT',\n\t sameElse : 'L'\n\t };\n\t\n\t function locale_calendar__calendar (key, mom, now) {\n\t var output = this._calendar[key];\n\t return isFunction(output) ? output.call(mom, now) : output;\n\t }\n\t\n\t var defaultLongDateFormat = {\n\t LTS : 'h:mm:ss A',\n\t LT : 'h:mm A',\n\t L : 'MM/DD/YYYY',\n\t LL : 'MMMM D, YYYY',\n\t LLL : 'MMMM D, YYYY h:mm A',\n\t LLLL : 'dddd, MMMM D, YYYY h:mm A'\n\t };\n\t\n\t function longDateFormat (key) {\n\t var format = this._longDateFormat[key],\n\t formatUpper = this._longDateFormat[key.toUpperCase()];\n\t\n\t if (format || !formatUpper) {\n\t return format;\n\t }\n\t\n\t this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n\t return val.slice(1);\n\t });\n\t\n\t return this._longDateFormat[key];\n\t }\n\t\n\t var defaultInvalidDate = 'Invalid date';\n\t\n\t function invalidDate () {\n\t return this._invalidDate;\n\t }\n\t\n\t var defaultOrdinal = '%d';\n\t var defaultOrdinalParse = /\\d{1,2}/;\n\t\n\t function ordinal (number) {\n\t return this._ordinal.replace('%d', number);\n\t }\n\t\n\t function preParsePostFormat (string) {\n\t return string;\n\t }\n\t\n\t var defaultRelativeTime = {\n\t future : 'in %s',\n\t past : '%s ago',\n\t s : 'a few seconds',\n\t m : 'a minute',\n\t mm : '%d minutes',\n\t h : 'an hour',\n\t hh : '%d hours',\n\t d : 'a day',\n\t dd : '%d days',\n\t M : 'a month',\n\t MM : '%d months',\n\t y : 'a year',\n\t yy : '%d years'\n\t };\n\t\n\t function relative__relativeTime (number, withoutSuffix, string, isFuture) {\n\t var output = this._relativeTime[string];\n\t return (isFunction(output)) ?\n\t output(number, withoutSuffix, string, isFuture) :\n\t output.replace(/%d/i, number);\n\t }\n\t\n\t function pastFuture (diff, output) {\n\t var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n\t return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n\t }\n\t\n\t var prototype__proto = Locale.prototype;\n\t\n\t prototype__proto._calendar = defaultCalendar;\n\t prototype__proto.calendar = locale_calendar__calendar;\n\t prototype__proto._longDateFormat = defaultLongDateFormat;\n\t prototype__proto.longDateFormat = longDateFormat;\n\t prototype__proto._invalidDate = defaultInvalidDate;\n\t prototype__proto.invalidDate = invalidDate;\n\t prototype__proto._ordinal = defaultOrdinal;\n\t prototype__proto.ordinal = ordinal;\n\t prototype__proto._ordinalParse = defaultOrdinalParse;\n\t prototype__proto.preparse = preParsePostFormat;\n\t prototype__proto.postformat = preParsePostFormat;\n\t prototype__proto._relativeTime = defaultRelativeTime;\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._months = defaultLocaleMonths;\n\t prototype__proto.monthsShort = localeMonthsShort;\n\t prototype__proto._monthsShort = defaultLocaleMonthsShort;\n\t prototype__proto.monthsParse = localeMonthsParse;\n\t prototype__proto._monthsRegex = defaultMonthsRegex;\n\t prototype__proto.monthsRegex = monthsRegex;\n\t prototype__proto._monthsShortRegex = defaultMonthsShortRegex;\n\t prototype__proto.monthsShortRegex = monthsShortRegex;\n\t\n\t // Week\n\t prototype__proto.week = localeWeek;\n\t prototype__proto._week = defaultLocaleWeek;\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._weekdays = defaultLocaleWeekdays;\n\t prototype__proto.weekdaysMin = localeWeekdaysMin;\n\t prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin;\n\t prototype__proto.weekdaysShort = localeWeekdaysShort;\n\t prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort;\n\t prototype__proto.weekdaysParse = localeWeekdaysParse;\n\t\n\t prototype__proto._weekdaysRegex = defaultWeekdaysRegex;\n\t prototype__proto.weekdaysRegex = weekdaysRegex;\n\t prototype__proto._weekdaysShortRegex = defaultWeekdaysShortRegex;\n\t prototype__proto.weekdaysShortRegex = weekdaysShortRegex;\n\t prototype__proto._weekdaysMinRegex = defaultWeekdaysMinRegex;\n\t prototype__proto.weekdaysMinRegex = weekdaysMinRegex;\n\t\n\t // Hours\n\t prototype__proto.isPM = localeIsPM;\n\t prototype__proto._meridiemParse = defaultLocaleMeridiemParse;\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 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.13.0';\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.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold;\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__(152)(module)))\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\r\n\t * @namespace Chart\r\n\t */\r\n\tvar Chart = __webpack_require__(128)();\r\n\t\r\n\t__webpack_require__(127)(Chart);\r\n\t__webpack_require__(126)(Chart);\r\n\t__webpack_require__(123)(Chart);\r\n\t__webpack_require__(124)(Chart);\r\n\t__webpack_require__(125)(Chart);\r\n\t__webpack_require__(129)(Chart);\r\n\t__webpack_require__(133)(Chart);\r\n\t__webpack_require__(131)(Chart);\r\n\t__webpack_require__(132)(Chart);\r\n\t__webpack_require__(134)(Chart);\r\n\t__webpack_require__(130)(Chart);\r\n\t__webpack_require__(135)(Chart);\r\n\t\r\n\t__webpack_require__(136)(Chart);\r\n\t__webpack_require__(137)(Chart);\r\n\t__webpack_require__(138)(Chart);\r\n\t__webpack_require__(139)(Chart);\r\n\t\r\n\t__webpack_require__(142)(Chart);\r\n\t__webpack_require__(140)(Chart);\r\n\t__webpack_require__(141)(Chart);\r\n\t__webpack_require__(143)(Chart);\r\n\t__webpack_require__(144)(Chart);\r\n\t__webpack_require__(145)(Chart);\r\n\t\r\n\t// Controllers must be loaded after elements\r\n\t// See Chart.core.datasetController.dataElementType\r\n\t__webpack_require__(117)(Chart);\r\n\t__webpack_require__(118)(Chart);\r\n\t__webpack_require__(119)(Chart);\r\n\t__webpack_require__(120)(Chart);\r\n\t__webpack_require__(121)(Chart);\r\n\t__webpack_require__(122)(Chart);\r\n\t\r\n\t__webpack_require__(110)(Chart);\r\n\t__webpack_require__(111)(Chart);\r\n\t__webpack_require__(112)(Chart);\r\n\t__webpack_require__(113)(Chart);\r\n\t__webpack_require__(114)(Chart);\r\n\t__webpack_require__(115)(Chart);\r\n\t__webpack_require__(116)(Chart);\r\n\t\r\n\twindow.Chart = module.exports = Chart;\r\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/*!\n\t * Vue.js v1.0.25\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) {\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/* 59 */\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/* 60 */\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 },\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/* 61 */\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 !== 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 !== 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/* 62 */\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/* 63 */\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/* 64 */\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/* 65 */\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/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Bahasa Malaysia (ms-MY)\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/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Bahasa Malaysia (ms-MY)\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/* 68 */\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/* 69 */\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/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : nepali/nepalese\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/* 71 */\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/* 72 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : norwegian 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/* 73 */\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/* 74 */\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/* 75 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : brazilian portuguese (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/* 76 */\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/* 77 */\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/* 78 */\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 monthsRegex: /^(сентябр[яь]|октябр[яь]|декабр[яь]|феврал[яь]|январ[яь]|апрел[яь]|августа?|ноябр[яь]|сент\\.|февр\\.|нояб\\.|июнь|янв.|июль|дек.|авг.|апр.|марта|мар[.т]|окт.|июн[яь]|июл[яь]|ма[яй])/i,\n\t monthsShortRegex: /^(сентябр[яь]|октябр[яь]|декабр[яь]|феврал[яь]|январ[яь]|апрел[яь]|августа?|ноябр[яь]|сент\\.|февр\\.|нояб\\.|июнь|янв.|июль|дек.|авг.|апр.|марта|мар[.т]|окт.|июн[яь]|июл[яь]|ма[яй])/i,\n\t monthsStrictRegex: /^(сентябр[яь]|октябр[яь]|декабр[яь]|феврал[яь]|январ[яь]|апрел[яь]|августа?|ноябр[яь]|марта?|июн[яь]|июл[яь]|ма[яй])/i,\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/* 79 */\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/* 80 */\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/* 81 */\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/* 82 */\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/* 83 */\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/* 84 */\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/* 85 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Serbian-latin (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/* 86 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : siSwati (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/* 87 */\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/* 88 */\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/* 89 */\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/* 90 */\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/* 91 */\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/* 92 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Tagalog/Filipino (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/* 93 */\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 \ttime.slice(0, -3) + 'leS' :\n\t \t(output.indexOf('jar') !== -1) ?\n\t \ttime.slice(0, -3) + 'waQ' :\n\t \t(output.indexOf('DIS') !== -1) ?\n\t \ttime.slice(0, -3) + 'nem' :\n\t \ttime + ' 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 \ttime.slice(0, -3) + 'Hu’' :\n\t \t(output.indexOf('jar') !== -1) ?\n\t \ttime.slice(0, -3) + 'wen' :\n\t \t(output.indexOf('DIS') !== -1) ?\n\t \ttime.slice(0, -3) + 'ben' :\n\t \ttime + ' 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 \tten = Math.floor((number % 100) / 10),\n\t \tone = number % 10,\n\t \tword = '';\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/* 94 */\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/* 95 */\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/* 96 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Morocco Central Atlas Tamaziɣt in 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/* 97 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : Morocco Central Atlas Tamaziɣt (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/* 98 */\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/* 99 */\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/* 100 */\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/* 101 */\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/* 102 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : chinese (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/* 103 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t//! moment.js locale configuration\n\t//! locale : traditional chinese (zh-tw)\n\t//! author : Ben : https://github.com/ben-lin\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 === '上午') {\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 < 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/* 104 */\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__(3);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(2);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\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 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 options: {\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) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? this.options : arguments[1];\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: options\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/* 105 */\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__(3);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(2);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\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 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 options: {}\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? this.options : arguments[1];\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: options\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/* 106 */\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__(3);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(2);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\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 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 options: {\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) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? this.options : arguments[1];\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: options\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/* 107 */\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__(3);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(2);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\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 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 options: {}\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? this.options : arguments[1];\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: options\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/* 108 */\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__(3);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(2);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\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 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 options: {}\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? this.options : arguments[1];\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: options\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/* 109 */\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__(3);\n\t\n\tvar _vue2 = _interopRequireDefault(_vue);\n\t\n\tvar _chart = __webpack_require__(2);\n\t\n\tvar _chart2 = _interopRequireDefault(_chart);\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 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 options: {}\n\t };\n\t },\n\t\n\t\n\t methods: {\n\t render: function render(data) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? this.options : arguments[1];\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: options\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/* 110 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tChart.Bar = function(context, config) {\r\n\t\t\tconfig.type = 'bar';\r\n\t\r\n\t\t\treturn new Chart(context, config);\r\n\t\t};\r\n\t\r\n\t};\n\n/***/ },\n/* 111 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tChart.Bubble = function(context, config) {\r\n\t\t\tconfig.type = 'bubble';\r\n\t\t\treturn new Chart(context, config);\r\n\t\t};\r\n\t\r\n\t};\n\n/***/ },\n/* 112 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tChart.Doughnut = function(context, config) {\r\n\t\t\tconfig.type = 'doughnut';\r\n\t\r\n\t\t\treturn new Chart(context, config);\r\n\t\t};\r\n\t\r\n\t};\n\n/***/ },\n/* 113 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tChart.Line = function(context, config) {\r\n\t\t\tconfig.type = 'line';\r\n\t\r\n\t\t\treturn new Chart(context, config);\r\n\t\t};\r\n\t\r\n\t};\n\n/***/ },\n/* 114 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tChart.PolarArea = function(context, config) {\r\n\t\t\tconfig.type = 'polarArea';\r\n\t\r\n\t\t\treturn new Chart(context, config);\r\n\t\t};\r\n\t\r\n\t};\n\n/***/ },\n/* 115 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\t\r\n\t\tChart.Radar = function(context, config) {\r\n\t\t\tconfig.options = Chart.helpers.configMerge({ aspectRatio: 1 }, config.options);\r\n\t\t\tconfig.type = 'radar';\r\n\t\r\n\t\t\treturn new Chart(context, config);\r\n\t\t};\r\n\t\r\n\t};\r\n\n\n/***/ },\n/* 116 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tvar defaultConfig = {\r\n\t\t\thover: {\r\n\t\t\t\tmode: 'single'\r\n\t\t\t},\r\n\t\r\n\t\t\tscales: {\r\n\t\t\t\txAxes: [{\r\n\t\t\t\t\ttype: \"linear\", // scatter should not use a category axis\r\n\t\t\t\t\tposition: \"bottom\",\r\n\t\t\t\t\tid: \"x-axis-1\" // need an ID so datasets can reference the scale\r\n\t\t\t\t}],\r\n\t\t\t\tyAxes: [{\r\n\t\t\t\t\ttype: \"linear\",\r\n\t\t\t\t\tposition: \"left\",\r\n\t\t\t\t\tid: \"y-axis-1\"\r\n\t\t\t\t}]\r\n\t\t\t},\r\n\t\r\n\t\t\ttooltips: {\r\n\t\t\t\tcallbacks: {\r\n\t\t\t\t\ttitle: function(tooltipItems, data) {\r\n\t\t\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\t\t\treturn '(' + tooltipItem.xLabel + ', ' + tooltipItem.yLabel + ')';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\t// Register the default config for this type\r\n\t\tChart.defaults.scatter = defaultConfig;\r\n\t\r\n\t\t// Scatter charts use line controllers\r\n\t\tChart.controllers.scatter = Chart.controllers.line;\r\n\t\r\n\t\tChart.Scatter = function(context, config) {\r\n\t\t\tconfig.type = 'scatter';\r\n\t\t\treturn new Chart(context, config);\r\n\t\t};\r\n\t\r\n\t};\n\n/***/ },\n/* 117 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tvar helpers = Chart.helpers;\r\n\t\r\n\t\tChart.defaults.bar = {\r\n\t\t\thover: {\r\n\t\t\t\tmode: \"label\"\r\n\t\t\t},\r\n\t\r\n\t\t\tscales: {\r\n\t\t\t\txAxes: [{\r\n\t\t\t\t\ttype: \"category\",\r\n\t\r\n\t\t\t\t\t// Specific to Bar Controller\r\n\t\t\t\t\tcategoryPercentage: 0.8,\r\n\t\t\t\t\tbarPercentage: 0.9,\r\n\t\r\n\t\t\t\t\t// grid line settings\r\n\t\t\t\t\tgridLines: {\r\n\t\t\t\t\t\toffsetGridLines: true\r\n\t\t\t\t\t}\r\n\t\t\t\t}],\r\n\t\t\t\tyAxes: [{\r\n\t\t\t\t\ttype: \"linear\"\r\n\t\t\t\t}]\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\tChart.controllers.bar = Chart.DatasetController.extend({\r\n\t\r\n\t\t\tdataElementType: Chart.elements.Rectangle,\r\n\t\r\n\t\t\tinitialize: function(chart, datasetIndex) {\r\n\t\t\t\tChart.DatasetController.prototype.initialize.call(this, chart, datasetIndex);\r\n\t\r\n\t\t\t\t// Use this to indicate that this is a bar dataset.\r\n\t\t\t\tthis.getMeta().bar = true;\r\n\t\t\t},\r\n\t\r\n\t\t\t// Get the number of datasets that display bars. We use this to correctly calculate the bar width\r\n\t\t\tgetBarCount: function getBarCount() {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar barCount = 0;\r\n\t\t\t\thelpers.each(me.chart.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tvar meta = me.chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tif (meta.bar && me.chart.isDatasetVisible(datasetIndex)) {\r\n\t\t\t\t\t\t++barCount;\r\n\t\t\t\t\t}\r\n\t\t\t\t}, me);\r\n\t\t\t\treturn barCount;\r\n\t\t\t},\r\n\t\r\n\t\t\tupdate: function update(reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\thelpers.each(me.getMeta().data, function(rectangle, index) {\r\n\t\t\t\t\tme.updateElement(rectangle, index, reset);\r\n\t\t\t\t}, me);\r\n\t\t\t},\r\n\t\r\n\t\t\tupdateElement: function updateElement(rectangle, index, reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\t\tvar scaleBase = yScale.getBasePixel();\r\n\t\t\t\tvar rectangleElementOptions = me.chart.options.elements.rectangle;\r\n\t\t\t\tvar custom = rectangle.custom || {};\r\n\t\t\t\tvar dataset = me.getDataset();\r\n\t\r\n\t\t\t\thelpers.extend(rectangle, {\r\n\t\t\t\t\t// Utility\r\n\t\t\t\t\t_xScale: xScale,\r\n\t\t\t\t\t_yScale: yScale,\r\n\t\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t\t_index: index,\r\n\t\r\n\t\t\t\t\t// Desired view properties\r\n\t\t\t\t\t_model: {\r\n\t\t\t\t\t\tx: me.calculateBarX(index, me.index),\r\n\t\t\t\t\t\ty: reset ? scaleBase : me.calculateBarY(index, me.index),\r\n\t\r\n\t\t\t\t\t\t// Tooltip\r\n\t\t\t\t\t\tlabel: me.chart.data.labels[index],\r\n\t\t\t\t\t\tdatasetLabel: dataset.label,\r\n\t\r\n\t\t\t\t\t\t// Appearance\r\n\t\t\t\t\t\tbase: reset ? scaleBase : me.calculateBarBase(me.index, index),\r\n\t\t\t\t\t\twidth: me.calculateBarWidth(index),\r\n\t\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.getValueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor),\r\n\t\t\t\t\t\tborderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleElementOptions.borderSkipped,\r\n\t\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.getValueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor),\r\n\t\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.getValueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\trectangle.pivot();\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateBarBase: function(datasetIndex, index) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\t\tvar base = 0;\r\n\t\r\n\t\t\t\tif (yScale.options.stacked) {\r\n\t\t\t\t\tvar chart = me.chart;\r\n\t\t\t\t\tvar datasets = chart.data.datasets;\r\n\t\t\t\t\tvar value = datasets[datasetIndex].data[index];\r\n\t\r\n\t\t\t\t\tif (value < 0) {\r\n\t\t\t\t\t\tfor (var i = 0; i < datasetIndex; i++) {\r\n\t\t\t\t\t\t\tvar negDS = datasets[i];\r\n\t\t\t\t\t\t\tvar negDSMeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\t\t\tif (negDSMeta.bar && negDSMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) {\r\n\t\t\t\t\t\t\t\tbase += negDS.data[index] < 0 ? negDS.data[index] : 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfor (var j = 0; j < datasetIndex; j++) {\r\n\t\t\t\t\t\t\tvar posDS = datasets[j];\r\n\t\t\t\t\t\t\tvar posDSMeta = chart.getDatasetMeta(j);\r\n\t\t\t\t\t\t\tif (posDSMeta.bar && posDSMeta.yAxisID === yScale.id && chart.isDatasetVisible(j)) {\r\n\t\t\t\t\t\t\t\tbase += posDS.data[index] > 0 ? posDS.data[index] : 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn yScale.getPixelForValue(base);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn yScale.getBasePixel();\r\n\t\t\t},\r\n\t\r\n\t\t\tgetRuler: function(index) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\t\tvar datasetCount = me.getBarCount();\r\n\t\r\n\t\t\t\tvar tickWidth;\r\n\t\r\n\t\t\t\tif (xScale.options.type === 'category') {\r\n\t\t\t\t\ttickWidth = xScale.getPixelForTick(index + 1) - xScale.getPixelForTick(index);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Average width\r\n\t\t\t\t\ttickWidth = xScale.width / xScale.ticks.length;\r\n\t\t\t\t}\r\n\t\t\t\tvar categoryWidth = tickWidth * xScale.options.categoryPercentage;\r\n\t\t\t\tvar categorySpacing = (tickWidth - (tickWidth * xScale.options.categoryPercentage)) / 2;\r\n\t\t\t\tvar fullBarWidth = categoryWidth / datasetCount;\r\n\t\r\n\t\t\t\tif (xScale.ticks.length !== me.chart.data.labels.length) {\r\n\t\t\t\t var perc = xScale.ticks.length / me.chart.data.labels.length;\r\n\t\t\t\t fullBarWidth = fullBarWidth * perc;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tvar barWidth = fullBarWidth * xScale.options.barPercentage;\r\n\t\t\t\tvar barSpacing = fullBarWidth - (fullBarWidth * xScale.options.barPercentage);\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\tdatasetCount: datasetCount,\r\n\t\t\t\t\ttickWidth: tickWidth,\r\n\t\t\t\t\tcategoryWidth: categoryWidth,\r\n\t\t\t\t\tcategorySpacing: categorySpacing,\r\n\t\t\t\t\tfullBarWidth: fullBarWidth,\r\n\t\t\t\t\tbarWidth: barWidth,\r\n\t\t\t\t\tbarSpacing: barSpacing\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateBarWidth: function(index) {\r\n\t\t\t\tvar xScale = this.getScaleForId(this.getMeta().xAxisID);\r\n\t\t\t\tvar ruler = this.getRuler(index);\r\n\t\t\t\treturn xScale.options.stacked ? ruler.categoryWidth : ruler.barWidth;\r\n\t\t\t},\r\n\t\r\n\t\t\t// Get bar index from the given dataset index accounting for the fact that not all bars are visible\r\n\t\t\tgetBarIndex: function(datasetIndex) {\r\n\t\t\t\tvar barIndex = 0;\r\n\t\t\t\tvar meta, j;\r\n\t\r\n\t\t\t\tfor (j = 0; j < datasetIndex; ++j) {\r\n\t\t\t\t\tmeta = this.chart.getDatasetMeta(j);\r\n\t\t\t\t\tif (meta.bar && this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t\t\t++barIndex;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn barIndex;\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateBarX: function(index, datasetIndex) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\t\tvar barIndex = me.getBarIndex(datasetIndex);\r\n\t\r\n\t\t\t\tvar ruler = me.getRuler(index);\r\n\t\t\t\tvar leftTick = xScale.getPixelForValue(null, index, datasetIndex, me.chart.isCombo);\r\n\t\t\t\tleftTick -= me.chart.isCombo ? (ruler.tickWidth / 2) : 0;\r\n\t\r\n\t\t\t\tif (xScale.options.stacked) {\r\n\t\t\t\t\treturn leftTick + (ruler.categoryWidth / 2) + ruler.categorySpacing;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn leftTick +\r\n\t\t\t\t\t(ruler.barWidth / 2) +\r\n\t\t\t\t\truler.categorySpacing +\r\n\t\t\t\t\t(ruler.barWidth * barIndex) +\r\n\t\t\t\t\t(ruler.barSpacing / 2) +\r\n\t\t\t\t\t(ruler.barSpacing * barIndex);\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateBarY: function(index, datasetIndex) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\t\tvar value = me.getDataset().data[index];\r\n\t\r\n\t\t\t\tif (yScale.options.stacked) {\r\n\t\r\n\t\t\t\t\tvar sumPos = 0,\r\n\t\t\t\t\t\tsumNeg = 0;\r\n\t\r\n\t\t\t\t\tfor (var i = 0; i < datasetIndex; i++) {\r\n\t\t\t\t\t\tvar ds = me.chart.data.datasets[i];\r\n\t\t\t\t\t\tvar dsMeta = me.chart.getDatasetMeta(i);\r\n\t\t\t\t\t\tif (dsMeta.bar && dsMeta.yAxisID === yScale.id && me.chart.isDatasetVisible(i)) {\r\n\t\t\t\t\t\t\tif (ds.data[index] < 0) {\r\n\t\t\t\t\t\t\t\tsumNeg += ds.data[index] || 0;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tsumPos += ds.data[index] || 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tif (value < 0) {\r\n\t\t\t\t\t\treturn yScale.getPixelForValue(sumNeg + value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn yScale.getPixelForValue(sumPos + value);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn yScale.getPixelForValue(value);\r\n\t\t\t},\r\n\t\r\n\t\t\tdraw: function(ease) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar easingDecimal = ease || 1;\r\n\t\t\t\thelpers.each(me.getMeta().data, function(rectangle, index) {\r\n\t\t\t\t\tvar d = me.getDataset().data[index];\r\n\t\t\t\t\tif (d !== null && d !== undefined && !isNaN(d)) {\r\n\t\t\t\t\t\trectangle.transition(easingDecimal).draw();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, me);\r\n\t\t\t},\r\n\t\r\n\t\t\tsetHoverStyle: function(rectangle) {\r\n\t\t\t\tvar dataset = this.chart.data.datasets[rectangle._datasetIndex];\r\n\t\t\t\tvar index = rectangle._index;\r\n\t\r\n\t\t\t\tvar custom = rectangle.custom || {};\r\n\t\t\t\tvar model = rectangle._model;\r\n\t\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.getValueAtIndexOrDefault(dataset.hoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\r\n\t\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.getValueAtIndexOrDefault(dataset.hoverBorderColor, index, helpers.getHoverColor(model.borderColor));\r\n\t\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.getValueAtIndexOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\r\n\t\t\t},\r\n\t\r\n\t\t\tremoveHoverStyle: function(rectangle) {\r\n\t\t\t\tvar dataset = this.chart.data.datasets[rectangle._datasetIndex];\r\n\t\t\t\tvar index = rectangle._index;\r\n\t\t\t\tvar custom = rectangle.custom || {};\r\n\t\t\t\tvar model = rectangle._model;\r\n\t\t\t\tvar rectangleElementOptions = this.chart.options.elements.rectangle;\r\n\t\r\n\t\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.getValueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor);\r\n\t\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : helpers.getValueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor);\r\n\t\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.getValueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth);\r\n\t\t\t}\r\n\t\r\n\t\t});\r\n\t\r\n\t\r\n\t\t// including horizontalBar in the bar file, instead of a file of its own\r\n\t\t// it extends bar (like pie extends doughnut)\r\n\t\tChart.defaults.horizontalBar = {\r\n\t\t\thover: {\r\n\t\t\t\tmode: \"label\"\r\n\t\t\t},\r\n\t\r\n\t\t\tscales: {\r\n\t\t\t\txAxes: [{\r\n\t\t\t\t\ttype: \"linear\",\r\n\t\t\t\t\tposition: \"bottom\"\r\n\t\t\t\t}],\r\n\t\t\t\tyAxes: [{\r\n\t\t\t\t\tposition: \"left\",\r\n\t\t\t\t\ttype: \"category\",\r\n\t\r\n\t\t\t\t\t// Specific to Horizontal Bar Controller\r\n\t\t\t\t\tcategoryPercentage: 0.8,\r\n\t\t\t\t\tbarPercentage: 0.9,\r\n\t\r\n\t\t\t\t\t// grid line settings\r\n\t\t\t\t\tgridLines: {\r\n\t\t\t\t\t\toffsetGridLines: true\r\n\t\t\t\t\t}\r\n\t\t\t\t}]\r\n\t\t\t},\r\n\t\t\telements: {\r\n\t\t\t\trectangle: {\r\n\t\t\t\t\tborderSkipped: 'left'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\ttooltips: {\r\n\t\t\t\tcallbacks: {\r\n\t\t\t\t\ttitle: function(tooltipItems, data) {\r\n\t\t\t\t\t\t// Pick first xLabel for now\r\n\t\t\t\t\t\tvar title = '';\r\n\t\r\n\t\t\t\t\t\tif (tooltipItems.length > 0) {\r\n\t\t\t\t\t\t\tif (tooltipItems[0].yLabel) {\r\n\t\t\t\t\t\t\t\ttitle = tooltipItems[0].yLabel;\r\n\t\t\t\t\t\t\t} else if (data.labels.length > 0 && tooltipItems[0].index < data.labels.length) {\r\n\t\t\t\t\t\t\t\ttitle = data.labels[tooltipItems[0].index];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\treturn title;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\t\t\tvar datasetLabel = data.datasets[tooltipItem.datasetIndex].label || '';\r\n\t\t\t\t\treturn datasetLabel + ': ' + tooltipItem.xLabel;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\tChart.controllers.horizontalBar = Chart.controllers.bar.extend({\r\n\t\t\tupdateElement: function updateElement(rectangle, index, reset, numBars) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\t\tvar scaleBase = xScale.getBasePixel();\r\n\t\t\t\tvar custom = rectangle.custom || {};\r\n\t\t\t\tvar dataset = me.getDataset();\r\n\t\t\t\tvar rectangleElementOptions = me.chart.options.elements.rectangle;\r\n\t\r\n\t\t\t\thelpers.extend(rectangle, {\r\n\t\t\t\t\t// Utility\r\n\t\t\t\t\t_xScale: xScale,\r\n\t\t\t\t\t_yScale: yScale,\r\n\t\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t\t_index: index,\r\n\t\r\n\t\t\t\t\t// Desired view properties\r\n\t\t\t\t\t_model: {\r\n\t\t\t\t\t\tx: reset ? scaleBase : me.calculateBarX(index, me.index),\r\n\t\t\t\t\t\ty: me.calculateBarY(index, me.index),\r\n\t\r\n\t\t\t\t\t\t// Tooltip\r\n\t\t\t\t\t\tlabel: me.chart.data.labels[index],\r\n\t\t\t\t\t\tdatasetLabel: dataset.label,\r\n\t\r\n\t\t\t\t\t\t// Appearance\r\n\t\t\t\t\t\tbase: reset ? scaleBase : me.calculateBarBase(me.index, index),\r\n\t\t\t\t\t\theight: me.calculateBarHeight(index),\r\n\t\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.getValueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor),\r\n\t\t\t\t\t\tborderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleElementOptions.borderSkipped,\r\n\t\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.getValueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor),\r\n\t\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.getValueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth)\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\tdraw: function () {\r\n\t\t\t\t\t\tvar ctx = this._chart.ctx;\r\n\t\t\t\t\t\tvar vm = this._view;\r\n\t\r\n\t\t\t\t\t\tvar halfHeight = vm.height / 2,\r\n\t\t\t\t\t\t\ttopY = vm.y - halfHeight,\r\n\t\t\t\t\t\t\tbottomY = vm.y + halfHeight,\r\n\t\t\t\t\t\t\tright = vm.base - (vm.base - vm.x),\r\n\t\t\t\t\t\t\thalfStroke = vm.borderWidth / 2;\r\n\t\r\n\t\t\t\t\t\t// Canvas doesn't allow us to stroke inside the width so we can\r\n\t\t\t\t\t\t// adjust the sizes to fit if we're setting a stroke on the line\r\n\t\t\t\t\t\tif (vm.borderWidth) {\r\n\t\t\t\t\t\t\ttopY += halfStroke;\r\n\t\t\t\t\t\t\tbottomY -= halfStroke;\r\n\t\t\t\t\t\t\tright += halfStroke;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tctx.beginPath();\r\n\t\r\n\t\t\t\t\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\t\t\t\t\tctx.strokeStyle = vm.borderColor;\r\n\t\t\t\t\t\tctx.lineWidth = vm.borderWidth;\r\n\t\r\n\t\t\t\t\t\t// Corner points, from bottom-left to bottom-right clockwise\r\n\t\t\t\t\t\t// | 1 2 |\r\n\t\t\t\t\t\t// | 0 3 |\r\n\t\t\t\t\t\tvar corners = [\r\n\t\t\t\t\t\t\t[vm.base, bottomY],\r\n\t\t\t\t\t\t\t[vm.base, topY],\r\n\t\t\t\t\t\t\t[right, topY],\r\n\t\t\t\t\t\t\t[right, bottomY]\r\n\t\t\t\t\t\t];\r\n\t\r\n\t\t\t\t\t\t// Find first (starting) corner with fallback to 'bottom'\r\n\t\t\t\t\t\tvar borders = ['bottom', 'left', 'top', 'right'];\r\n\t\t\t\t\t\tvar startCorner = borders.indexOf(vm.borderSkipped, 0);\r\n\t\t\t\t\t\tif (startCorner === -1)\r\n\t\t\t\t\t\t\tstartCorner = 0;\r\n\t\r\n\t\t\t\t\t\tfunction cornerAt(index) {\r\n\t\t\t\t\t\t\treturn corners[(startCorner + index) % 4];\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t// Draw rectangle from 'startCorner'\r\n\t\t\t\t\t\tctx.moveTo.apply(ctx, cornerAt(0));\r\n\t\t\t\t\t\tfor (var i = 1; i < 4; i++)\r\n\t\t\t\t\t\t\tctx.lineTo.apply(ctx, cornerAt(i));\r\n\t\r\n\t\t\t\t\t\tctx.fill();\r\n\t\t\t\t\t\tif (vm.borderWidth) {\r\n\t\t\t\t\t\t\tctx.stroke();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\tinRange: function (mouseX, mouseY) {\r\n\t\t\t\t\t\tvar vm = this._view;\r\n\t\t\t\t\t\tvar inRange = false;\r\n\t\r\n\t\t\t\t\t\tif (vm) {\r\n\t\t\t\t\t\t\tif (vm.x < vm.base) {\r\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);\r\n\t\t\t\t\t\t\t} else {\r\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);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\treturn inRange;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\trectangle.pivot();\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateBarBase: function (datasetIndex, index) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\t\tvar base = 0;\r\n\t\r\n\t\t\t\tif (xScale.options.stacked) {\r\n\t\r\n\t\t\t\t\tvar value = me.chart.data.datasets[datasetIndex].data[index];\r\n\t\r\n\t\t\t\t\tif (value < 0) {\r\n\t\t\t\t\t\tfor (var i = 0; i < datasetIndex; i++) {\r\n\t\t\t\t\t\t\tvar negDS = me.chart.data.datasets[i];\r\n\t\t\t\t\t\t\tvar negDSMeta = me.chart.getDatasetMeta(i);\r\n\t\t\t\t\t\t\tif (negDSMeta.bar && negDSMeta.xAxisID === xScale.id && me.chart.isDatasetVisible(i)) {\r\n\t\t\t\t\t\t\t\tbase += negDS.data[index] < 0 ? negDS.data[index] : 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfor (var j = 0; j < datasetIndex; j++) {\r\n\t\t\t\t\t\t\tvar posDS = me.chart.data.datasets[j];\r\n\t\t\t\t\t\t\tvar posDSMeta = me.chart.getDatasetMeta(j);\r\n\t\t\t\t\t\t\tif (posDSMeta.bar && posDSMeta.xAxisID === xScale.id && me.chart.isDatasetVisible(j)) {\r\n\t\t\t\t\t\t\t\tbase += posDS.data[index] > 0 ? posDS.data[index] : 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn xScale.getPixelForValue(base);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn xScale.getBasePixel();\r\n\t\t\t},\r\n\t\r\n\t\t\tgetRuler: function (index) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\t\tvar datasetCount = me.getBarCount();\r\n\t\r\n\t\t\t\tvar tickHeight;\r\n\t\t\t\tif (yScale.options.type === 'category') {\r\n\t\t\t\t\ttickHeight = yScale.getPixelForTick(index + 1) - yScale.getPixelForTick(index);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Average width\r\n\t\t\t\t\ttickHeight = yScale.width / yScale.ticks.length;\r\n\t\t\t\t}\r\n\t\t\t\tvar categoryHeight = tickHeight * yScale.options.categoryPercentage;\r\n\t\t\t\tvar categorySpacing = (tickHeight - (tickHeight * yScale.options.categoryPercentage)) / 2;\r\n\t\t\t\tvar fullBarHeight = categoryHeight / datasetCount;\r\n\t\r\n\t\t\t\tif (yScale.ticks.length !== me.chart.data.labels.length) {\r\n\t\t\t\t\tvar perc = yScale.ticks.length / me.chart.data.labels.length;\r\n\t\t\t\t\tfullBarHeight = fullBarHeight * perc;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tvar barHeight = fullBarHeight * yScale.options.barPercentage;\r\n\t\t\t\tvar barSpacing = fullBarHeight - (fullBarHeight * yScale.options.barPercentage);\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\tdatasetCount: datasetCount,\r\n\t\t\t\t\ttickHeight: tickHeight,\r\n\t\t\t\t\tcategoryHeight: categoryHeight,\r\n\t\t\t\t\tcategorySpacing: categorySpacing,\r\n\t\t\t\t\tfullBarHeight: fullBarHeight,\r\n\t\t\t\t\tbarHeight: barHeight,\r\n\t\t\t\t\tbarSpacing: barSpacing,\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateBarHeight: function (index) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar yScale = me.getScaleForId(me.getMeta().yAxisID);\r\n\t\t\t\tvar ruler = me.getRuler(index);\r\n\t\t\t\treturn yScale.options.stacked ? ruler.categoryHeight : ruler.barHeight;\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateBarX: function (index, datasetIndex) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\t\tvar value = me.getDataset().data[index];\r\n\t\r\n\t\t\t\tif (xScale.options.stacked) {\r\n\t\r\n\t\t\t\t\tvar sumPos = 0,\r\n\t\t\t\t\t\tsumNeg = 0;\r\n\t\r\n\t\t\t\t\tfor (var i = 0; i < datasetIndex; i++) {\r\n\t\t\t\t\t\tvar ds = me.chart.data.datasets[i];\r\n\t\t\t\t\t\tvar dsMeta = me.chart.getDatasetMeta(i);\r\n\t\t\t\t\t\tif (dsMeta.bar && dsMeta.xAxisID === xScale.id && me.chart.isDatasetVisible(i)) {\r\n\t\t\t\t\t\t\tif (ds.data[index] < 0) {\r\n\t\t\t\t\t\t\t\tsumNeg += ds.data[index] || 0;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tsumPos += ds.data[index] || 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tif (value < 0) {\r\n\t\t\t\t\t\treturn xScale.getPixelForValue(sumNeg + value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn xScale.getPixelForValue(sumPos + value);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn xScale.getPixelForValue(value);\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateBarY: function (index, datasetIndex) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\t\tvar barIndex = me.getBarIndex(datasetIndex);\r\n\t\r\n\t\t\t\tvar ruler = me.getRuler(index);\r\n\t\t\t\tvar topTick = yScale.getPixelForValue(null, index, datasetIndex, me.chart.isCombo);\r\n\t\t\t\ttopTick -= me.chart.isCombo ? (ruler.tickHeight / 2) : 0;\r\n\t\r\n\t\t\t\tif (yScale.options.stacked) {\r\n\t\t\t\t\treturn topTick + (ruler.categoryHeight / 2) + ruler.categorySpacing;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn topTick +\r\n\t\t\t\t\t(ruler.barHeight / 2) +\r\n\t\t\t\t\truler.categorySpacing +\r\n\t\t\t\t\t(ruler.barHeight * barIndex) +\r\n\t\t\t\t\t(ruler.barSpacing / 2) +\r\n\t\t\t\t\t(ruler.barSpacing * barIndex);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\n\n/***/ },\n/* 118 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tvar helpers = Chart.helpers;\r\n\t\r\n\t\tChart.defaults.bubble = {\r\n\t\t\thover: {\r\n\t\t\t\tmode: \"single\"\r\n\t\t\t},\r\n\t\r\n\t\t\tscales: {\r\n\t\t\t\txAxes: [{\r\n\t\t\t\t\ttype: \"linear\", // bubble should probably use a linear scale by default\r\n\t\t\t\t\tposition: \"bottom\",\r\n\t\t\t\t\tid: \"x-axis-0\" // need an ID so datasets can reference the scale\r\n\t\t\t\t}],\r\n\t\t\t\tyAxes: [{\r\n\t\t\t\t\ttype: \"linear\",\r\n\t\t\t\t\tposition: \"left\",\r\n\t\t\t\t\tid: \"y-axis-0\"\r\n\t\t\t\t}]\r\n\t\t\t},\r\n\t\r\n\t\t\ttooltips: {\r\n\t\t\t\tcallbacks: {\r\n\t\t\t\t\ttitle: function(tooltipItems, data) {\r\n\t\t\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\t\t\tvar datasetLabel = data.datasets[tooltipItem.datasetIndex].label || '';\r\n\t\t\t\t\t\tvar dataPoint = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\t\t\t\t\t\treturn datasetLabel + ': (' + dataPoint.x + ', ' + dataPoint.y + ', ' + dataPoint.r + ')';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\tChart.controllers.bubble = Chart.DatasetController.extend({\r\n\t\r\n\t\t\tdataElementType: Chart.elements.Point,\r\n\t\r\n\t\t\tupdate: function update(reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar points = meta.data;\r\n\t\r\n\t\t\t\t// Update Points\r\n\t\t\t\thelpers.each(points, function(point, index) {\r\n\t\t\t\t\tme.updateElement(point, index, reset);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\r\n\t\t\tupdateElement: function(point, index, reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\r\n\t\t\t\tvar custom = point.custom || {};\r\n\t\t\t\tvar dataset = me.getDataset();\r\n\t\t\t\tvar data = dataset.data[index];\r\n\t\t\t\tvar pointElementOptions = me.chart.options.elements.point;\r\n\t\t\t\tvar dsIndex = me.index;\r\n\t\r\n\t\t\t\thelpers.extend(point, {\r\n\t\t\t\t\t// Utility\r\n\t\t\t\t\t_xScale: xScale,\r\n\t\t\t\t\t_yScale: yScale,\r\n\t\t\t\t\t_datasetIndex: dsIndex,\r\n\t\t\t\t\t_index: index,\r\n\t\r\n\t\t\t\t\t// Desired view properties\r\n\t\t\t\t\t_model: {\r\n\t\t\t\t\t\tx: reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(data, index, dsIndex, me.chart.isCombo),\r\n\t\t\t\t\t\ty: reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex),\r\n\t\t\t\t\t\t// Appearance\r\n\t\t\t\t\t\tradius: reset ? 0 : custom.radius ? custom.radius : me.getRadius(data),\r\n\t\r\n\t\t\t\t\t\t// Tooltip\r\n\t\t\t\t\t\thitRadius: custom.hitRadius ? custom.hitRadius : helpers.getValueAtIndexOrDefault(dataset.hitRadius, index, pointElementOptions.hitRadius)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\t// Trick to reset the styles of the point\r\n\t\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(me, point, pointElementOptions);\r\n\t\r\n\t\t\t\tvar model = point._model;\r\n\t\t\t\tmodel.skip = custom.skip ? custom.skip : (isNaN(model.x) || isNaN(model.y));\r\n\t\r\n\t\t\t\tpoint.pivot();\r\n\t\t\t},\r\n\t\r\n\t\t\tgetRadius: function(value) {\r\n\t\t\t\treturn value.r || this.chart.options.elements.point.radius;\r\n\t\t\t},\r\n\t\r\n\t\t\tsetHoverStyle: function(point) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tChart.DatasetController.prototype.setHoverStyle.call(me, point);\r\n\t\r\n\t\t\t\t// Radius\r\n\t\t\t\tvar dataset = me.chart.data.datasets[point._datasetIndex];\r\n\t\t\t\tvar index = point._index;\r\n\t\t\t\tvar custom = point.custom || {};\r\n\t\t\t\tvar model = point._model;\r\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]);\r\n\t\t\t},\r\n\t\r\n\t\t\tremoveHoverStyle: function(point) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(me, point, me.chart.options.elements.point);\r\n\t\r\n\t\t\t\tvar dataVal = me.chart.data.datasets[point._datasetIndex].data[point._index];\r\n\t\t\t\tvar custom = point.custom || {};\r\n\t\t\t\tvar model = point._model;\r\n\t\r\n\t\t\t\tmodel.radius = custom.radius ? custom.radius : me.getRadius(dataVal);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\n\n/***/ },\n/* 119 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tvar helpers = Chart.helpers,\r\n\t\t\tdefaults = Chart.defaults;\r\n\t\r\n\t\tdefaults.doughnut = {\r\n\t\t\tanimation: {\r\n\t\t\t\t//Boolean - Whether we animate the rotation of the Doughnut\r\n\t\t\t\tanimateRotate: true,\r\n\t\t\t\t//Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\t\t\tanimateScale: false\r\n\t\t\t},\r\n\t\t\taspectRatio: 1,\r\n\t\t\thover: {\r\n\t\t\t\tmode: 'single'\r\n\t\t\t},\r\n\t\t\tlegendCallback: function(chart) {\r\n\t\t\t\tvar text = [];\r\n\t\t\t\ttext.push('
    ');\r\n\t\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tvar datasets = data.datasets;\r\n\t\t\t\tvar labels = data.labels;\r\n\t\r\n\t\t\t\tif (datasets.length) {\r\n\t\t\t\t\tfor (var i = 0; i < datasets[0].data.length; ++i) {\r\n\t\t\t\t\t\ttext.push('
  • ');\r\n\t\t\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\t\t\ttext.push(labels[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttext.push('
  • ');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\ttext.push('
');\r\n\t\t\t\treturn text.join(\"\");\r\n\t\t\t},\r\n\t\t\tlegend: {\r\n\t\t\t\tlabels: {\r\n\t\t\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\t\t\tvar data = chart.data;\r\n\t\t\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\t\t\tvar ds = data.datasets[0];\r\n\t\t\t\t\t\t\t\tvar arc = meta.data[i];\r\n\t\t\t\t\t\t\t\tvar custom = arc.custom || {};\r\n\t\t\t\t\t\t\t\tvar getValueAtIndexOrDefault = helpers.getValueAtIndexOrDefault;\r\n\t\t\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\r\n\t\t\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : getValueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\r\n\t\t\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : getValueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\r\n\t\t\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : getValueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\r\n\t\r\n\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\t\t\tfillStyle: fill,\r\n\t\t\t\t\t\t\t\t\tstrokeStyle: stroke,\r\n\t\t\t\t\t\t\t\t\tlineWidth: bw,\r\n\t\t\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\r\n\t\r\n\t\t\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn [];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\r\n\t\t\t\tonClick: function(e, legendItem) {\r\n\t\t\t\t\tvar index = legendItem.index;\r\n\t\t\t\t\tvar chart = this.chart;\r\n\t\t\t\t\tvar i, ilen, meta;\r\n\t\r\n\t\t\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tchart.update();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\r\n\t\t\t//The percentage of the chart that we cut out of the middle.\r\n\t\t\tcutoutPercentage: 50,\r\n\t\r\n\t\t\t//The rotation of the chart, where the first data arc begins.\r\n\t\t\trotation: Math.PI * -0.5,\r\n\t\r\n\t\t\t//The total circumference of the chart.\r\n\t\t\tcircumference: Math.PI * 2.0,\r\n\t\r\n\t\t\t// Need to override these to give a nice default\r\n\t\t\ttooltips: {\r\n\t\t\t\tcallbacks: {\r\n\t\t\t\t\ttitle: function() {\r\n\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\t\t\treturn data.labels[tooltipItem.index] + ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\tdefaults.pie = helpers.clone(defaults.doughnut);\r\n\t\thelpers.extend(defaults.pie, {\r\n\t\t\tcutoutPercentage: 0\r\n\t\t});\r\n\t\r\n\t\r\n\t\tChart.controllers.doughnut = Chart.controllers.pie = Chart.DatasetController.extend({\r\n\t\r\n\t\t\tdataElementType: Chart.elements.Arc,\r\n\t\r\n\t\t\tlinkScales: helpers.noop,\r\n\t\r\n\t\t\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\t\t\tgetRingIndex: function getRingIndex(datasetIndex) {\r\n\t\t\t\tvar ringIndex = 0;\r\n\t\r\n\t\t\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t\t\t++ringIndex;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn ringIndex;\r\n\t\t\t},\r\n\t\r\n\t\t\tupdate: function update(reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar chart = me.chart,\r\n\t\t\t\t\tchartArea = chart.chartArea,\r\n\t\t\t\t\topts = chart.options,\r\n\t\t\t\t\tarcOpts = opts.elements.arc,\r\n\t\t\t\t\tavailableWidth = chartArea.right - chartArea.left - arcOpts.borderWidth,\r\n\t\t\t\t\tavailableHeight = chartArea.bottom - chartArea.top - arcOpts.borderWidth,\r\n\t\t\t\t\tminSize = Math.min(availableWidth, availableHeight),\r\n\t\t\t\t\toffset = {\r\n\t\t\t\t\t\tx: 0,\r\n\t\t\t\t\t\ty: 0\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmeta = me.getMeta(),\r\n\t\t\t\t\tcutoutPercentage = opts.cutoutPercentage,\r\n\t\t\t\t\tcircumference = opts.circumference;\r\n\t\r\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\r\n\t\t\t\tif (circumference < Math.PI * 2.0) {\r\n\t\t\t\t\tvar startAngle = opts.rotation % (Math.PI * 2.0);\r\n\t\t\t\t\tstartAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0);\r\n\t\t\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\t\t\tvar start = {x: Math.cos(startAngle), y: Math.sin(startAngle)};\r\n\t\t\t\t\tvar end = {x: Math.cos(endAngle), y: Math.sin(endAngle)};\r\n\t\t\t\t\tvar contains0 = (startAngle <= 0 && 0 <= endAngle) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle);\r\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);\r\n\t\t\t\t\tvar contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle);\r\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);\r\n\t\t\t\t\tvar cutout = cutoutPercentage / 100.0;\r\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))};\r\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))};\r\n\t\t\t\t\tvar size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5};\r\n\t\t\t\t\tminSize = Math.min(availableWidth / size.width, availableHeight / size.height);\r\n\t\t\t\t\toffset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5};\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\t\t\tchart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 1, 0);\r\n\t\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\t\t\t\tchart.offsetX = offset.x * chart.outerRadius;\r\n\t\t\t\tchart.offsetY = offset.y * chart.outerRadius;\r\n\t\r\n\t\t\t\tmeta.total = me.calculateTotal();\r\n\t\r\n\t\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.getRingIndex(me.index));\r\n\t\t\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t\r\n\t\t\t\thelpers.each(meta.data, function(arc, index) {\r\n\t\t\t\t\tme.updateElement(arc, index, reset);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\r\n\t\t\tupdateElement: function(arc, index, reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar chart = me.chart,\r\n\t\t\t\t\tchartArea = chart.chartArea,\r\n\t\t\t\t\topts = chart.options,\r\n\t\t\t\t\tanimationOpts = opts.animation,\r\n\t\t\t\t\tarcOpts = opts.elements.arc,\r\n\t\t\t\t\tcenterX = (chartArea.left + chartArea.right) / 2,\r\n\t\t\t\t\tcenterY = (chartArea.top + chartArea.bottom) / 2,\r\n\t\t\t\t\tstartAngle = opts.rotation, // non reset case handled later\r\n\t\t\t\t\tendAngle = opts.rotation, // non reset case handled later\r\n\t\t\t\t\tdataset = me.getDataset(),\r\n\t\t\t\t\tcircumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI)),\r\n\t\t\t\t\tinnerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius,\r\n\t\t\t\t\touterRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius,\r\n\t\t\t\t\tcustom = arc.custom || {},\r\n\t\t\t\t\tvalueAtIndexOrDefault = helpers.getValueAtIndexOrDefault;\r\n\t\r\n\t\t\t\thelpers.extend(arc, {\r\n\t\t\t\t\t// Utility\r\n\t\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t\t_index: index,\r\n\t\r\n\t\t\t\t\t// Desired view properties\r\n\t\t\t\t\t_model: {\r\n\t\t\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\t\t\tendAngle: endAngle,\r\n\t\t\t\t\t\tcircumference: circumference,\r\n\t\t\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\t\t\tlabel: valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\tvar model = arc._model;\r\n\t\t\t\t// Resets the visual styles\r\n\t\t\t\tthis.removeHoverStyle(arc);\r\n\t\r\n\t\t\t\t// Set correct angles if not resetting\r\n\t\t\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\t\t\tif (index === 0) {\r\n\t\t\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tarc.pivot();\r\n\t\t\t},\r\n\t\r\n\t\t\tremoveHoverStyle: function(arc) {\r\n\t\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateTotal: function() {\r\n\t\t\t\tvar dataset = this.getDataset();\r\n\t\t\t\tvar meta = this.getMeta();\r\n\t\t\t\tvar total = 0;\r\n\t\t\t\tvar value;\r\n\t\r\n\t\t\t\thelpers.each(meta.data, function(element, index) {\r\n\t\t\t\t\tvalue = dataset.data[index];\r\n\t\t\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\treturn total;\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateCircumference: function(value) {\r\n\t\t\t\tvar total = this.getMeta().total;\r\n\t\t\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\t\t\treturn (Math.PI * 2.0) * (value / total);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\n\n/***/ },\n/* 120 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tvar helpers = Chart.helpers;\r\n\t\r\n\t\tChart.defaults.line = {\r\n\t\t\tshowLines: true,\r\n\t\r\n\t\t\thover: {\r\n\t\t\t\tmode: \"label\"\r\n\t\t\t},\r\n\t\r\n\t\t\tscales: {\r\n\t\t\t\txAxes: [{\r\n\t\t\t\t\ttype: \"category\",\r\n\t\t\t\t\tid: 'x-axis-0'\r\n\t\t\t\t}],\r\n\t\t\t\tyAxes: [{\r\n\t\t\t\t\ttype: \"linear\",\r\n\t\t\t\t\tid: 'y-axis-0'\r\n\t\t\t\t}]\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\tfunction lineEnabled(dataset, options) {\r\n\t\t\treturn helpers.getValueOrDefault(dataset.showLine, options.showLines);\r\n\t\t}\r\n\t\r\n\t\tChart.controllers.line = Chart.DatasetController.extend({\r\n\t\r\n\t\t\tdatasetElementType: Chart.elements.Line,\r\n\t\r\n\t\t\tdataElementType: Chart.elements.Point,\r\n\t\r\n\t\t\taddElementAndReset: function(index) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar options = me.chart.options;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\r\n\t\t\t\tChart.DatasetController.prototype.addElementAndReset.call(me, index);\r\n\t\r\n\t\t\t\t// Make sure bezier control points are updated\r\n\t\t\t\tif (lineEnabled(me.getDataset(), options) && meta.dataset._model.tension !== 0) {\r\n\t\t\t\t\tme.updateBezierControlPoints();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\r\n\t\t\tupdate: function update(reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar line = meta.dataset;\r\n\t\t\t\tvar points = meta.data || [];\r\n\t\t\t\tvar options = me.chart.options;\r\n\t\t\t\tvar lineElementOptions = options.elements.line;\r\n\t\t\t\tvar scale = me.getScaleForId(meta.yAxisID);\r\n\t\t\t\tvar i, ilen, custom;\r\n\t\t\t\tvar dataset = me.getDataset();\r\n\t\t\t\tvar showLine = lineEnabled(dataset, options);\r\n\t\r\n\t\t\t\t// Update Line\r\n\t\t\t\tif (showLine) {\r\n\t\t\t\t\tcustom = line.custom || {};\r\n\t\r\n\t\t\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\r\n\t\t\t\t\t\tdataset.lineTension = dataset.tension;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t// Utility\r\n\t\t\t\t\tline._scale = scale;\r\n\t\t\t\t\tline._datasetIndex = me.index;\r\n\t\t\t\t\t// Data\r\n\t\t\t\t\tline._children = points;\r\n\t\t\t\t\t// Model\r\n\t\t\t\t\tline._model = {\r\n\t\t\t\t\t\t// Appearance\r\n\t\t\t\t\t\t// The default behavior of lines is to break at null values, according\r\n\t\t\t\t\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t\t\t\t\t// This option gives linse the ability to span gaps\r\n\t\t\t\t\t\tspanGaps: dataset.spanGaps ? dataset.spanGaps : false,\r\n\t\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.getValueOrDefault(dataset.lineTension, lineElementOptions.tension),\r\n\t\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\r\n\t\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\r\n\t\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\r\n\t\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\r\n\t\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\r\n\t\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\r\n\t\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\r\n\t\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\r\n\t\t\t\t\t\t// Scale\r\n\t\t\t\t\t\tscaleTop: scale.top,\r\n\t\t\t\t\t\tscaleBottom: scale.bottom,\r\n\t\t\t\t\t\tscaleZero: scale.getBasePixel()\r\n\t\t\t\t\t};\r\n\t\r\n\t\t\t\t\tline.pivot();\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\t// Update Points\r\n\t\t\t\tfor (i=0, ilen=points.length; i');\r\n\t\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tvar datasets = data.datasets;\r\n\t\t\t\tvar labels = data.labels;\r\n\t\r\n\t\t\t\tif (datasets.length) {\r\n\t\t\t\t\tfor (var i = 0; i < datasets[0].data.length; ++i) {\r\n\t\t\t\t\t\ttext.push('
  • ');\r\n\t\t\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\t\t\ttext.push(labels[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttext.push('
  • ');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\ttext.push('');\r\n\t\t\t\treturn text.join(\"\");\r\n\t\t\t},\r\n\t\t\tlegend: {\r\n\t\t\t\tlabels: {\r\n\t\t\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\t\t\tvar data = chart.data;\r\n\t\t\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\t\t\tvar ds = data.datasets[0];\r\n\t\t\t\t\t\t\t\tvar arc = meta.data[i];\r\n\t\t\t\t\t\t\t\tvar custom = arc.custom || {};\r\n\t\t\t\t\t\t\t\tvar getValueAtIndexOrDefault = helpers.getValueAtIndexOrDefault;\r\n\t\t\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\r\n\t\t\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : getValueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\r\n\t\t\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : getValueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\r\n\t\t\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : getValueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\r\n\t\r\n\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\t\t\tfillStyle: fill,\r\n\t\t\t\t\t\t\t\t\tstrokeStyle: stroke,\r\n\t\t\t\t\t\t\t\t\tlineWidth: bw,\r\n\t\t\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\r\n\t\r\n\t\t\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn [];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\r\n\t\t\t\tonClick: function(e, legendItem) {\r\n\t\t\t\t\tvar index = legendItem.index;\r\n\t\t\t\t\tvar chart = this.chart;\r\n\t\t\t\t\tvar i, ilen, meta;\r\n\t\r\n\t\t\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tchart.update();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\r\n\t\t\t// Need to override these to give a nice default\r\n\t\t\ttooltips: {\r\n\t\t\t\tcallbacks: {\r\n\t\t\t\t\ttitle: function() {\r\n\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\t\t\treturn data.labels[tooltipItem.index] + ': ' + tooltipItem.yLabel;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\tChart.controllers.polarArea = Chart.DatasetController.extend({\r\n\t\r\n\t\t\tdataElementType: Chart.elements.Arc,\r\n\t\r\n\t\t\tlinkScales: helpers.noop,\r\n\t\r\n\t\t\tupdate: function update(reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar chart = me.chart;\r\n\t\t\t\tvar chartArea = chart.chartArea;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar opts = chart.options;\r\n\t\t\t\tvar arcOpts = opts.elements.arc;\r\n\t\t\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\t\t\t\tchart.outerRadius = Math.max((minSize - arcOpts.borderWidth / 2) / 2, 0);\r\n\t\t\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\t\r\n\t\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\t\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t\r\n\t\t\t\tmeta.count = me.countVisibleElements();\r\n\t\r\n\t\t\t\thelpers.each(meta.data, function(arc, index) {\r\n\t\t\t\t\tme.updateElement(arc, index, reset);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\r\n\t\t\tupdateElement: function(arc, index, reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar chart = me.chart;\r\n\t\t\t\tvar chartArea = chart.chartArea;\r\n\t\t\t\tvar dataset = me.getDataset();\r\n\t\t\t\tvar opts = chart.options;\r\n\t\t\t\tvar animationOpts = opts.animation;\r\n\t\t\t\tvar arcOpts = opts.elements.arc;\r\n\t\t\t\tvar custom = arc.custom || {};\r\n\t\t\t\tvar scale = chart.scale;\r\n\t\t\t\tvar getValueAtIndexOrDefault = helpers.getValueAtIndexOrDefault;\r\n\t\t\t\tvar labels = chart.data.labels;\r\n\t\r\n\t\t\t\tvar circumference = me.calculateCircumference(dataset.data[index]);\r\n\t\t\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\t\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\r\n\t\t\t\t// If there is NaN data before us, we need to calculate the starting angle correctly.\r\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\r\n\t\t\t\tvar visibleCount = 0;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tfor (var i = 0; i < index; ++i) {\r\n\t\t\t\t\tif (!isNaN(dataset.data[i]) && !meta.data[i].hidden) {\r\n\t\t\t\t\t\t++visibleCount;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tvar negHalfPI = -0.5 * Math.PI;\r\n\t\t\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\t\t\tvar startAngle = (negHalfPI) + (circumference * visibleCount);\r\n\t\t\t\tvar endAngle = startAngle + (arc.hidden ? 0 : circumference);\r\n\t\r\n\t\t\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\r\n\t\t\t\thelpers.extend(arc, {\r\n\t\t\t\t\t// Utility\r\n\t\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t\t_index: index,\r\n\t\t\t\t\t_scale: scale,\r\n\t\r\n\t\t\t\t\t// Desired view properties\r\n\t\t\t\t\t_model: {\r\n\t\t\t\t\t\tx: centerX,\r\n\t\t\t\t\t\ty: centerY,\r\n\t\t\t\t\t\tinnerRadius: 0,\r\n\t\t\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? negHalfPI : startAngle,\r\n\t\t\t\t\t\tendAngle: reset && animationOpts.animateRotate ? negHalfPI : endAngle,\r\n\t\t\t\t\t\tlabel: getValueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\t// Apply border and fill style\r\n\t\t\t\tme.removeHoverStyle(arc);\r\n\t\r\n\t\t\t\tarc.pivot();\r\n\t\t\t},\r\n\t\r\n\t\t\tremoveHoverStyle: function(arc) {\r\n\t\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\r\n\t\t\t},\r\n\t\r\n\t\t\tcountVisibleElements: function() {\r\n\t\t\t\tvar dataset = this.getDataset();\r\n\t\t\t\tvar meta = this.getMeta();\r\n\t\t\t\tvar count = 0;\r\n\t\r\n\t\t\t\thelpers.each(meta.data, function(element, index) {\r\n\t\t\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\treturn count;\r\n\t\t\t},\r\n\t\r\n\t\t\tcalculateCircumference: function(value) {\r\n\t\t\t\tvar count = this.getMeta().count;\r\n\t\t\t\tif (count > 0 && !isNaN(value)) {\r\n\t\t\t\t\treturn (2 * Math.PI) / count;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\n\n/***/ },\n/* 122 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tvar helpers = Chart.helpers;\r\n\t\r\n\t\tChart.defaults.radar = {\r\n\t\t\tscale: {\r\n\t\t\t\ttype: \"radialLinear\"\r\n\t\t\t},\r\n\t\t\telements: {\r\n\t\t\t\tline: {\r\n\t\t\t\t\ttension: 0 // no bezier in radar\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t\tChart.controllers.radar = Chart.DatasetController.extend({\r\n\t\r\n\t\t\tdatasetElementType: Chart.elements.Line,\r\n\t\r\n\t\t\tdataElementType: Chart.elements.Point,\r\n\t\r\n\t\t\tlinkScales: helpers.noop,\r\n\t\r\n\t\t\taddElementAndReset: function(index) {\r\n\t\t\t\tChart.DatasetController.prototype.addElementAndReset.call(this, index);\r\n\t\r\n\t\t\t\t// Make sure bezier control points are updated\r\n\t\t\t\tthis.updateBezierControlPoints();\r\n\t\t\t},\r\n\t\r\n\t\t\tupdate: function update(reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar meta = me.getMeta();\r\n\t\t\t\tvar line = meta.dataset;\r\n\t\t\t\tvar points = meta.data;\r\n\t\t\t\tvar custom = line.custom || {};\r\n\t\t\t\tvar dataset = me.getDataset();\r\n\t\t\t\tvar lineElementOptions = me.chart.options.elements.line;\r\n\t\t\t\tvar scale = me.chart.scale;\r\n\t\r\n\t\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\r\n\t\t\t\t\tdataset.lineTension = dataset.tension;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\thelpers.extend(meta.dataset, {\r\n\t\t\t\t\t// Utility\r\n\t\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t\t// Data\r\n\t\t\t\t\t_children: points,\r\n\t\t\t\t\t_loop: true,\r\n\t\t\t\t\t// Model\r\n\t\t\t\t\t_model: {\r\n\t\t\t\t\t\t// Appearance\r\n\t\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.getValueOrDefault(dataset.lineTension, lineElementOptions.tension),\r\n\t\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\r\n\t\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\r\n\t\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\r\n\t\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\r\n\t\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\r\n\t\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\r\n\t\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\r\n\t\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\r\n\t\r\n\t\t\t\t\t\t// Scale\r\n\t\t\t\t\t\tscaleTop: scale.top,\r\n\t\t\t\t\t\tscaleBottom: scale.bottom,\r\n\t\t\t\t\t\tscaleZero: scale.getBasePosition()\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\tmeta.dataset.pivot();\r\n\t\r\n\t\t\t\t// Update Points\r\n\t\t\t\thelpers.each(points, function(point, index) {\r\n\t\t\t\t\tme.updateElement(point, index, reset);\r\n\t\t\t\t}, me);\r\n\t\r\n\t\r\n\t\t\t\t// Update bezier control points\r\n\t\t\t\tme.updateBezierControlPoints();\r\n\t\t\t},\r\n\t\t\tupdateElement: function(point, index, reset) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar custom = point.custom || {};\r\n\t\t\t\tvar dataset = me.getDataset();\r\n\t\t\t\tvar scale = me.chart.scale;\r\n\t\t\t\tvar pointElementOptions = me.chart.options.elements.point;\r\n\t\t\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\r\n\t\t\t\thelpers.extend(point, {\r\n\t\t\t\t\t// Utility\r\n\t\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t\t_index: index,\r\n\t\t\t\t\t_scale: scale,\r\n\t\r\n\t\t\t\t\t// Desired view properties\r\n\t\t\t\t\t_model: {\r\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\r\n\t\t\t\t\t\ty: reset ? scale.yCenter : pointPosition.y,\r\n\t\r\n\t\t\t\t\t\t// Appearance\r\n\t\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.getValueOrDefault(dataset.tension, me.chart.options.elements.line.tension),\r\n\t\t\t\t\t\tradius: custom.radius ? custom.radius : helpers.getValueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius),\r\n\t\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.getValueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor),\r\n\t\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.getValueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor),\r\n\t\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.getValueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth),\r\n\t\t\t\t\t\tpointStyle: custom.pointStyle ? custom.pointStyle : helpers.getValueAtIndexOrDefault(dataset.pointStyle, index, pointElementOptions.pointStyle),\r\n\t\r\n\t\t\t\t\t\t// Tooltip\r\n\t\t\t\t\t\thitRadius: custom.hitRadius ? custom.hitRadius : helpers.getValueAtIndexOrDefault(dataset.hitRadius, index, pointElementOptions.hitRadius)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\tpoint._model.skip = custom.skip ? custom.skip : (isNaN(point._model.x) || isNaN(point._model.y));\r\n\t\t\t},\r\n\t\t\tupdateBezierControlPoints: function() {\r\n\t\t\t\tvar chartArea = this.chart.chartArea;\r\n\t\t\t\tvar meta = this.getMeta();\r\n\t\r\n\t\t\t\thelpers.each(meta.data, function(point, index) {\r\n\t\t\t\t\tvar model = point._model;\r\n\t\t\t\t\tvar controlPoints = helpers.splineCurve(\r\n\t\t\t\t\t\thelpers.previousItem(meta.data, index, true)._model,\r\n\t\t\t\t\t\tmodel,\r\n\t\t\t\t\t\thelpers.nextItem(meta.data, index, true)._model,\r\n\t\t\t\t\t\tmodel.tension\r\n\t\t\t\t\t);\r\n\t\r\n\t\t\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\t\t\tmodel.controlPointPreviousX = Math.max(Math.min(controlPoints.previous.x, chartArea.right), chartArea.left);\r\n\t\t\t\t\tmodel.controlPointPreviousY = Math.max(Math.min(controlPoints.previous.y, chartArea.bottom), chartArea.top);\r\n\t\r\n\t\t\t\t\tmodel.controlPointNextX = Math.max(Math.min(controlPoints.next.x, chartArea.right), chartArea.left);\r\n\t\t\t\t\tmodel.controlPointNextY = Math.max(Math.min(controlPoints.next.y, chartArea.bottom), chartArea.top);\r\n\t\r\n\t\t\t\t\t// Now pivot the point for animation\r\n\t\t\t\t\tpoint.pivot();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\r\n\t\t\tdraw: function(ease) {\r\n\t\t\t\tvar meta = this.getMeta();\r\n\t\t\t\tvar easingDecimal = ease || 1;\r\n\t\r\n\t\t\t\t// Transition Point Locations\r\n\t\t\t\thelpers.each(meta.data, function(point, index) {\r\n\t\t\t\t\tpoint.transition(easingDecimal);\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\t// Transition and Draw the line\r\n\t\t\t\tmeta.dataset.transition(easingDecimal).draw();\r\n\t\r\n\t\t\t\t// Draw the points\r\n\t\t\t\thelpers.each(meta.data, function(point) {\r\n\t\t\t\t\tpoint.draw();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\r\n\t\t\tsetHoverStyle: function(point) {\r\n\t\t\t\t// Point\r\n\t\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\r\n\t\t\t\tvar custom = point.custom || {};\r\n\t\t\t\tvar index = point._index;\r\n\t\t\t\tvar model = point._model;\r\n\t\r\n\t\t\t\tmodel.radius = custom.hoverRadius ? custom.hoverRadius : helpers.getValueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\r\n\t\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.getValueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\r\n\t\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.getValueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\r\n\t\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.getValueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\r\n\t\t\t},\r\n\t\r\n\t\t\tremoveHoverStyle: function(point) {\r\n\t\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\r\n\t\t\t\tvar custom = point.custom || {};\r\n\t\t\t\tvar index = point._index;\r\n\t\t\t\tvar model = point._model;\r\n\t\t\t\tvar pointElementOptions = this.chart.options.elements.point;\r\n\t\r\n\t\t\t\tmodel.radius = custom.radius ? custom.radius : helpers.getValueAtIndexOrDefault(dataset.radius, index, pointElementOptions.radius);\r\n\t\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.getValueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor);\r\n\t\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : helpers.getValueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor);\r\n\t\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.getValueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\n\n/***/ },\n/* 123 */\n/***/ function(module, exports) {\n\n\t/*global window: false */\r\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tvar helpers = Chart.helpers;\r\n\t\r\n\t\tChart.defaults.global.animation = {\r\n\t\t\tduration: 1000,\r\n\t\t\teasing: \"easeOutQuart\",\r\n\t\t\tonProgress: helpers.noop,\r\n\t\t\tonComplete: helpers.noop\r\n\t\t};\r\n\t\r\n\t\tChart.Animation = Chart.Element.extend({\r\n\t\t\tcurrentStep: null, // the current animation step\r\n\t\t\tnumSteps: 60, // default number of steps\r\n\t\t\teasing: \"\", // the easing to use for this animation\r\n\t\t\trender: null, // render function used by the animation service\r\n\t\r\n\t\t\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\t\t\tonAnimationComplete: null // user specified callback to fire when the animation finishes\r\n\t\t});\r\n\t\r\n\t\tChart.animationService = {\r\n\t\t\tframeDuration: 17,\r\n\t\t\tanimations: [],\r\n\t\t\tdropFrames: 0,\r\n\t\t\trequest: null,\r\n\t\t\taddAnimation: function(chartInstance, animationObject, duration, lazy) {\r\n\t\t\t\tvar me = this;\r\n\t\r\n\t\t\t\tif (!lazy) {\r\n\t\t\t\t\tchartInstance.animating = true;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfor (var index = 0; index < me.animations.length; ++index) {\r\n\t\t\t\t\tif (me.animations[index].chartInstance === chartInstance) {\r\n\t\t\t\t\t\t// replacing an in progress animation\r\n\t\t\t\t\t\tme.animations[index].animationObject = animationObject;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tme.animations.push({\r\n\t\t\t\t\tchartInstance: chartInstance,\r\n\t\t\t\t\tanimationObject: animationObject\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\t\t\tif (me.animations.length === 1) {\r\n\t\t\t\t\tme.requestAnimationFrame();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t// Cancel the animation for a given chart instance\r\n\t\t\tcancelAnimation: function(chartInstance) {\r\n\t\t\t\tvar index = helpers.findIndex(this.animations, function(animationWrapper) {\r\n\t\t\t\t\treturn animationWrapper.chartInstance === chartInstance;\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\tif (index !== -1) {\r\n\t\t\t\t\tthis.animations.splice(index, 1);\r\n\t\t\t\t\tchartInstance.animating = false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\trequestAnimationFrame: function() {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tif (me.request === null) {\r\n\t\t\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\t\t\tme.request = helpers.requestAnimFrame.call(window, function() {\r\n\t\t\t\t\t\tme.request = null;\r\n\t\t\t\t\t\tme.startDigest();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tstartDigest: function() {\r\n\t\t\t\tvar me = this;\r\n\t\r\n\t\t\t\tvar startTime = Date.now();\r\n\t\t\t\tvar framesToDrop = 0;\r\n\t\r\n\t\t\t\tif (me.dropFrames > 1) {\r\n\t\t\t\t\tframesToDrop = Math.floor(me.dropFrames);\r\n\t\t\t\t\tme.dropFrames = me.dropFrames % 1;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tvar i = 0;\r\n\t\t\t\twhile (i < me.animations.length) {\r\n\t\t\t\t\tif (me.animations[i].animationObject.currentStep === null) {\r\n\t\t\t\t\t\tme.animations[i].animationObject.currentStep = 0;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tme.animations[i].animationObject.currentStep += 1 + framesToDrop;\r\n\t\r\n\t\t\t\t\tif (me.animations[i].animationObject.currentStep > me.animations[i].animationObject.numSteps) {\r\n\t\t\t\t\t\tme.animations[i].animationObject.currentStep = me.animations[i].animationObject.numSteps;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tme.animations[i].animationObject.render(me.animations[i].chartInstance, me.animations[i].animationObject);\r\n\t\t\t\t\tif (me.animations[i].animationObject.onAnimationProgress && me.animations[i].animationObject.onAnimationProgress.call) {\r\n\t\t\t\t\t\tme.animations[i].animationObject.onAnimationProgress.call(me.animations[i].chartInstance, me.animations[i]);\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tif (me.animations[i].animationObject.currentStep === me.animations[i].animationObject.numSteps) {\r\n\t\t\t\t\t\tif (me.animations[i].animationObject.onAnimationComplete && me.animations[i].animationObject.onAnimationComplete.call) {\r\n\t\t\t\t\t\t\tme.animations[i].animationObject.onAnimationComplete.call(me.animations[i].chartInstance, me.animations[i]);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t// executed the last frame. Remove the animation.\r\n\t\t\t\t\t\tme.animations[i].chartInstance.animating = false;\r\n\t\r\n\t\t\t\t\t\tme.animations.splice(i, 1);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t++i;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tvar endTime = Date.now();\r\n\t\t\t\tvar dropFrames = (endTime - startTime) / me.frameDuration;\r\n\t\r\n\t\t\t\tme.dropFrames += dropFrames;\r\n\t\r\n\t\t\t\t// Do we have more stuff to animate?\r\n\t\t\t\tif (me.animations.length > 0) {\r\n\t\t\t\t\tme.requestAnimationFrame();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t};\n\n/***/ },\n/* 124 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t\r\n\tmodule.exports = function(Chart) {\r\n\t\r\n\t\tvar helpers = Chart.helpers;\r\n\t\t//Create a dictionary of chart types, to allow for extension of existing types\r\n\t\tChart.types = {};\r\n\t\r\n\t\t//Store a reference to each instance - allowing us to globally resize chart instances on window resize.\r\n\t\t//Destroy method on the chart will remove the instance of the chart from this reference.\r\n\t\tChart.instances = {};\r\n\t\r\n\t\t// Controllers available for dataset visualization eg. bar, line, slice, etc.\r\n\t\tChart.controllers = {};\r\n\t\r\n\t\t/**\r\n\t\t * @class Chart.Controller\r\n\t\t * The main controller of a chart.\r\n\t\t */\r\n\t\tChart.Controller = function(instance) {\r\n\t\r\n\t\t\tthis.chart = instance;\r\n\t\t\tthis.config = instance.config;\r\n\t\t\tthis.options = this.config.options = helpers.configMerge(Chart.defaults.global, Chart.defaults[this.config.type], this.config.options || {});\r\n\t\t\tthis.id = helpers.uid();\r\n\t\r\n\t\t\tObject.defineProperty(this, 'data', {\r\n\t\t\t\tget: function() {\r\n\t\t\t\t\treturn this.config.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\r\n\t\t\t//Add the chart instance to the global namespace\r\n\t\t\tChart.instances[this.id] = this;\r\n\t\r\n\t\t\tif (this.options.responsive) {\r\n\t\t\t\t// Silent resize before chart draws\r\n\t\t\t\tthis.resize(true);\r\n\t\t\t}\r\n\t\r\n\t\t\tthis.initialize();\r\n\t\r\n\t\t\treturn this;\r\n\t\t};\r\n\t\r\n\t\thelpers.extend(Chart.Controller.prototype, /** @lends Chart.Controller */ {\r\n\t\r\n\t\t\tinitialize: function initialize() {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\t// Before init plugin notification\r\n\t\t\t\tChart.plugins.notify('beforeInit', [me]);\r\n\t\r\n\t\t\t\tme.bindEvents();\r\n\t\r\n\t\t\t\t// Make sure controllers are built first so that each dataset is bound to an axis before the scales\r\n\t\t\t\t// are built\r\n\t\t\t\tme.ensureScalesHaveIDs();\r\n\t\t\t\tme.buildOrUpdateControllers();\r\n\t\t\t\tme.buildScales();\r\n\t\t\t\tme.updateLayout();\r\n\t\t\t\tme.resetElements();\r\n\t\t\t\tme.initToolTip();\r\n\t\t\t\tme.update();\r\n\t\r\n\t\t\t\t// After init plugin notification\r\n\t\t\t\tChart.plugins.notify('afterInit', [me]);\r\n\t\r\n\t\t\t\treturn me;\r\n\t\t\t},\r\n\t\r\n\t\t\tclear: function clear() {\r\n\t\t\t\thelpers.clear(this.chart);\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\r\n\t\t\tstop: function stop() {\r\n\t\t\t\t// Stops any current animation loop occuring\r\n\t\t\t\tChart.animationService.cancelAnimation(this);\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\r\n\t\t\tresize: function resize(silent) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar chart = me.chart;\r\n\t\t\t\tvar canvas = chart.canvas;\r\n\t\t\t\tvar newWidth = helpers.getMaximumWidth(canvas);\r\n\t\t\t\tvar aspectRatio = chart.aspectRatio;\r\n\t\t\t\tvar newHeight = (me.options.maintainAspectRatio && isNaN(aspectRatio) === false && isFinite(aspectRatio) && aspectRatio !== 0) ? newWidth / aspectRatio : helpers.getMaximumHeight(canvas);\r\n\t\r\n\t\t\t\tvar sizeChanged = chart.width !== newWidth || chart.height !== newHeight;\r\n\t\r\n\t\t\t\tif (!sizeChanged) {\r\n\t\t\t\t\treturn me;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tcanvas.width = chart.width = newWidth;\r\n\t\t\t\tcanvas.height = chart.height = newHeight;\r\n\t\r\n\t\t\t\thelpers.retinaScale(chart);\r\n\t\r\n\t\t\t\t// Notify any plugins about the resize\r\n\t\t\t\tvar newSize = { width: newWidth, height: newHeight };\r\n\t\t\t\tChart.plugins.notify('resize', [me, newSize]);\r\n\t\r\n\t\t\t\t// Notify of resize\r\n\t\t\t\tif (me.options.onResize) {\r\n\t\t\t\t\tme.options.onResize(me, newSize);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tif (!silent) {\r\n\t\t\t\t\tme.stop();\r\n\t\t\t\t\tme.update(me.options.responsiveAnimationDuration);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn me;\r\n\t\t\t},\r\n\t\r\n\t\t\tensureScalesHaveIDs: function ensureScalesHaveIDs() {\r\n\t\t\t\tvar options = this.options;\r\n\t\t\t\tvar scalesOptions = options.scales || {};\r\n\t\t\t\tvar scaleOptions = options.scale;\r\n\t\r\n\t\t\t\thelpers.each(scalesOptions.xAxes, function(xAxisOptions, index) {\r\n\t\t\t\t\txAxisOptions.id = xAxisOptions.id || ('x-axis-' + index);\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\thelpers.each(scalesOptions.yAxes, function(yAxisOptions, index) {\r\n\t\t\t\t\tyAxisOptions.id = yAxisOptions.id || ('y-axis-' + index);\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\tif (scaleOptions) {\r\n\t\t\t\t\tscaleOptions.id = scaleOptions.id || 'scale';\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\r\n\t\t\t/**\r\n\t\t\t * Builds a map of scale ID to scale object for future lookup.\r\n\t\t\t */\r\n\t\t\tbuildScales: function buildScales() {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar options = me.options;\r\n\t\t\t\tvar scales = me.scales = {};\r\n\t\t\t\tvar items = [];\r\n\t\r\n\t\t\t\tif (options.scales) {\r\n\t\t\t\t\titems = items.concat(\r\n\t\t\t\t\t\t(options.scales.xAxes || []).map(function(xAxisOptions) {\r\n\t\t\t\t\t\t\treturn { options: xAxisOptions, dtype: 'category' }; }),\r\n\t\t\t\t\t\t(options.scales.yAxes || []).map(function(yAxisOptions) {\r\n\t\t\t\t\t\t\treturn { options: yAxisOptions, dtype: 'linear' }; }));\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tif (options.scale) {\r\n\t\t\t\t\titems.push({ options: options.scale, dtype: 'radialLinear', isDefault: true });\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\thelpers.each(items, function(item, index) {\r\n\t\t\t\t\tvar scaleOptions = item.options;\r\n\t\t\t\t\tvar scaleType = helpers.getValueOrDefault(scaleOptions.type, item.dtype);\r\n\t\t\t\t\tvar scaleClass = Chart.scaleService.getScaleConstructor(scaleType);\r\n\t\t\t\t\tif (!scaleClass) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tvar scale = new scaleClass({\r\n\t\t\t\t\t\tid: scaleOptions.id,\r\n\t\t\t\t\t\toptions: scaleOptions,\r\n\t\t\t\t\t\tctx: me.chart.ctx,\r\n\t\t\t\t\t\tchart: me\r\n\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\tscales[scale.id] = scale;\r\n\t\r\n\t\t\t\t\t// TODO(SB): I think we should be able to remove this custom case (options.scale)\r\n\t\t\t\t\t// and consider it as a regular scale part of the \"scales\"\" map only! This would\r\n\t\t\t\t\t// make the logic easier and remove some useless? custom code.\r\n\t\t\t\t\tif (item.isDefault) {\r\n\t\t\t\t\t\tme.scale = scale;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\tChart.scaleService.addScalesToLayout(this);\r\n\t\t\t},\r\n\t\r\n\t\t\tupdateLayout: function() {\r\n\t\t\t\tChart.layoutService.update(this, this.chart.width, this.chart.height);\r\n\t\t\t},\r\n\t\r\n\t\t\tbuildOrUpdateControllers: function buildOrUpdateControllers() {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar types = [];\r\n\t\t\t\tvar newControllers = [];\r\n\t\r\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tif (!meta.type) {\r\n\t\t\t\t\t\tmeta.type = dataset.type || me.config.type;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\ttypes.push(meta.type);\r\n\t\r\n\t\t\t\t\tif (meta.controller) {\r\n\t\t\t\t\t\tmeta.controller.updateIndex(datasetIndex);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tmeta.controller = new Chart.controllers[meta.type](me, datasetIndex);\r\n\t\t\t\t\t\tnewControllers.push(meta.controller);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, me);\r\n\t\r\n\t\t\t\tif (types.length > 1) {\r\n\t\t\t\t\tfor (var i = 1; i < types.length; i++) {\r\n\t\t\t\t\t\tif (types[i] !== types[i - 1]) {\r\n\t\t\t\t\t\t\tme.isCombo = true;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn newControllers;\r\n\t\t\t},\r\n\t\r\n\t\t\tresetElements: function resetElements() {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tme.getDatasetMeta(datasetIndex).controller.reset();\r\n\t\t\t\t}, me);\r\n\t\t\t},\r\n\t\r\n\t\t\tupdate: function update(animationDuration, lazy) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tChart.plugins.notify('beforeUpdate', [me]);\r\n\t\r\n\t\t\t\t// In case the entire data object changed\r\n\t\t\t\tme.tooltip._data = me.data;\r\n\t\r\n\t\t\t\t// Make sure dataset controllers are updated and new controllers are reset\r\n\t\t\t\tvar newControllers = me.buildOrUpdateControllers();\r\n\t\r\n\t\t\t\t// Make sure all dataset controllers have correct meta data counts\r\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tme.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements();\r\n\t\t\t\t}, me);\r\n\t\r\n\t\t\t\tChart.layoutService.update(me, me.chart.width, me.chart.height);\r\n\t\r\n\t\t\t\t// Apply changes to the dataets that require the scales to have been calculated i.e BorderColor chages\r\n\t\t\t\tChart.plugins.notify('afterScaleUpdate', [me]);\r\n\t\r\n\t\t\t\t// Can only reset the new controllers after the scales have been updated\r\n\t\t\t\thelpers.each(newControllers, function(controller) {\r\n\t\t\t\t\tcontroller.reset();\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\tme.updateDatasets();\r\n\t\r\n\t\t\t\t// Do this before render so that any plugins that need final scale updates can use it\r\n\t\t\t\tChart.plugins.notify('afterUpdate', [me]);\r\n\t\r\n\t\t\t\tme.render(animationDuration, lazy);\r\n\t\t\t},\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @method beforeDatasetsUpdate\r\n\t\t\t * @description Called before all datasets are updated. If a plugin returns false,\r\n\t\t\t * the datasets update will be cancelled until another chart update is triggered.\r\n\t\t\t * @param {Object} instance the chart instance being updated.\r\n\t\t\t * @returns {Boolean} false to cancel the datasets update.\r\n\t\t\t * @memberof Chart.PluginBase\r\n\t\t\t * @since version 2.1.5\r\n\t\t\t * @instance\r\n\t\t\t */\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @method afterDatasetsUpdate\r\n\t\t\t * @description Called after all datasets have been updated. Note that this\r\n\t\t\t * extension will not be called if the datasets update has been cancelled.\r\n\t\t\t * @param {Object} instance the chart instance being updated.\r\n\t\t\t * @memberof Chart.PluginBase\r\n\t\t\t * @since version 2.1.5\r\n\t\t\t * @instance\r\n\t\t\t */\r\n\t\r\n\t\t\t/**\r\n\t\t\t * Updates all datasets unless a plugin returns false to the beforeDatasetsUpdate\r\n\t\t\t * extension, in which case no datasets will be updated and the afterDatasetsUpdate\r\n\t\t\t * notification will be skipped.\r\n\t\t\t * @protected\r\n\t\t\t * @instance\r\n\t\t\t */\r\n\t\t\tupdateDatasets: function() {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar i, ilen;\r\n\t\r\n\t\t\t\tif (Chart.plugins.notify('beforeDatasetsUpdate', [ me ])) {\r\n\t\t\t\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\t\t\tme.getDatasetMeta(i).controller.update();\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tChart.plugins.notify('afterDatasetsUpdate', [ me ]);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\r\n\t\t\trender: function render(duration, lazy) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tChart.plugins.notify('beforeRender', [me]);\r\n\t\r\n\t\t\t\tvar animationOptions = me.options.animation;\r\n\t\t\t\tif (animationOptions && ((typeof duration !== 'undefined' && duration !== 0) || (typeof duration === 'undefined' && animationOptions.duration !== 0))) {\r\n\t\t\t\t\tvar animation = new Chart.Animation();\r\n\t\t\t\t\tanimation.numSteps = (duration || animationOptions.duration) / 16.66; //60 fps\r\n\t\t\t\t\tanimation.easing = animationOptions.easing;\r\n\t\r\n\t\t\t\t\t// render function\r\n\t\t\t\t\tanimation.render = function(chartInstance, animationObject) {\r\n\t\t\t\t\t\tvar easingFunction = helpers.easingEffects[animationObject.easing];\r\n\t\t\t\t\t\tvar stepDecimal = animationObject.currentStep / animationObject.numSteps;\r\n\t\t\t\t\t\tvar easeDecimal = easingFunction(stepDecimal);\r\n\t\r\n\t\t\t\t\t\tchartInstance.draw(easeDecimal, stepDecimal, animationObject.currentStep);\r\n\t\t\t\t\t};\r\n\t\r\n\t\t\t\t\t// user events\r\n\t\t\t\t\tanimation.onAnimationProgress = animationOptions.onProgress;\r\n\t\t\t\t\tanimation.onAnimationComplete = animationOptions.onComplete;\r\n\t\r\n\t\t\t\t\tChart.animationService.addAnimation(me, animation, duration, lazy);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tme.draw();\r\n\t\t\t\t\tif (animationOptions && animationOptions.onComplete && animationOptions.onComplete.call) {\r\n\t\t\t\t\t\tanimationOptions.onComplete.call(me);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn me;\r\n\t\t\t},\r\n\t\r\n\t\t\tdraw: function(ease) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar easingDecimal = ease || 1;\r\n\t\t\t\tme.clear();\r\n\t\r\n\t\t\t\tChart.plugins.notify('beforeDraw', [me, easingDecimal]);\r\n\t\r\n\t\t\t\t// Draw all the scales\r\n\t\t\t\thelpers.each(me.boxes, function(box) {\r\n\t\t\t\t\tbox.draw(me.chartArea);\r\n\t\t\t\t}, me);\r\n\t\t\t\tif (me.scale) {\r\n\t\t\t\t\tme.scale.draw();\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tChart.plugins.notify('beforeDatasetsDraw', [me, easingDecimal]);\r\n\t\r\n\t\t\t\t// Draw each dataset via its respective controller (reversed to support proper line stacking)\r\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tif (me.isDatasetVisible(datasetIndex)) {\r\n\t\t\t\t\t\tme.getDatasetMeta(datasetIndex).controller.draw(ease);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, me, true);\r\n\t\r\n\t\t\t\tChart.plugins.notify('afterDatasetsDraw', [me, easingDecimal]);\r\n\t\r\n\t\t\t\t// Finally draw the tooltip\r\n\t\t\t\tme.tooltip.transition(easingDecimal).draw();\r\n\t\r\n\t\t\t\tChart.plugins.notify('afterDraw', [me, easingDecimal]);\r\n\t\t\t},\r\n\t\r\n\t\t\t// Get the single element that was clicked on\r\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\r\n\t\t\tgetElementAtEvent: function(e) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar eventPosition = helpers.getRelativePosition(e, me.chart);\r\n\t\t\t\tvar elementsArray = [];\r\n\t\r\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tif (me.isDatasetVisible(datasetIndex)) {\r\n\t\t\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\t\thelpers.each(meta.data, function(element, index) {\r\n\t\t\t\t\t\t\tif (element.inRange(eventPosition.x, eventPosition.y)) {\r\n\t\t\t\t\t\t\t\telementsArray.push(element);\r\n\t\t\t\t\t\t\t\treturn elementsArray;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\treturn elementsArray;\r\n\t\t\t},\r\n\t\r\n\t\t\tgetElementsAtEvent: function(e) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar eventPosition = helpers.getRelativePosition(e, me.chart);\r\n\t\t\t\tvar elementsArray = [];\r\n\t\r\n\t\t\t\tvar found = (function() {\r\n\t\t\t\t\tif (me.data.datasets) {\r\n\t\t\t\t\t\tfor (var i = 0; i < me.data.datasets.length; i++) {\r\n\t\t\t\t\t\t\tvar meta = me.getDatasetMeta(i);\r\n\t\t\t\t\t\t\tif (me.isDatasetVisible(i)) {\r\n\t\t\t\t\t\t\t\tfor (var j = 0; j < meta.data.length; j++) {\r\n\t\t\t\t\t\t\t\t\tif (meta.data[j].inRange(eventPosition.x, eventPosition.y)) {\r\n\t\t\t\t\t\t\t\t\t\treturn meta.data[j];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}).call(me);\r\n\t\r\n\t\t\t\tif (!found) {\r\n\t\t\t\t\treturn elementsArray;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tif (me.isDatasetVisible(datasetIndex)) {\r\n\t\t\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\t\telementsArray.push(meta.data[found._index]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, me);\r\n\t\r\n\t\t\t\treturn elementsArray;\r\n\t\t\t},\r\n\t\r\n\t\t\tgetElementsAtEventForMode: function(e, mode) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tswitch (mode) {\r\n\t\t\t\tcase 'single':\r\n\t\t\t\t\treturn me.getElementAtEvent(e);\r\n\t\t\t\tcase 'label':\r\n\t\t\t\t\treturn me.getElementsAtEvent(e);\r\n\t\t\t\tcase 'dataset':\r\n\t\t\t\t\treturn me.getDatasetAtEvent(e);\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn e;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\r\n\t\t\tgetDatasetAtEvent: function(e) {\r\n\t\t\t\tvar elementsArray = this.getElementAtEvent(e);\r\n\t\r\n\t\t\t\tif (elementsArray.length > 0) {\r\n\t\t\t\t\telementsArray = this.getDatasetMeta(elementsArray[0]._datasetIndex).data;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn elementsArray;\r\n\t\t\t},\r\n\t\r\n\t\t\tgetDatasetMeta: function(datasetIndex) {\r\n\t\t\t\tvar me = this;\r\n\t\t\t\tvar dataset = me.data.datasets[datasetIndex];\r\n\t\t\t\tif (!dataset._meta) {\r\n\t\t\t\t\tdataset._meta = {};\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tvar meta = dataset._meta[me.id];\r\n\t\t\t\tif (!meta) {\r\n\t\t\t\t\tmeta = dataset._meta[me.id] = {\r\n\t\t\t\t\ttype: null,\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tdataset: null,\r\n\t\t\t\t\tcontroller: null,\r\n\t\t\t\t\thidden: null,\t\t\t// See isDatasetVisible() comment\r\n\t\t\t\t\txAxisID: null,\r\n\t\t\t\t\tyAxisID: null\r\n\t\t\t\t};\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn meta;\r\n\t\t\t},\r\n\t\r\n\t\t\tgetVisibleDatasetCount: function() {\r\n\t\t\t\tvar count = 0;\r\n\t\t\t\tfor (var i = 0, ilen = this.data.datasets.length; i