/* * Sugar Library v1.0 * * Freely distributable and licensed under the MIT-style license. * Copyright (c) 2011 Andrew Plummer * http://sugarjs.com/ * * ---------------------------- */ (function(){function m(a,b,c,d){var e=b?a.prototype:a;ma(a,b,d);t(d,function(g,h){if(typeof c==="function")l(e,g,na(e[g],h,c));else if(c===true||!e[g])l(e,g,h);a.SugarMethods[g]={instance:b,method:h}})}function ma(a){if(!a.SugarMethods){a.SugarMethods={};l(a,"sugar",function(){var b=arguments,c=b.length===0,d=false;a===Object&&c&&oa();t(a.SugarMethods,function(e,g){if(c||v(b,e)){l(g.instance?a.prototype:a,e,g.method);d=true}});return d})}}function na(a,b,c){return function(){return a&&(c===true|| c.apply(this,arguments))?a.apply(this,arguments):b.apply(this,arguments)}}function l(a,b,c){if(V)Object.defineProperty(a,b,{value:c,configurable:true,enumerable:false,writable:true});else a[b]=c}function t(a,b){var c=0,d;for(d in a)if(a.hasOwnProperty(d)){b.call(a,d,a[d],c);c++}}function G(a,b){if(typeof a=="object"&&typeof b=="object"&&a!==null&&b!==null){for(var c in a)if(a.hasOwnProperty(c))if(!b.hasOwnProperty(c)||!G(a[c],b[c]))return false;return Object.keys(a).length===Object.keys(b).length}else return a=== b}function x(a,b,c,d){return a===b?true:Object.isRegExp(b)?b.test(a):Object.isFunction(b)?b.apply(c,[a].concat(d)):typeof b==="object"?G(b,a):false}function z(a,b,c,d){var e=a[0];if(a.length===0)return b;else if(!Object.isFunction(e)&&!Object.isString(e))throw new TypeError("First argument must be a function or a string");return Object.isFunction(e)?e.apply(c,[b].concat(d)):typeof b[e]=="function"?b[e].call(b):b[e]}function s(a,b){k(A(Array.prototype.slice.call(a)),b)}function W(a,b,c){var d=[],e= a.length,g=b[b.length-1]!==false,h;s(b,function(f){if(typeof f==="boolean")return false;if(g){f%=e;if(f<0)f=e+f}h=c?a.charAt(f)||"":a[f];d.push(h)});return d.length<2?d[0]:d}function P(a,b){return Object.prototype.toString.call(a)==="[object "+b+"]"}function H(a,b,c){var d;d=Array.isArray(a)?[]:c?Object.extended():{};t(a,function(e,g){d[e]=b&&(Object.isObject(g)||Array.isArray(g))?H(g,b,c):g});return d}function X(a,b,c,d){var e=/^(.+?)(\[.*\])$/,g,h,f;if(d!==false&&(h=b.match(e))){f=h[1];b=h[2].replace(/^\[|\]$/g, "").split("][");k(b,function(i){g=!i||i.match(/^\d+$/);if(!f&&Object.isArray(a))f=a.length;a[f]||(a[f]=g?[]:{});a=a[f];f=i});if(!f&&g)f=a.length.toString();X(a,f,c)}else a[b]=c.match(/^\d+$/)?parseInt(c):c==="true"?true:c==="false"?false:c}function B(a){var b=this;t(a,function(c,d){b[c]=d})}function oa(){Y.each(function(a){l(Object.prototype,"is"+a,function(){return Object["is"+a](this)})});Z.each(function(a){l(Object.prototype,a,B.prototype[a])});l(Object.prototype,"clone",function(a){return H(this, a,true)})}function k(a,b,c,d,e){var g,h;I(b);h=isNaN(c)?0:parseInt(c>>0);for(g=d===true?a.length+h:a.length;h>>0==e&&e!=4294967295&&e>=c&&d.push(e.toNumber());d.sort().each(function(g){return b.call(a,a[g],g,a)});return a}function K(a,b,c,d){var e=c==="max",g=c==="min",h=e?-Infinity:Infinity,f=[];t(a,function(i){i=a[i];var j=z(b,i,d);if(!(j===undefined||j===null))if(j===h)f.push(i);else if(e&& j>h||g&&j0;g&&a<=b||!g&&a>=b;){e.push(a);c&&c.call(this,a);a+=d}return e}function qa(a,b){function c(){return L(arguments)[d](-this)}var d="add"+a.capitalize()+"s",e=function(){return r(this*b)},g=function(){return L(arguments)[d](this)};l(Number.prototype,a,e);l(Number.prototype,a+"s",e);l(Number.prototype,a+"Before",c); l(Number.prototype,a+"sBefore",c);l(Number.prototype,a+"Ago",c);l(Number.prototype,a+"sAgo",c);l(Number.prototype,a+"After",g);l(Number.prototype,a+"sAfter",g);l(Number.prototype,a+"FromNow",g);l(Number.prototype,a+"sFromNow",g)}function aa(a,b,c,d){var e=Array.prototype.slice.call(b).join("");e=e.replace(/all/,"").replace(/(\w)lphabet|umbers?|atakana|paces?|unctuation/g,"$1");return a.replace(c,function(g){return d[g]&&(!e||e.has(d[g].type))?d[g].to:g})}function w(a,b,c){ba[b]={type:a,to:c};ca[c]= {type:a,to:b}}function M(a,b,c,d){var e=String(b);if(e!=b)e="";Object.isNumber(c)||(c=1);Object.isNumber(d)||(d=1);return e.repeat(c)+a+e.repeat(d)}function da(a){var b=Date.addFormat,c=a.code;if(!a.formatsAdded){b("("+a.months.join("|")+")",["month"],c);b("("+a.weekdays.join("|")+")",["weekday"],c);b("("+a.modifiers.filter(function(d){return d.name==="day"}).map("text").join("|")+")",["day"],c);k(a.formats,function(d){var e=[];d=d.replace(/\s+/g,"[-,. ]*");d=d.replace(/\{(.+?)\}/g,function(g,h){var f= h.match(/\?$/),i=h.match(/(\d)(?:-(\d))?/),j=h.match(/^\d+$/),o=h.replace(/[^a-z]+$/,""),n,p;if(o==="time"){e=e.concat(Q);return f?ea:R}if(j)n=a.optionals[j[0]-1];else if(a[o])n=a[o];else if(a[o+"s"]){n=a[o+"s"];if(i){p=[];k(n,function(u,ra){var fa=ra%(a.units?8:n.length);if(fa>=i[1]&&fa<=(i[2]||i[1]))p.push(u)});n=p}n=n.compact().join("|")}if(j)return"(?:"+n+")?";else{e.push(o);return"("+n+")"+(f?"?":"")}});b(d,e,c)});a.formatsAdded=true}}function C(a,b,c){if(b&&(!Object.isString(a)||!a))a=Date.currentLocale; a&&!S[a]&&sa(a,c);return S[a]}function sa(a,b){function c(g,h){g=g.split("+").map(function(f){return f.replace(/(.+):(.+)$/,function(i,j,o){return o.split("|").map(function(n){return j+n}).join("|")})}).join("|");return k(g.split("|"),h)}function d(g,h,f){var i=[];if(b[g]){k(b[g],function(j,o){c(j,function(n,p){i[p*f+o]=n.toLowerCase()})});if(h)i=i.concat(b[g].map(function(j){return j.slice(0,3).toLowerCase()}));return b[g]=i}}function e(g,h){var f="[0-9\uff10-\uff19]"+(g?"{"+g+","+h+"}":"+");if(b.digits)f+= "|["+b.digits+"]+";return f}b=b||ta(a);if(!b)throw Error("Invalid locale.");if(b.numbersAreDigits)b.digits=b.numbers.join("");d("months",true,12);d("weekdays",true,7);d("units",false,8);d("numbers",false,10);b.code=a;b.date=e(1,2);b.year=e(4,4);b.num=function(){var g=[e()].concat(b.articles);b.digits||(g=g.concat(b.numbers));return g.compact().join("|")}();(function(){var g=[];b.modifiersByName={};k(b.modifiers,function(h){c(h.text,function(f){b.modifiersByName[f]=h;g.push({name:h.name,text:f,value:h.value})})}); g.groupBy("name",function(h,f){f=f.map("text");if(h==="day")f=f.concat(b.weekdays);b[h]=f.join("|")});b.modifiers=g})();if(b.monthSuffix){b.month=e(1,2);b.months=(1).upto(12).map(function(g){return g+b.monthSuffix})}S[a]=new ga(b)}function ta(a){function b(e){return!!(d[0]&Math.pow(2,e-1))}if(a.slice(0,3)=="en-")a="en";if(!ha[a])return null;var c={modifiers:[]},d=ha[a].split(";");k(["months","weekdays","units","numbers","articles","optionals","formats"],function(e,g){c[e]=d[g+2]?d[g+2].split(","): []});c.outputFormat=d[9];k(["day","sign","shift","edge"],function(e,g){d[g+10]&&k(d[g+10].split(","),function(h,f){h&&c.modifiers.push({name:e,text:h,value:f-2})})});if(b(1)){c.numbersAreDigits=true;c.monthSuffix=d[1]}c.capitalizeUnit=a=="de";c.hasPlural=b(2);c.pastFormat=c.formats[0];c.futureFormat=c.formats[b(3)?1:0];return c}function ua(a){if(!a)a=Date.currentLocale;return a!="en"&&a!="en-US"}function ga(a){Object.merge(this,a)}function D(a){var b;if(typeof a[0]==="object")return a;else if(a.length== 1&&Object.isNumber(a[0]))return[a[0]];b={};k(ia,function(c,d){b[c.unit]=a[d]});return[b]}function va(a,b){var c={},d,e;k(b,function(g,h){d=a[h+1];if(d!==undefined){d=d.hankaku("n");if(g==="year")c.yearAsString=d;if(g==="millisecond")d*=Math.pow(10,3-d.length);e=parseFloat(d);c[g]=!isNaN(e)?e:d.toLowerCase()}});return c}function ja(a,b){var c=new Date,d=false,e,g,h,f,i,j,o;if(Object.isDate(a))c=a;else if(Object.isNumber(a))c=new Date(a);else if(Object.isObject(a)){c=(new Date).set(a,true);f=a}else if(Object.isString(a)){da(C(b, true));g=ua(b);a=a.trim().replace(/\.+$/,"").replace(/^now$/,"");k(ka,function(n){var p;var u=n.reg;if(!a||!a.match)p=null;else{if((p=a.match(u))&&!RegExp.NPCGSupport&&!u.global)for(u=1;u-1){delete f.day;f.weekday=o}if(f.date&&!Object.isNumber(f.date))f.date=e.getNumericDate(f.date);if(f.meridian)if(f.meridian==="pm"&&f.hour<12)f.hour+=12;if(f.offset_hours||f.offset_minutes){f.utc=true;f.offset_minutes= f.offset_minutes||0;f.offset_minutes+=f.offset_hours*60;if(f.offset_sign==="-")f.offset_minutes*=-1;f.minute-=f.offset_minutes}if(f.unit){d=true;j=e.getNumber(f.num);i=e.getEnglishUnit(f.unit);if(f.shift||f.edge){j*=(o=e.modifiersByName[f.shift])?o.value:0;if(i==="month"&&f.date!==undefined){c.set({day:f.date},true);delete f.date}if(i==="year"&&f.month!==undefined){c.set({month:f.month,day:f.date},true);delete f.month;delete f.date}}if(f.sign&&(o=e.modifiersByName[f.sign]))j*=o.value;if(f.weekday!== undefined){c.set({weekday:f.weekday},true);delete f.weekday}f[i]=(f[i]||0)+j}if(f.year_sign==="-")f.year*=-1;return false}});if(h)if(d)c.advance(f);else f.utc?c.setUTC(f,true):c.set(f,true);else c=a?new Date(a):new Date;if(f&&f.edge){o=e.modifiersByName[f.edge];k(N.slice(4),function(n){if(f[n.unit]!==undefined){i=n.unit;return false}});if(i==="year")f.specificity="month";else if(i==="month"||i==="week")f.specificity="day";c[(o.value<0?"endOf":"beginningOf")+i.capitalize()]();o.value===-2&&c.resetTime()}}return{date:c, set:f}}function T(a,b,c,d){var e,g=C(d,true),h=/^[A-Z]/,f,i;if(a.isValid())if(Date[b])b=Date[b];else{if(typeof b=="function"){e=la(a);b=b.apply(a,e.concat(g))}}else return"Invalid Date";if(!b&&!c)b=g.outputFormat;else if(!b&&c){e=e||la(a);if(e[1]===0){e[1]=1;e[0]=1}return g.relative(e[0],e[1],e[2])}k(wa,function(j){b=b.replace(RegExp("\\{("+j.token+")(\\d)?\\}",j.caps?"":"i"),function(o,n,p){p=p||1;i=n.length;f=j.format.call(null,a,"");if(j.pad&&n.length===2)f=f.pad(j.pad);if(j.weekdays){f=g.weekdays[f+ (p-1)*7];if(i===3)f=f.slice(0,3);if(h.test(n))f=f.capitalize()}if(j.months){f=g.months[f+(p-1)*12];if(i===3)f=f.slice(0,3);if(h.test(n))f=f.capitalize()}if(j.meridian){if(i===1)f=f.to(1);if(h.test(n))f=f.toUpperCase()}return f})});return b}function xa(a,b,c){var d=ja(b),e=0,g=b=0,h;if(c>0){b=g=c;h=true}if(!d.date.isValid())return false;if(d.set&&d.set.specificity){k(E,function(i){if(i.unit===d.set.specificity)e=i.multiplier(d.date,a-d.date)-1});if(d.set.edge||d.set.shift)d.date["beginningOf"+d.set.specificity.capitalize()](); if(!h&&d.set.sign&&d.set.specificity!="millisecond"){b=50;g=-50}}c=a.getTime();h=d.date.getTime();var f=h+e;return c>=h-b&&c<=f+g}function O(a,b,c,d,e){if(Object.isNumber(b)&&e)b={milliseconds:b};else if(Object.isNumber(b)){a.setTime(b);return a}if(b.date)b.day=b.date;if(!e&&b.day===undefined&&b.weekday!==undefined){q(a,"set",d,"Weekday",b.weekday);b.day=q(a,"get",d,"Date");delete b.weekday}k(N,function(g){if(b[g.unit]!==undefined||b[g.unit+"s"]!==undefined){b.specificity=g.unit;return false}else if(c&& g.unit!=="week"&&g.unit!=="year")q(a,"set",d,g.method,g.unit==="day"?1:0)});e&&b.month!==undefined&&ya(a,b,e);k(E,function(g){var h=g.unit;g=g.method;var f=b[h]!==undefined?b[h]:b[h+"s"];if(f!==undefined){if(e){if(h==="week"){f=(b.day||0)+f*7;g="Date"}f=f*e+q(a,"get","",g)}q(a,"set",d,g,f)}});return a}function q(a,b,c,d,e){return a[b+(c?"UTC":"")+d](e)}function la(a){var b;a=a.millisecondsFromNow();var c=a.abs(),d=c,e=0;k(N.from(1),function(g,h){b=r(c/g.multiplier(),1).floor();if(b>=1){d=b;e=h+1}}); return[d,e,a]}function ya(a,b,c){var d=a.getDate();if(!(d<29||b.specificity!="month"&&b.specificity!="year")){b=(new Date(a.getFullYear()+(b.year*c||0),a.getMonth()+b.month*c)).daysInMonth();b> 0);if(Object.isString(this))return this.indexOf(a,b);if(d<0)d=Math.max(c+d,0);if(c==0||d>c)return-1;for(;d>0);if(Object.isString(this))return this.lastIndexOf(a,b);if(d<0)d=c+d;if(c==0||d<0)return-1;for(;d>=0;){if(d in this&&this[d]===a)return d;d--}return-1},forEach:function(a,b){var c=this.length,d=0;for(I(a);d1&&b;I(a);if(c==0&&!e)throw new TypeError("Reduce called on empty array with no initial value");else if(e)e=e;else{e=this[d];d++}for(;d1&&b;I(a);if(c==0&&!e)throw new TypeError("Reduce called on empty array with no initial value");else if(e)c=e;else{c=this[d];d--}for(;d>=0;){if(d in this)c=a.call(undefined,c,this[d],d, this);d--}return c},each:function(a,b,c){k(this,a,b,c,true);return this},find:function(a,b,c){return v(this,a,b,c)},findAll:function(a,b,c){var d=[];k(this,function(e,g,h){x(e,a,h,[g,h])&&d.push(e)},b,c);return d},count:function(a){if(a===undefined)return this.length;return this.findAll(a).length},none:function(){return!this.any.apply(this,arguments)},remove:function(){var a,b=this;s(arguments,function(c){for(a=0;a0?a.reduce(function(b,c){return b+c}):0},average:function(a){a=a?this.map(a):this;return a.length>0?a.sum()/a.length:0},groupBy:function(a,b){var c=Object.extended(),d=arguments,e;k(this,function(g){e=z(d,g);c[e]||(c[e]=[]);c[e].push(g)});return c.each(b)},inGroups:function(a,b){var c=arguments.length>1,d=this,e=[],g=(this.length/a).ceil();(0).upto(a-1,function(h){h=h*g;var f=d.slice(h,h+g);c&&f.length0&&c.push(d);return c},compact:function(a){var b=[];k(this,function(c){if(Array.isArray(c))b.push(c.compact());else if(a&&c)b.push(c);else if(!a&&c!==undefined&&c!==null&&(typeof c!= "number"||!isNaN(c)))b.push(c)});return b},isEmpty:function(){return this.compact().length==0},flatten:function(){return A(this)},sortBy:function(a,b){var c=arguments;this.sort(function(d,e){var g=z(c,d),h=z(c,e),f=typeof g=="number";return f&&b?h-g:f&&!b?g-h:g===h?0:b?g=11&&this<=13)a="th";else switch(this%10){case 1:a="st";break;case 2:a="nd";break;case 3:a= "rd";break;default:a="th"}return this.toString()+a},pad:function(a,b,c){c=c||10;c=this.toNumber()===0?"":this.toString(c).replace(/^-/,"");c=M(c,"0",a-c.replace(/\.\d+$/,"").length,0);if(b||this<0)c=(this<0?"-":"+")+c;return c},format:function(a,b){a=a||",";b=b||".";var c=this.toString().split("."),d=c[0];c=c.length>1?b+c[1]:"";for(var e=/(\d+)(\d{3})/;e.test(d);)d=d.replace(e,"$1"+a+"$2");return d+c},hex:function(a){return this.pad(a||1,false,16)}});var F=function(){return"\t\n\u000b\u000c\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u2028\u2029\u3000\ufeff"}, za=[{names:["Arabic"],source:"\u0600-\u06ff"},{names:["Cyrillic"],source:"\u0400-\u04ff"},{names:["Devanagari"],source:"\u0900-\u097f"},{names:["Greek"],source:"\u0370-\u03ff"},{names:["Hangul"],source:"\uac00-\ud7af\u1100-\u11ff"},{names:["Han","Kanji"],source:"\u4e00-\u9fff\uf900-\ufaff"},{names:["Hebrew"],source:"\u0590-\u05ff"},{names:["Hiragana"],source:"\u3040-\u309f\u30fb-\u30fc"},{names:["Kana"],source:"\u3040-\u30ff\uff61-\uff9f"},{names:["Katakana"],source:"\u30a0-\u30ff\uff61-\uff9f"}, {names:["Latin"],source:"\u0000-\u0080-\u00ff\u0100-\u017f\u0180-\u024f"},{names:["Thai"],source:"\u0e00-\u0e7f"}],Aa=[{type:"a",shift:65248,start:65,end:90},{type:"a",shift:65248,start:97,end:122},{type:"n",shift:65248,start:48,end:57},{type:"p",shift:65248,start:33,end:47},{type:"p",shift:65248,start:58,end:64},{type:"p",shift:65248,start:91,end:96},{type:"p",shift:65248,start:123,end:126}],ba={},ca={},Ba=/[\u0020-\u00A5]|[\uFF61-\uFF9F][\uff9e\uff9f]?/g,Ca=/[\u3000-\u301C]|[\u301A-\u30FC]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g, Da=/[\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8\u30cf\u30d2\u30d5\u30d8\u30db]/,Ea=/[\u30cf\u30d2\u30d5\u30d8\u30db\u30f2]/;m(String,true,false,{escapeRegExp:function(){return RegExp.escape(this)},escapeURL:function(a){return a?encodeURIComponent(this):encodeURI(this)},unescapeURL:function(a){return a?decodeURI(this):decodeURIComponent(this)},escapeHTML:function(){return this.replace(/&/g,"&").replace(//g,">")},unescapeHTML:function(){return this.replace(/</g, "<").replace(/>/g,">").replace(/&/g,"&")},encodeBase64:function(){return btoa(this)},decodeBase64:function(){return atob(this)},capitalize:function(a){a=a?/\b[a-z]/g:/^[a-z]/;return this.toLowerCase().replace(a,function(b){return b.toUpperCase()})},pad:function(a,b){return M(this,a,b,b)},padLeft:function(a,b){return M(this,a,b,0)},padRight:function(a,b){return M(this,a,0,b)},repeat:function(a){if(!Object.isNumber(a)||a<1)return"";for(var b="",c=0;c0?arguments:[""],function(b){a=a.replace(RegExp("]*>","gi"),"")});return a},removeTags:function(){var a=this;s(arguments.length>0?arguments:["\\S+"],function(b){a=a.replace(RegExp("<("+b+")[^<>]*(?:\\/>|>.*?<\\/\\1>)","gi"),"")});return a},truncate:function(a,b,c){var d;b=b===undefined?"...":String(b);a-=b.length;if(this.length<=a)return this.toString();d=/^(.)\1+$/.test(b)?b.slice(0,1):"";for(d=RegExp("[^"+F()+d+"]["+F()+d+"]");a>0&&!d.test(this.slice(a- 1,a+1))&&c!==true;)a--;return this.slice(0,a)+(a>0?b:"")},assign:function(){var a=Object.extended();s(arguments,function(b,c){if(Object.isObject(b))a.merge(b);else a[c+1]=b});return this.replace(/\{(.+?)\}/g,function(b,c){return a[c]||b})}});m(String,true,function(a){return!Object.isRegExp(a)},{split:function(a,b){var c=[],d=0,e=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.sticky?"y":"");a=a.addFlag("g");var g,h,f;RegExp.NPCGSupport||(g=RegExp("^"+a.source+"$(?!\\s)",e));if(b===undefined||+b<0)b= Infinity;else{b=(+b).floor();if(!b)return[]}for(;h=a.exec(this);){e=h.index+h[0].length;if(e>d){c.push(this.slice(d,h.index));!RegExp.NPCGSupport&&h.length>1&&h[0].replace(g,function(){for(var i=1;i1&&h.index=b)break}a.lastIndex===h.index&&a.lastIndex++}if(d===this.length){if(f||!a.test(""))c.push("")}else c.push(this.slice(d));return c.length> b?c.slice(0,b):c}});m(String,true,false,{insert:String.prototype.add});var Q=["hour","minute","second","millisecond","meridian","utc","offset_sign","offset_hours","offset_minutes"],R="(\\d{1,2}):?(\\d{2})?:?(\\d{2})?(?:\\.(\\d{1,6}))?(am|pm)?(?:(Z)|(?:([+-])(\\d{2})(?::?(\\d{2}))?)?)?",ea="\\s*(?:(?:t|at |\\s+)"+R+")?",ka=[],ia,N,Fa=[{src:"(\\d{4})",to:["year"]},{src:"([+-])?(\\d{4})[-.]?({month})[-.]?(\\d{1,2})?",to:["year_sign","year","month","date"]},{src:"(\\d{1,2})[-.\\/]({month})[-.\\/]?(\\d{2,4})?", to:["month","date","year"],variant:true}],wa=[{token:"millisec(?:onds?)?|ms(?:ms)?",pad:3,format:function(a,b){return q(a,"get",b,"Milliseconds")}},{token:"s(?:s|ec(?:onds?)?)?",pad:2,format:function(a,b){return q(a,"get",b,"Seconds")}},{token:"m(?:m|in(?:utes?)?)?",pad:2,caps:true,format:function(a,b){return q(a,"get",b,"Minutes")}},{token:"h(?:h|(?:ours?))?|24hr",pad:2,format:function(a,b){return q(a,"get",b,"Hours")}},{token:"12hr",pad:2,format:function(a,b){var c=q(a,"get",b,"Hours");return c=== 0?12:c-(c/13).floor()*12}},{token:"d(?:d|ate|ays?)?",pad:2,format:function(a,b){return q(a,"get",b,"Date")}},{token:"dow|weekday",weekdays:true,format:function(a,b){return q(a,"get",b,"Day")}},{token:"MM?",pad:2,caps:true,format:function(a,b){return q(a,"get",b,"Month")+1}},{token:"mon(?:th)?",months:true,format:function(a,b){return q(a,"get",b,"Month")}},{token:"yy",format:function(a,b){return q(a,"get",b,"FullYear").toString().from(2)}},{token:"yyyy|year",format:function(a,b){return q(a,"get",b, "FullYear")}},{token:"t{1,2}",meridian:true,format:function(a,b){return q(a,"get",b,"Hours")<12?"am":"pm"}},{token:"tz|timezone",format:function(a){return a.getUTCOffset()}},{token:"iso(tz|timezone)",format:function(a){return a.getUTCOffset(true)}},{token:"ord",format:function(a,b){return q(a,"get",b,"Date").ordinalize()}}],E=[{unit:"year",method:"FullYear",multiplier:function(a){return(365+(a?a.isLeapYear()?1:0:0.25))*24*60*60*1E3}},{unit:"month",method:"Month",multiplier:function(a,b){var c=30.4375, d;if(a){d=a.daysInMonth();if(b<=d.days())c=d}return c*24*60*60*1E3}},{unit:"week",method:"Week",multiplier:function(){return 6048E5}},{unit:"day",method:"Date",multiplier:function(){return 864E5}},{unit:"hour",method:"Hours",multiplier:function(){return 36E5}},{unit:"minute",method:"Minutes",multiplier:function(){return 6E4}},{unit:"second",method:"Seconds",multiplier:function(){return 1E3}},{unit:"millisecond",method:"Milliseconds",multiplier:function(){return 1}}],S={},ha={en:"2;;January,February,March,April,May,June,July,August,September,October,November,December;Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;millisecond:|s,second:|s,minute:|s,hour:|s,day:|s,week:|s,month:|s,year:|s;one,two,three,four,five,six,seven,eight,nine,ten;a,an,the;the,st|nd|rd|th,of;{num} {unit} {sign},{num} {unit4} {sign} {day},{weekday?} {month} {date}{2} {year?} {time?},{date} {month} {year},{month} {year},{shift?} {weekday} {time?},{shift} week {weekday} {time?},{shift} {unit=5-7},{1} {edge} of {shift?} {unit=4-7?}{month?}{year?},{weekday} {3} {shift} week,{1} {date}{2} of {month},{1}{month?} {date?}{2} of {shift} {unit=6-7},{day} at {time?},{time} {day};{Month} {d}, {yyyy};,yesterday,today,tomorrow;,ago|before,,from now|after|from;,last,the|this,next;last day,end,,first day|beginning", ja:"1;\u6708;;\u65e5\u66dc\u65e5,\u6708\u66dc\u65e5,\u706b\u66dc\u65e5,\u6c34\u66dc\u65e5,\u6728\u66dc\u65e5,\u91d1\u66dc\u65e5,\u571f\u66dc\u65e5;\u30df\u30ea\u79d2,\u79d2,\u5206,\u6642\u9593,\u65e5,\u9031\u9593|\u9031,\u30f6\u6708|\u30f5\u6708|\u6708,\u5e74;\u4e00,\u4e8c,\u4e09,\u56db,\u4e94,\u516d,\u4e03,\u516b,\u4e5d,\u5341;;;{num}{unit}{sign},{shift}{unit=5-7}{weekday?},{year}\u5e74{month?}\u6708?{date?}\u65e5?,{month}\u6708{date?}\u65e5?,{date}\u65e5;{yyyy}\u5e74{M}\u6708{d}\u65e5;\u4e00\u6628\u65e5,\u6628\u65e5,\u4eca\u65e5,\u660e\u65e5,\u660e\u5f8c\u65e5;,\u524d,,\u5f8c;,\u53bb|\u5148,,\u6765", ko:"1;\uc6d4;;\uc77c\uc694\uc77c,\uc6d4\uc694\uc77c,\ud654\uc694\uc77c,\uc218\uc694\uc77c,\ubaa9\uc694\uc77c,\uae08\uc694\uc77c,\ud1a0\uc694\uc77c;\ubc00\ub9ac\ucd08,\ucd08,\ubd84,\uc2dc\uac04,\uc77c,\uc8fc,\uac1c\uc6d4|\ub2ec,\ub144;\uc77c|\ud55c,\uc774,\uc0bc,\uc0ac,\uc624,\uc721,\uce60,\ud314,\uad6c,\uc2ed;;;{num}{unit} {sign},{shift} {unit=5-7},{shift} {unit=5?} {weekday},{year}\ub144{month?}\uc6d4?{date?}\uc77c?,{month}\uc6d4{date?}\uc77c?,{date}\uc77c;{yyyy}\ub144{M}\uc6d4{d}\uc77c;\uadf8\uc800\uaed8,\uc5b4\uc81c,\uc624\ub298,\ub0b4\uc77c,\ubaa8\ub808;,\uc804,,\ud6c4;,\uc9c0\ub09c|\uc791,\uc774\ubc88,\ub2e4\uc74c|\ub0b4", ru:"4;;\u042f\u043d\u0432\u0430\u0440:\u044f|\u044c,\u0424\u0435\u0432\u0440\u0430\u043b:\u044f|\u044c,\u041c\u0430\u0440\u0442:\u0430|,\u0410\u043f\u0440\u0435\u043b:\u044f|\u044c,\u041c\u0430:\u044f|\u0439,\u0418\u044e\u043d:\u044f|\u044c,\u0418\u044e\u043b:\u044f|\u044c,\u0410\u0432\u0433\u0443\u0441\u0442:\u0430|,\u0421\u0435\u043d\u0442\u044f\u0431\u0440:\u044f|\u044c,\u041e\u043a\u0442\u044f\u0431\u0440:\u044f|\u044c,\u041d\u043e\u044f\u0431\u0440:\u044f|\u044c,\u0414\u0435\u043a\u0430\u0431\u0440:\u044f|\u044c;\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435,\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a,\u0412\u0442\u043e\u0440\u043d\u0438\u043a,\u0421\u0440\u0435\u0434\u0430,\u0427\u0435\u0442\u0432\u0435\u0440\u0433,\u041f\u044f\u0442\u043d\u0438\u0446\u0430,\u0421\u0443\u0431\u0431\u043e\u0442\u0430;\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434:\u0430|\u0443|\u044b|,\u0441\u0435\u043a\u0443\u043d\u0434:\u0430|\u0443|\u044b|,\u043c\u0438\u043d\u0443\u0442:\u0430|\u0443|\u044b|,\u0447\u0430\u0441:||\u0430|\u043e\u0432,\u0434\u0435\u043d\u044c|\u0434\u0435\u043d\u044c|\u0434\u043d\u044f|\u0434\u043d\u0435\u0439,\u043d\u0435\u0434\u0435\u043b:\u044f|\u044e|\u0438|\u044c|\u0435,\u043c\u0435\u0441\u044f\u0446:||\u0430|\u0435\u0432|\u0435,\u0433\u043e\u0434|\u0433\u043e\u0434|\u0433\u043e\u0434\u0430|\u043b\u0435\u0442|\u0433\u043e\u0434\u0443;\u043e\u0434:\u0438\u043d|\u043d\u0443,\u0434\u0432:\u0430|\u0435,\u0442\u0440\u0438,\u0447\u0435\u0442\u044b\u0440\u0435,\u043f\u044f\u0442\u044c,\u0448\u0435\u0441\u0442\u044c,\u0441\u0435\u043c\u044c,\u0432\u043e\u0441\u0435\u043c\u044c,\u0434\u0435\u0432\u044f\u0442\u044c,\u0434\u0435\u0441\u044f\u0442\u044c;;\u0432|\u043d\u0430,\u0433\u043e\u0434\u0430;{num} {unit} {sign},{sign} {num} {unit},{date} {month} {year?} {2},{month} {year},{1} {shift} {unit=5-7};{d} {month} {yyyy} \u0433\u043e\u0434\u0430;\u043f\u043e\u0437\u0430\u0432\u0447\u0435\u0440\u0430,\u0432\u0447\u0435\u0440\u0430,\u0441\u0435\u0433\u043e\u0434\u043d\u044f,\u0437\u0430\u0432\u0442\u0440\u0430,\u043f\u043e\u0441\u043b\u0435\u0437\u0430\u0432\u0442\u0440\u0430;,\u043d\u0430\u0437\u0430\u0434,,\u0447\u0435\u0440\u0435\u0437;,\u043f\u0440\u043e\u0448\u043b\u043e:\u0439|\u043c,,\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435:\u0439|\u043c", es:"6;;enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre;domingo,lunes,martes,mi\u00e9rcoles|miercoles,jueves,viernes,s\u00e1bado|sabado;milisegundo:|s,segundo:|s,minuto:|s,hora:|s,d\u00eda|d\u00edas|dia|dias,semana:|s,mes:|es,a\u00f1o|a\u00f1os|ano|anos;uno,dos,tres,cuatro,cinco,seis,siete,ocho,nueve,diez;;el,de;{sign} {num} {unit},{num} {unit} {sign},{date?} {2} {month} {2} {year?},{1} {unit=5-7} {shift},{1} {shift} {unit=5-7};{d} de {month} de {yyyy};anteayer,ayer,hoy,ma\u00f1ana|manana;,hace,,de ahora;,pasad:o|a,,pr\u00f3ximo|pr\u00f3xima|proximo|proxima", pt:"6;;janeiro,fevereiro,mar\u00e7o,abril,maio,junho,julho,agosto,setembro,outubro,novembro,dezembro;domingo,segunda-feira,ter\u00e7a-feira,quarta-feira,quinta-feira,sexta-feira,s\u00e1bado|sabado;milisegundo:|s,segundo:|s,minuto:|s,hora:|s,dia:|s,semana:|s,m\u00eas|m\u00eases|mes|meses,ano:|s;um,dois,tr\u00eas|tres,quatro,cinco,seis,sete,oito,nove,dez,uma,duas;;a,de;{num} {unit} {sign},{sign} {num} {unit},{date?} {2} {month} {2} {year?},{1} {unit=5-7} {shift},{1} {shift} {unit=5-7};{d} de {month} de {yyyy};anteontem,ontem,hoje,amanh:\u00e3|a;,atr\u00e1s|atras|h\u00e1|ha,,daqui a;,passad:o|a,,pr\u00f3ximo|pr\u00f3xima|proximo|proxima", fr:"2;;janvier,f\u00e9vrier|fevrier,mars,avril,mai,juin,juillet,ao\u00fbt,septembre,octobre,novembre;dimanche,lundi,mardi,mercredi,jeudi,vendredi,samedi;milliseconde:|s,seconde:|s,minute:|s,heure:|s,jour:|s,semaine:|s,mois,an:|s|n\u00e9e|nee;un:|e,deux,trois,quatre,cinq,six,sept,huit,neuf,dix;;l'|la|le;{sign} {num} {unit},{sign} {num} {unit},{1} {date?} {month} {year?},{1} {unit=5-7} {shift};{d} {month} {yyyy};,hier,aujourd'hui,demain;,il y a,,dans|d'ici;,derni:er|\u00e8re|ere,,prochain:|e",it:"2;;Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre;Domenica,Luned:\u00ec|i,Marted:\u00ec|i,Mercoled:\u00ec|i,Gioved:\u00ec|i,Venerd:\u00ec|i,Sabato;millisecond:o|i,second:o|i,minut:o|i,or:a|e,giorn:o|i,settiman:a|e,mes:e|i,ann:o|i;un:|'|a|o,due,tre,quattro,cinque,sei,sette,otto,nove,dieci;;l'|la|il;{num} {unit} {sign},{weekday?} {date?} {month} {year?},{1} {unit=5-7} {shift},{1} {shift} {unit=5-7};{d} {month} {yyyy};,ieri,oggi,domani,dopodomani;,fa,,da adesso;,scors:o|a,,prossim:o|a", de:"2;;Januar,Februar,M\u00e4rz|Marz,April,Mai,Juni,Juli,August,September,November,Dezember;Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag;Millisekunde:|n,Sekunde:|n,Minute:|n,Stunde:|n,Tag:|en,Woche:|n,Monat:|en,Jahr:|en;ein:|e|er|em|en,zwei,drei,vier,fuenf,sechs,sieben,acht,neun,zehn;;der;{sign} {num} {unit},{num} {unit} {sign},{num} {unit} {sign},{sign} {num} {unit},{weekday?} {date?} {month} {year?},{shift} {unit=5-7};{d}. {Month} {yyyy};vorgestern,gestern,heute,morgen,\u00fcbermorgen|ubermorgen|uebermorgen;,vor:|her,,in;,letzte:|r|n|s,,n\u00e4chste:|r|n|s+naechste:|r|n|s", "zh-TW":"1;\u6708;;\u65e5,\u4e00,\u4e8c,\u4e09,\u56db,\u4e94,\u516d;\u6beb\u79d2,\u79d2\u9418,\u5206\u9418,\u5c0f\u6642,\u5929,\u500b\u661f\u671f|\u9031,\u500b\u6708,\u5e74;\u4e00,\u4e8c,\u4e09,\u56db,\u4e94,\u516d,\u4e03,\u516b,\u4e5d,\u5341;;;{num}{unit}{sign},\u661f\u671f{weekday},{shift}{unit=5-7},{shift}{unit=5}{weekday},{year}\u5e74{month?}\u6708?{date?}\u65e5?,{month}\u6708{date?}\u65e5?,{date}\u65e5;{yyyy}\u5e74{M}\u6708{d}\u65e5;\u524d\u5929,\u6628\u5929,\u4eca\u5929,\u660e\u5929,\u5f8c\u5929;,\u524d,,\u5f8c;,\u4e0a|\u53bb,\u9019,\u4e0b|\u660e", "zh-CN":"1;\u6708;;\u65e5,\u4e00,\u4e8c,\u4e09,\u56db,\u4e94,\u516d;\u6beb\u79d2,\u79d2\u949f,\u5206\u949f,\u5c0f\u65f6,\u5929,\u4e2a\u661f\u671f|\u5468,\u4e2a\u6708,\u5e74;\u4e00,\u4e8c,\u4e09,\u56db,\u4e94,\u516d,\u4e03,\u516b,\u4e5d,\u5341;;;{num}{unit}{sign},\u661f\u671f{weekday},{shift}{unit=5-7},{shift}{unit=5}{weekday},{year}\u5e74{month?}\u6708?{date?}\u65e5?,{month}\u6708{date?}\u65e5?,{date}\u65e5;{yyyy}\u5e74{M}\u6708{d}\u65e5;\u524d\u5929,\u6628\u5929,\u4eca\u5929,\u660e\u5929,\u540e\u5929;,\u524d,,\u540e;,\u4e0a|\u53bb,\u8fd9,\u4e0b|\u660e"}; m(ga,true,false,{getMonth:function(a){return Object.isNumber(a)?a-1:v(this.months,RegExp(a,"i"),0,false,true)%12},getWeekday:function(a){return v(this.weekdays,RegExp(a,"i"),0,false,true)%7},getNumber:function(a){var b;return Object.isNumber(a)?a:a&&(b=this.numbers.indexOf(a))!==-1?(b+1)%10:1},getNumericDate:function(a){var b=this;return a.replace(this.numbers[9],"").each(function(c){return b.getNumber(c)}).join("")},getEnglishUnit:function(a){return English.units[this.units.indexOf(a)%8]},relative:function(a, b,c){var d,e;d=c>0?this.futureFormat:this.pastFormat;if(this.code=="ru"){e=a.toString().from(-1);switch(true){case e==1:e=1;break;case e>=2&&e<=4:e=2;break;default:e=3}}else e=this.hasPlural&&a>1?1:0;e=this.units[e*8+b]||this.units[b];if(this.capitalizeUnit)e=e.capitalize();b=v(this.modifiers,function(g){return g.name=="sign"&&g.value==(c>0?1:-1)});return d.assign({num:a,unit:e,sign:b.text})}});m(Date,false,false,{create:function(){return L(arguments)},now:function(){return(new Date).getTime()},setLocale:function(a, b){var c=C(a,false,b);if(c){Date.currentLocale=a;da(c);return c}},getLocale:function(a){return C(a,true)},addFormat:function(a,b,c,d){ka.push({variant:d,locale:c,reg:RegExp("^"+a+"$","i"),to:b})}});m(Date,true,false,{set:function(){var a=D(arguments);return O(this,a[0],a[1])},setUTC:function(){var a=D(arguments);return O(this,a[0],a[1],true)},setWeekday:function(a){a!==undefined&&this.setDate(this.getDate()+a-this.getDay())},setUTCWeekday:function(a){a!==undefined&&this.setDate(this.getUTCDate()+ a-this.getDay())},setWeek:function(a){if(a!==undefined){this.getDate();this.setMonth(0);this.setDate(a*7+1)}},setUTCWeek:function(a){if(a!==undefined){this.getUTCDate();this.setMonth(0);this.setUTCDate(a*7+1)}},getWeek:function(){var a=new Date(this.getFullYear(),0,1);return((this.getTime()-a.getTime()+1)/6048E5).ceil()},getUTCWeek:function(){var a=(new Date).setUTC(this.getUTCFullYear(),0,1,0,0,0,0);return((this.getTime()-a.getTime()+1)/6048E5).ceil()},getUTCOffset:function(a){var b=this.utc?0:this.getTimezoneOffset(), c=a===true?":":"";if(!b&&a)return"Z";return r(-b/60).pad(2,true)+c+(b%60).pad(2)},toUTC:function(){if(this.utc)return this;var a=this.clone().addMinutes(this.getTimezoneOffset());a.utc=true;return a},isUTC:function(){return this.utc||this.getTimezoneOffset()===0},advance:function(){var a=D(arguments);return O(this,a[0],false,false,1,true)},rewind:function(){var a=D(arguments);return O(this,a[0],false,false,-1)},isValid:function(){return!isNaN(this.getTime())},isAfter:function(a,b){return this.getTime()> Date.create(a).getTime()-(b||0)},isBefore:function(a,b){return this.getTime()d},isLeapYear:function(){var a=this.getFullYear();return a%4===0&&a%100!==0||a%400===0},daysInMonth:function(){return 32-(new Date(this.getFullYear(),this.getMonth(),32)).getDate()},format:function(a,b){return T(this,a,false,b)}, relative:function(a,b){if(Object.isString(a)){b=a;a=null}return T(this,a,true,b)},is:function(a,b){var c;if(Object.isString(a)){a=a.trim().toLowerCase();switch(true){case a==="future":return this.getTime()>(new Date).getTime();case a==="past":return this.getTime()<(new Date).getTime();case a==="weekday":return this.getDay()>0&&this.getDay()<6;case a==="weekend":return this.getDay()===0||this.getDay()===6;case (c=English.weekdays.indexOf(a)%7)>-1:return this.getDay()===c;case (c=English.months.indexOf(a)% 12)>-1:return this.getMonth()===c}}return xa(this,a,b)},resetTime:function(){return this.set({hour:0,minute:0,second:0,millisecond:0})},clone:function(){return new Date(this.getTime())}});m(Date,true,false,{getWeekday:Date.prototype.getDay,getUTCWeekday:Date.prototype.getUTCDay});RegExp.NPCGSupport=/()??/.exec("")[1]===undefined;m(RegExp,false,false,{escape:function(a){return a.replace(/([/'*+?|()\[\]{}.^$])/g,"\\$1")}});m(RegExp,true,false,{setFlags:function(a){return RegExp(this.source,a)},addFlag:function(a){var b= "";if(this.global||a=="g")b+="g";if(this.ignoreCase||a=="i")b+="i";if(this.multiline||a=="m")b+="m";if(this.sticky||a=="y")b+="y";return this.setFlags(b)},removeFlag:function(a){var b="";if(this.global&&a!="g")b+="g";if(this.ignoreCase&&a!="i")b+="i";if(this.multiline&&a!="m")b+="m";if(this.sticky&&a!="y")b+="y";return this.setFlags(b)}});m(Function,true,false,{lazy:function(a,b){function c(){c.timers&&c.timers.length>=b||U(c,r(++e*a),d,this,arguments)}var d=this;if(a===undefined)a=0;if(b===undefined)b= Infinity;var e=0;return c},delay:function(a){Object.isNumber(a)||(a=0);var b=Array.prototype.slice.call(arguments,1);U(this,a,this,this,b);return this},debounce:function(a,b){var c=this,d,e,g;if(b===undefined)b=true;if(b){d=function(){c.cancel()};e=c}else{d=c;e=function(){g=false}}return function(){if(!g){d.apply(this,arguments);U(c,a,e,this,arguments);g=!b}}},cancel:function(){if(Object.isArray(this.timers)){k(this.timers,function(a){clearTimeout(a)});this.timers=[]}return this},after:function(a){var b= this,c=0;Object.isNumber(a)||(a=1);return function(){c++;if(c==a){c=0;return b.apply(this,arguments)}}},once:function(){var a=this;return function(){return a.hasOwnProperty("memo")?a.memo:a.memo=a.apply(this,arguments)}}});m(Object,false,false,{isArray:Array.isArray});(function(){var a={};Y.slice(1).forEach(function(b){a["is"+b]=function(c){return P(c,b)}});m(Object,false,false,a)})();(function(){Z.forEach(function(a){l(B.prototype,a,function(){return Object[a].apply(null,[this].concat(Array.prototype.slice.call(arguments)))})})})(); (function(){m(Object,false,true,{watch:function(a,b,c){if(V){var d=a[b];Object.defineProperty(a,b,{get:function(){return d},set:function(e){d=c.call(a,b,d,e)},enumerable:true,configurable:true})}}})})();(function(a){if(typeof btoa==="undefined"){btoa=function(b){var c="",d,e,g,h,f,i,j=0;do{d=b.charCodeAt(j++);e=b.charCodeAt(j++);g=b.charCodeAt(j++);h=d>>2;d=(d&3)<<4|e>>4;f=(e&15)<<2|g>>6;i=g&63;if(isNaN(e))f=i=64;else if(isNaN(g))i=64;c=c+a.charAt(h)+a.charAt(d)+a.charAt(f)+a.charAt(i)}while(j>4;e=(e&15)<<4|h>>2;g=(h&3)<<6|f;c+=d.chr();if(h!=64)c+=e.chr();if(f!=64)c+=g.chr()}while(i