lodash-rails 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,58 +1,60 @@
1
1
  /**
2
2
  * @license
3
- * Lo-Dash 2.3.0 (Custom Build) lodash.com/license | Underscore.js 1.5.2 underscorejs.org/LICENSE
3
+ * Lo-Dash 2.4.0 (Custom Build) lodash.com/license | Underscore.js 1.5.2 underscorejs.org/LICENSE
4
4
  * Build: `lodash -o ./dist/lodash.compat.js`
5
5
  */
6
6
  ;(function(){function n(n,t,e){e=(e||0)-1;for(var r=n?n.length:0;++e<r;)if(n[e]===t)return e;return-1}function t(t,e){var r=typeof e;if(t=t.l,"boolean"==r||null==e)return t[e]?0:-1;"number"!=r&&"string"!=r&&(r="object");var u="number"==r?e:b+e;return t=(t=t[r])&&t[u],"object"==r?t&&-1<n(t,e)?0:-1:t?0:-1}function e(n){var t=this.l,e=typeof n;if("boolean"==e||null==n)t[n]=true;else{"number"!=e&&"string"!=e&&(e="object");var r="number"==e?n:b+n,t=t[e]||(t[e]={});"object"==e?(t[r]||(t[r]=[])).push(n):t[r]=true
7
- }}function r(n){return n.charCodeAt(0)}function u(n,t){var e=n.m,r=t.m;if(e!==r){if(e>r||typeof e=="undefined")return 1;if(e<r||typeof r=="undefined")return-1}return n.n-t.n}function o(n){var t=-1,r=n.length,u=n[0],o=n[r/2|0],a=n[r-1];if(u&&typeof u=="object"&&o&&typeof o=="object"&&a&&typeof a=="object")return false;for(u=l(),u["false"]=u["null"]=u["true"]=u.undefined=false,o=l(),o.k=n,o.l=u,o.push=e;++t<r;)o.push(n[t]);return o}function a(n){return"\\"+Y[n]}function i(){return v.pop()||[]}function l(){return y.pop()||{k:null,l:null,m:null,"false":false,n:0,"null":false,number:null,object:null,push:null,string:null,"true":false,undefined:false,o:null}
8
- }function f(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function c(n){n.length=0,v.length<w&&v.push(n)}function p(n){var t=n.l;t&&p(t),n.k=n.l=n.m=n.object=n.number=n.string=n.o=null,y.length<w&&y.push(n)}function s(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Array(0>e?0:e);++r<e;)u[r]=n[t+r];return u}function g(e){function v(n){return n&&typeof n=="object"&&!We(n)&&je.call(n,"__wrapped__")?n:new y(n)}function y(n,t){this.__chain__=!!t,this.__wrapped__=n
9
- }function w(n){function t(){if(r){var n=r.slice();Ce.apply(n,arguments)}if(this instanceof t){var o=nt(e.prototype),n=e.apply(o,n||arguments);return Ct(n)?n:o}return e.apply(u,n||arguments)}var e=n[0],r=n[2],u=n[4];return Ke(t,n),t}function Y(n,t,e,r,u){if(e){var o=e(n);if(typeof o!="undefined")return o}if(!Ct(n))return n;var a=ve.call(n);if(!H[a]||!qe.nodeClass&&f(n))return n;var l=Te[a];switch(a){case T:case z:return new l(+n);case W:case M:return new l(n);case J:return o=l(n.source,S.exec(n)),o.lastIndex=n.lastIndex,o
10
- }if(a=We(n),t){var p=!r;r||(r=i()),u||(u=i());for(var g=r.length;g--;)if(r[g]==n)return u[g];o=a?l(n.length):{}}else o=a?s(n):nr({},n);return a&&(je.call(n,"index")&&(o.index=n.index),je.call(n,"input")&&(o.input=n.input)),t?(r.push(n),u.push(o),(a?Ze:rr)(n,function(n,a){o[a]=Y(n,t,e,r,u)}),p&&(c(r),c(u)),o):o}function nt(n){return Ct(n)?Ae(n):{}}function tt(n,t,e){if(typeof n!="function")return Qt;if(typeof t=="undefined"||!("prototype"in n))return n;var r=n.__bindData__;if(typeof r=="undefined"&&(qe.funcNames&&(r=!n.name),r=r||!qe.funcDecomp,!r)){var u=_e.call(n);
11
- qe.funcNames||(r=!I.test(u)),r||(r=B.test(u),Ke(n,r))}if(false===r||true!==r&&1&r[1])return n;switch(e){case 1:return function(e){return n.call(t,e)};case 2:return function(e,r){return n.call(t,e,r)};case 3:return function(e,r,u){return n.call(t,e,r,u)};case 4:return function(e,r,u,o){return n.call(t,e,r,u,o)}}return Ht(n,t)}function ot(n){function t(){var n=l?a:this;if(u){var h=u.slice();Ce.apply(h,arguments)}return(o||c)&&(h||(h=s(arguments)),o&&Ce.apply(h,o),c&&h.length<i)?(r|=16,ot([e,p?r:-4&r,h,null,a,i])):(h||(h=arguments),f&&(e=n[g]),this instanceof t?(n=nt(e.prototype),h=e.apply(n,h),Ct(h)?h:n):e.apply(n,h))
12
- }var e=n[0],r=n[1],u=n[2],o=n[3],a=n[4],i=n[5],l=1&r,f=2&r,c=4&r,p=8&r,g=e;return Ke(t,n),t}function at(e,r){var u=-1,a=yt(),i=e?e.length:0,l=i>=_&&a===n,f=[];if(l){var c=o(r);c?(a=t,r=c):l=false}for(;++u<i;)c=e[u],0>a(r,c)&&f.push(c);return l&&p(r),f}function it(n,t,e,r){r=(r||0)-1;for(var u=n?n.length:0,o=[];++r<u;){var a=n[r];if(a&&typeof a=="object"&&typeof a.length=="number"&&(We(a)||bt(a))){t||(a=it(a,t,e));var i=-1,l=a.length,f=o.length;for(o.length+=l;++i<l;)o[f++]=a[i]}else e||o.push(a)}return o
13
- }function lt(n,t,e,r,u,o){if(e){var a=e(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;if(n===n&&!(n&&X[typeof n]||t&&X[typeof t]))return false;if(null==n||null==t)return n===t;var l=ve.call(n),p=ve.call(t);if(l==$&&(l=G),p==$&&(p=G),l!=p)return false;switch(l){case T:case z:return+n==+t;case W:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case J:case M:return n==le(t)}if(p=l==L,!p){var s=je.call(n,"__wrapped__"),g=je.call(t,"__wrapped__");if(s||g)return lt(s?n.__wrapped__:n,g?t.__wrapped__:t,e,r,u,o);
14
- if(l!=G||!qe.nodeClass&&(f(n)||f(t)))return false;if(l=!qe.argsObject&&bt(n)?ae:n.constructor,s=!qe.argsObject&&bt(t)?ae:t.constructor,l!=s&&!(xt(l)&&l instanceof l&&xt(s)&&s instanceof s)&&"constructor"in n&&"constructor"in t)return false}for(s=!u,u||(u=i()),o||(o=i()),l=u.length;l--;)if(u[l]==n)return o[l]==t;var h=0,a=true;if(u.push(n),o.push(t),p){if(l=n.length,h=t.length,a=h==n.length,!a&&!r)return a;for(;h--;)if(p=l,s=t[h],r)for(;p--&&!(a=lt(n[p],s,e,r,u,o)););else if(!(a=lt(n[h],s,e,r,u,o)))break;return a
15
- }return er(t,function(t,i,l){return je.call(l,i)?(h++,a=je.call(n,i)&&lt(n[i],t,e,r,u,o)):void 0}),a&&!r&&er(n,function(n,t,e){return je.call(e,t)?a=-1<--h:void 0}),s&&(c(u),c(o)),a}function ft(n,t,e,r,u){(We(t)?Nt:rr)(t,function(t,o){var a,i,l=t,f=n[o];if(t&&((i=We(t))||ur(t))){for(l=r.length;l--;)if(a=r[l]==t){f=u[l];break}if(!a){var c;e&&(l=e(f,t),c=typeof l!="undefined")&&(f=l),c||(f=i?We(f)?f:[]:ur(f)?f:{}),r.push(t),u.push(f),c||ft(f,t,e,r,u)}}else e&&(l=e(f,t),typeof l=="undefined"&&(l=t)),typeof l!="undefined"&&(f=l);
16
- n[o]=f})}function ct(n,t){return n+be(Le()*(t-n+1))}function pt(e,r,u){var a=-1,l=yt(),f=e?e.length:0,s=[],g=!r&&f>=_&&l===n,h=u||g?i():s;if(g){var v=o(h);v?(l=t,h=v):(g=false,h=u?h:(c(h),s))}for(;++a<f;){var v=e[a],y=u?u(v,a,e):v;(r?!a||h[h.length-1]!==y:0>l(h,y))&&((u||g)&&h.push(y),s.push(v))}return g?(c(h.k),p(h)):u&&c(h),s}function st(n){return function(t,e,r){var u={};if(e=v.createCallback(e,r,3),We(t)){r=-1;for(var o=t.length;++r<o;){var a=t[r];n(u,a,e(a,r,t),t)}}else Ze(t,function(t,r,o){n(u,t,e(t,r,o),o)
17
- });return u}}function gt(n,t,e,r,u,o){var a=1&t,i=4&t,l=16&t,f=32&t;if(!(2&t||xt(n)))throw new fe;l&&!e.length&&(t&=-17,l=e=false),f&&!r.length&&(t&=-33,f=r=false);var c=n&&n.__bindData__;return c&&true!==c?(c=c.slice(),!a||1&c[1]||(c[4]=u),!a&&1&c[1]&&(t|=8),!i||4&c[1]||(c[5]=o),l&&Ce.apply(c[2]||(c[2]=[]),e),f&&Ce.apply(c[3]||(c[3]=[]),r),c[1]|=t,gt.apply(null,c)):(1==t||17===t?w:ot)([n,t,e,r,u,o])}function ht(){Q.h=F,Q.b=Q.c=Q.g=Q.i="",Q.e="t",Q.j=true;for(var n,t=0;n=arguments[t];t++)for(var e in n)Q[e]=n[e];
18
- t=Q.a,Q.d=/^[^,]+/.exec(t)[0],n=re,t="return function("+t+"){",e=Q;var r="var n,t="+e.d+",E="+e.e+";if(!t)return E;"+e.i+";";e.b?(r+="var u=t.length;n=-1;if("+e.b+"){",qe.unindexedChars&&(r+="if(s(t)){t=t.split('')}"),r+="while(++n<u){"+e.g+";}}else{"):qe.nonEnumArgs&&(r+="var u=t.length;n=-1;if(u&&p(t)){while(++n<u){n+='';"+e.g+";}}else{"),qe.enumPrototypes&&(r+="var G=typeof t=='function';"),qe.enumErrorProps&&(r+="var F=t===k||t instanceof Error;");var u=[];if(qe.enumPrototypes&&u.push('!(G&&n=="prototype")'),qe.enumErrorProps&&u.push('!(F&&(n=="message"||n=="name"))'),e.j&&e.f)r+="var C=-1,D=B[typeof t]&&v(t),u=D?D.length:0;while(++C<u){n=D[C];",u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}";
19
- else if(r+="for(n in t){",e.j&&u.push("m.call(t, n)"),u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}",qe.nonEnumShadows){for(r+="if(t!==A){var i=t.constructor,r=t===(i&&i.prototype),f=t===J?I:t===k?j:L.call(t),x=y[f];",k=0;7>k;k++)r+="n='"+e.h[k]+"';if((!(r&&x[n])&&m.call(t,n))",e.j||(r+="||(!x[n]&&t[n]!==A[n])"),r+="){"+e.g+"}";r+="}"}return(e.b||qe.nonEnumArgs)&&(r+="}"),r+=e.c+";return E",n("d,j,k,m,o,p,q,s,v,A,B,y,I,J,L",t+r+"}")(tt,q,pe,je,d,bt,We,Et,Q.f,se,X,ze,M,ge,ve)
20
- }function vt(n){return Ve[n]}function yt(){var t=(t=v.indexOf)===qt?n:t;return t}function mt(n){var t,e;return!n||ve.call(n)!=G||(t=n.constructor,xt(t)&&!(t instanceof t))||!qe.argsClass&&bt(n)||!qe.nodeClass&&f(n)?false:qe.ownLast?(er(n,function(n,t,r){return e=je.call(r,t),false}),false!==e):(er(n,function(n,t){e=t}),typeof e=="undefined"||je.call(n,e))}function dt(n){return Qe[n]}function bt(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ve.call(n)==$||false}function _t(n,t,e){var r=Je(n),u=r.length;
21
- for(t=tt(t,e,3);u--&&(e=r[u],false!==t(n[e],e,n)););return n}function wt(n){var t=[];return er(n,function(n,e){xt(n)&&t.push(e)}),t.sort()}function jt(n){for(var t=-1,e=Je(n),r=e.length,u={};++t<r;){var o=e[t];u[n[o]]=o}return u}function xt(n){return typeof n=="function"}function Ct(n){return!(!n||!X[typeof n])}function kt(n){return typeof n=="number"||n&&typeof n=="object"&&ve.call(n)==W||false}function Et(n){return typeof n=="string"||n&&typeof n=="object"&&ve.call(n)==M||false}function Ot(n){for(var t=-1,e=Je(n),r=e.length,u=ne(r);++t<r;)u[t]=n[e[t]];
22
- return u}function St(n,t,e){var r=-1,u=yt(),o=n?n.length:0,a=false;return e=(0>e?Re(0,o+e):e)||0,We(n)?a=-1<u(n,t,e):typeof o=="number"?a=-1<(Et(n)?n.indexOf(t,e):u(n,t,e)):Ze(n,function(n){return++r<e?void 0:!(a=n===t)}),a}function It(n,t,e){var r=true;if(t=v.createCallback(t,e,3),We(n)){e=-1;for(var u=n.length;++e<u&&(r=!!t(n[e],e,n)););}else Ze(n,function(n,e,u){return r=!!t(n,e,u)});return r}function At(n,t,e){var r=[];if(t=v.createCallback(t,e,3),We(n)){e=-1;for(var u=n.length;++e<u;){var o=n[e];
23
- t(o,e,n)&&r.push(o)}}else Ze(n,function(n,e,u){t(n,e,u)&&r.push(n)});return r}function Dt(n,t,e){if(t=v.createCallback(t,e,3),!We(n)){var r;return Ze(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0}),r}e=-1;for(var u=n.length;++e<u;){var o=n[e];if(t(o,e,n))return o}}function Nt(n,t,e){if(t&&typeof e=="undefined"&&We(n)){e=-1;for(var r=n.length;++e<r&&false!==t(n[e],e,n););}else Ze(n,t,e);return n}function Bt(n,t,e){var r=n,u=n?n.length:0;if(t=t&&typeof e=="undefined"?t:tt(t,e,3),We(n))for(;u--&&false!==t(n[u],u,n););else{if(typeof u!="number")var o=Je(n),u=o.length;
24
- else qe.unindexedChars&&Et(n)&&(r=n.split(""));Ze(n,function(n,e,a){return e=o?o[--u]:--u,t(r[e],e,a)})}return n}function Pt(n,t,e){var r=-1,u=n?n.length:0,o=ne(typeof u=="number"?u:0);if(t=v.createCallback(t,e,3),We(n))for(;++r<u;)o[r]=t(n[r],r,n);else Ze(n,function(n,e,u){o[++r]=t(n,e,u)});return o}function Rt(n,t,e){var u=-1/0,o=u;if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&We(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i>o&&(o=i)}}else t=null==t&&Et(n)?r:v.createCallback(t,e,3),Ze(n,function(n,e,r){e=t(n,e,r),e>u&&(u=e,o=n)
25
- });return o}function Ft(n,t,e,r){var u=3>arguments.length;if(t=v.createCallback(t,r,4),We(n)){var o=-1,a=n.length;for(u&&(e=n[++o]);++o<a;)e=t(e,n[o],o,n)}else Ze(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)});return e}function $t(n,t,e,r){var u=3>arguments.length;return t=v.createCallback(t,r,4),Bt(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)}),e}function Lt(n){var t=-1,e=n?n.length:0,r=ne(typeof e=="number"?e:0);return Nt(n,function(n){var e=ct(0,++t);r[t]=r[e],r[e]=n}),r}function Tt(n,t,e){var r;if(t=v.createCallback(t,e,3),We(n)){e=-1;
26
- for(var u=n.length;++e<u&&!(r=t(n[e],e,n)););}else Ze(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function zt(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=-1;for(t=v.createCallback(t,e,3);++o<u&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[0]:h;return s(n,0,Fe(Re(0,r),u))}function qt(t,e,r){if(typeof r=="number"){var u=t?t.length:0;r=0>r?Re(0,u+r):r||0}else if(r)return r=Wt(t,e),t[r]===e?r:-1;return n(t,e,r)}function Kt(n,t,e){if(typeof t!="number"&&null!=t){var r=0,u=-1,o=n?n.length:0;
27
- for(t=v.createCallback(t,e,3);++u<o&&t(n[u],u,n);)r++}else r=null==t||e?1:Re(0,t);return s(n,r)}function Wt(n,t,e,r){var u=0,o=n?n.length:u;for(e=e?v.createCallback(e,r,1):Qt,t=e(t);u<o;)r=u+o>>>1,e(n[r])<t?u=r+1:o=r;return u}function Gt(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(e=v.createCallback(e,r,3)),pt(n,t,e)}function Jt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?Rt(lr(n,"length")):0,r=ne(0>e?0:e);++t<e;)r[t]=lr(n,t);
28
- return r}function Mt(n,t){for(var e=-1,r=n?n.length:0,u={};++e<r;){var o=n[e];t?u[o]=t[e]:o&&(u[o[0]]=o[1])}return u}function Ht(n,t){return 2<arguments.length?gt(n,17,s(arguments,2),null,t):gt(n,1,null,null,t)}function Ut(n,t,e){var r,u,o,a,i,l,f,c=0,p=false,s=true;if(!xt(n))throw new fe;if(t=Re(0,t)||0,true===e)var g=true,s=false;else Ct(e)&&(g=e.leading,p="maxWait"in e&&(Re(t,e.maxWait)||0),s="trailing"in e?e.trailing:s);var v=function(){var e=t-(xe()-a);0<e?l=Ee(v,e):(u&&de(u),e=f,u=l=f=h,e&&(c=xe(),o=n.apply(i,r),l||u||(r=i=null)))
29
- },y=function(){l&&de(l),u=l=f=h,(s||p!==t)&&(c=xe(),o=n.apply(i,r),l||u||(r=i=null))};return function(){if(r=arguments,a=xe(),i=this,f=s&&(l||!g),false===p)var e=g&&!l;else{u||g||(c=a);var h=p-(a-c),m=0>=h;m?(u&&(u=de(u)),c=a,o=n.apply(i,r)):u||(u=Ee(y,h))}return m&&l?l=de(l):l||t===p||(l=Ee(v,t)),e&&(m=true,o=n.apply(i,r)),!m||l||u||(r=i=null),o}}function Vt(n){if(!xt(n))throw new fe;var t=s(arguments,1);return Ee(function(){n.apply(h,t)},1)}function Qt(n){return n}function Xt(n,t){var e=n,r=!t||xt(e);
30
- t||(e=y,t=n,n=v),Nt(wt(t),function(u){var o=n[u]=t[u];r&&(e.prototype[u]=function(){var t=this.__wrapped__,r=[t];return Ce.apply(r,arguments),r=o.apply(n,r),t&&typeof t=="object"&&t===r?this:(r=new e(r),r.__chain__=this.__chain__,r)})})}function Yt(){}function Zt(){return this.__wrapped__}e=e?ut.defaults(Z.Object(),e,ut.pick(Z,R)):Z;var ne=e.Array,te=e.Boolean,ee=e.Date,re=e.Function,ue=e.Math,oe=e.Number,ae=e.Object,ie=e.RegExp,le=e.String,fe=e.TypeError,ce=[],pe=e.Error.prototype,se=ae.prototype,ge=le.prototype,he=e._,ve=se.toString,ye=ie("^"+le(ve).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),me=ue.ceil,de=e.clearTimeout,be=ue.floor,_e=re.prototype.toString,we=ye.test(we=ae.getPrototypeOf)&&we,je=se.hasOwnProperty,xe=ye.test(xe=ee.now)&&xe||function(){return+new ee
31
- },Ce=ce.push,ke=se.propertyIsEnumerable,Ee=e.setTimeout,Oe=ce.splice,Se=typeof(Se=rt&&et&&rt.setImmediate)=="function"&&!ye.test(Se)&&Se,Ie=function(){try{var n={},t=ye.test(t=ae.defineProperty)&&t,e=t(n,n,n)&&t}catch(r){}return e}(),Ae=ye.test(Ae=ae.create)&&Ae,De=ye.test(De=ne.isArray)&&De,Ne=e.isFinite,Be=e.isNaN,Pe=ye.test(Pe=ae.keys)&&Pe,Re=ue.max,Fe=ue.min,$e=e.parseInt,Le=ue.random,Te={};Te[L]=ne,Te[T]=te,Te[z]=ee,Te[K]=re,Te[G]=ae,Te[W]=oe,Te[J]=ie,Te[M]=le;var ze={};ze[L]=ze[z]=ze[W]={constructor:true,toLocaleString:true,toString:true,valueOf:true},ze[T]=ze[M]={constructor:true,toString:true,valueOf:true},ze[q]=ze[K]=ze[J]={constructor:true,toString:true},ze[G]={constructor:true},function(){for(var n=F.length;n--;){var t,e=F[n];
32
- for(t in ze)je.call(ze,t)&&!je.call(ze[t],e)&&(ze[t][e]=false)}}(),y.prototype=v.prototype;var qe=v.support={};!function(){var n=function(){this.x=1},t={0:1,length:1},r=[];n.prototype={valueOf:1,y:1};for(var u in new n)r.push(u);for(u in arguments);qe.argsClass=ve.call(arguments)==$,qe.argsObject=arguments.constructor==ae&&!(arguments instanceof ne),qe.enumErrorProps=ke.call(pe,"message")||ke.call(pe,"name"),qe.enumPrototypes=ke.call(n,"prototype"),qe.funcDecomp=!ye.test(e.WinRTError)&&B.test(g),qe.funcNames=typeof re.name=="string",qe.nonEnumArgs=0!=u,qe.nonEnumShadows=!/valueOf/.test(r),qe.ownLast="x"!=r[0],qe.spliceObjects=(ce.splice.call(t,0,1),!t[0]),qe.unindexedChars="xx"!="x"[0]+ae("x")[0];
33
- try{qe.nodeClass=!(ve.call(document)==G&&!({toString:0}+""))}catch(o){qe.nodeClass=true}}(1),v.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:A,variable:"",imports:{_:v}},Ae||(nt=function(){function n(){}return function(t){if(Ct(t)){n.prototype=t;var r=new n;n.prototype=null}return r||e.Object()}}());var Ke=Ie?function(n,t){V.value=t,Ie(n,"__bindData__",V)}:Yt;qe.argsClass||(bt=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&je.call(n,"callee")&&!ke.call(n,"callee")||false
34
- });var We=De||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ve.call(n)==L||false},Ge=ht({a:"z",e:"[]",i:"if(!(B[typeof z]))return E",g:"E.push(n)"}),Je=Pe?function(n){return Ct(n)?qe.enumPrototypes&&typeof n=="function"||qe.nonEnumArgs&&n.length&&bt(n)?Ge(n):Pe(n):[]}:Ge,Me={a:"g,e,K",i:"e=e&&typeof K=='undefined'?e:d(e,K,3)",b:"typeof u=='number'",v:Je,g:"if(e(t[n],n,g)===false)return E"},He={a:"z,H,l",i:"var a=arguments,b=0,c=typeof l=='number'?2:a.length;while(++b<c){t=a[b];if(t&&B[typeof t]){",v:Je,g:"if(typeof E[n]=='undefined')E[n]=t[n]",c:"}}"},Ue={i:"if(!B[typeof t])return E;"+Me.i,b:false},Ve={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Qe=jt(Ve),Xe=ie("("+Je(Qe).join("|")+")","g"),Ye=ie("["+Je(Ve).join("")+"]","g"),Ze=ht(Me),nr=ht(He,{i:He.i.replace(";",";if(c>3&&typeof a[c-2]=='function'){var e=d(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){e=a[--c]}"),g:"E[n]=e?e(E[n],t[n]):t[n]"}),tr=ht(He),er=ht(Me,Ue,{j:false}),rr=ht(Me,Ue);
35
- xt(/x/)&&(xt=function(n){return typeof n=="function"&&ve.call(n)==K});var ur=we?function(n){if(!n||ve.call(n)!=G||!qe.argsClass&&bt(n))return false;var t=n.valueOf,e=typeof t=="function"&&(e=we(t))&&we(e);return e?n==e||we(n)==e:mt(n)}:mt,or=st(function(n,t,e){je.call(n,e)?n[e]++:n[e]=1}),ar=st(function(n,t,e){(je.call(n,e)?n[e]:n[e]=[]).push(t)}),ir=st(function(n,t,e){n[e]=t}),lr=Pt;Se&&(Vt=function(n){if(!xt(n))throw new fe;return Se.apply(e,arguments)});var fr=8==$e(j+"08")?$e:function(n,t){return $e(Et(n)?n.replace(D,""):n,t||0)
36
- };return v.after=function(n,t){if(!xt(t))throw new fe;return function(){return 1>--n?t.apply(this,arguments):void 0}},v.assign=nr,v.at=function(n){var t=arguments,e=-1,r=it(t,true,false,1),t=t[2]&&t[2][t[1]]===n?1:r.length,u=ne(t);for(qe.unindexedChars&&Et(n)&&(n=n.split(""));++e<t;)u[e]=n[r[e]];return u},v.bind=Ht,v.bindAll=function(n){for(var t=1<arguments.length?it(arguments,true,false,1):wt(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=gt(n[u],1,null,null,n)}return n},v.bindKey=function(n,t){return 2<arguments.length?gt(t,19,s(arguments,2),null,n):gt(t,3,null,null,n)
37
- },v.chain=function(n){return n=new y(n),n.__chain__=true,n},v.compact=function(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)}return r},v.compose=function(){for(var n=arguments,t=n.length;t--;)if(!xt(n[t]))throw new fe;return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}},v.countBy=or,v.create=function(n,t){var e=nt(n);return t?nr(e,t):e},v.createCallback=function(n,t,e){var r=typeof n;if(null==n||"function"==r)return tt(n,t,e);if("object"!=r)return function(t){return t[n]
38
- };var u=Je(n),o=u[0],a=n[o];return 1!=u.length||a!==a||Ct(a)?function(t){for(var e=u.length,r=false;e--&&(r=lt(t[u[e]],n[u[e]],null,true)););return r}:function(n){return n=n[o],a===n&&(0!==a||1/a==1/n)}},v.curry=function(n,t){return t=typeof t=="number"?t:+t||n.length,gt(n,4,null,null,null,t)},v.debounce=Ut,v.defaults=tr,v.defer=Vt,v.delay=function(n,t){if(!xt(n))throw new fe;var e=s(arguments,2);return Ee(function(){n.apply(h,e)},t)},v.difference=function(n){return at(n,it(arguments,true,true,1))},v.filter=At,v.flatten=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(n=Pt(n,e,r)),it(n,t)
39
- },v.forEach=Nt,v.forEachRight=Bt,v.forIn=er,v.forInRight=function(n,t,e){var r=[];er(n,function(n,t){r.push(t,n)});var u=r.length;for(t=tt(t,e,3);u--&&false!==t(r[u--],r[u],n););return n},v.forOwn=rr,v.forOwnRight=_t,v.functions=wt,v.groupBy=ar,v.indexBy=ir,v.initial=function(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else r=null==t||e?1:t||r;return s(n,0,Fe(Re(0,u-r),u))},v.intersection=function(e){for(var r=arguments,u=r.length,a=-1,l=i(),f=-1,s=yt(),g=e?e.length:0,h=[],v=i();++a<u;){var y=r[a];
40
- l[a]=s===n&&(y?y.length:0)>=_&&o(a?r[a]:v)}n:for(;++f<g;){var m=l[0],y=e[f];if(0>(m?t(m,y):s(v,y))){for(a=u,(m||v).push(y);--a;)if(m=l[a],0>(m?t(m,y):s(r[a],y)))continue n;h.push(y)}}for(;u--;)(m=l[u])&&p(m);return c(l),c(v),h},v.invert=jt,v.invoke=function(n,t){var e=s(arguments,2),r=-1,u=typeof t=="function",o=n?n.length:0,a=ne(typeof o=="number"?o:0);return Nt(n,function(n){a[++r]=(u?t:n[t]).apply(n,e)}),a},v.keys=Je,v.map=Pt,v.max=Rt,v.memoize=function(n,t){if(!xt(n))throw new fe;var e=function(){var r=e.cache,u=t?t.apply(this,arguments):b+arguments[0];
41
- return je.call(r,u)?r[u]:r[u]=n.apply(this,arguments)};return e.cache={},e},v.merge=function(n){var t=arguments,e=2;if(!Ct(n))return n;if("number"!=typeof t[2]&&(e=t.length),3<e&&"function"==typeof t[e-2])var r=tt(t[--e-1],t[e--],2);else 2<e&&"function"==typeof t[e-1]&&(r=t[--e]);for(var t=s(arguments,1,e),u=-1,o=i(),a=i();++u<e;)ft(n,t[u],r,o,a);return c(o),c(a),n},v.min=function(n,t,e){var u=1/0,o=u;if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&We(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];
42
- i<o&&(o=i)}}else t=null==t&&Et(n)?r:v.createCallback(t,e,3),Ze(n,function(n,e,r){e=t(n,e,r),e<u&&(u=e,o=n)});return o},v.omit=function(n,t,e){var r={};if(typeof t!="function"){var u=[];er(n,function(n,t){u.push(t)});for(var u=at(u,it(arguments,true,false,1)),o=-1,a=u.length;++o<a;){var i=u[o];r[i]=n[i]}}else t=v.createCallback(t,e,3),er(n,function(n,e,u){t(n,e,u)||(r[e]=n)});return r},v.once=function(n){var t,e;if(!xt(n))throw new fe;return function(){return t?e:(t=true,e=n.apply(this,arguments),n=null,e)
43
- }},v.pairs=function(n){for(var t=-1,e=Je(n),r=e.length,u=ne(r);++t<r;){var o=e[t];u[t]=[o,n[o]]}return u},v.partial=function(n){return gt(n,16,s(arguments,1))},v.partialRight=function(n){return gt(n,32,null,s(arguments,1))},v.pick=function(n,t,e){var r={};if(typeof t!="function")for(var u=-1,o=it(arguments,true,false,1),a=Ct(n)?o.length:0;++u<a;){var i=o[u];i in n&&(r[i]=n[i])}else t=v.createCallback(t,e,3),er(n,function(n,e,u){t(n,e,u)&&(r[e]=n)});return r},v.pluck=lr,v.pull=function(n){for(var t=arguments,e=0,r=t.length,u=n?n.length:0;++e<r;)for(var o=-1,a=t[e];++o<u;)n[o]===a&&(Oe.call(n,o--,1),u--);
44
- return n},v.range=function(n,t,e){n=+n||0,e=typeof e=="number"?e:+e||1,null==t&&(t=n,n=0);var r=-1;t=Re(0,me((t-n)/(e||1)));for(var u=ne(t);++r<t;)u[r]=n,n+=e;return u},v.reject=function(n,t,e){return t=v.createCallback(t,e,3),At(n,function(n,e,r){return!t(n,e,r)})},v.remove=function(n,t,e){var r=-1,u=n?n.length:0,o=[];for(t=v.createCallback(t,e,3);++r<u;)e=n[r],t(e,r,n)&&(o.push(e),Oe.call(n,r--,1),u--);return o},v.rest=Kt,v.shuffle=Lt,v.sortBy=function(n,t,e){var r=-1,o=n?n.length:0,a=ne(typeof o=="number"?o:0);
45
- for(t=v.createCallback(t,e,3),Nt(n,function(n,e,u){var o=a[++r]=l();o.m=t(n,e,u),o.n=r,o.o=n}),o=a.length,a.sort(u);o--;)n=a[o],a[o]=n.o,p(n);return a},v.tap=function(n,t){return t(n),n},v.throttle=function(n,t,e){var r=true,u=true;if(!xt(n))throw new fe;return false===e?r=false:Ct(e)&&(r="leading"in e?e.leading:r,u="trailing"in e?e.trailing:u),U.leading=r,U.maxWait=t,U.trailing=u,Ut(n,t,U)},v.times=function(n,t,e){n=-1<(n=+n)?n:0;var r=-1,u=ne(n);for(t=tt(t,e,1);++r<n;)u[r]=t(r);return u},v.toArray=function(n){return n&&typeof n.length=="number"?qe.unindexedChars&&Et(n)?n.split(""):s(n):Ot(n)
46
- },v.transform=function(n,t,e,r){var u=We(n);if(null==e)if(u)e=[];else{var o=n&&n.constructor;e=nt(o&&o.prototype)}return t&&(t=v.createCallback(t,r,4),(u?Ze:rr)(n,function(n,r,u){return t(e,n,r,u)})),e},v.union=function(){return pt(it(arguments,true,true))},v.uniq=Gt,v.values=Ot,v.where=At,v.without=function(n){return at(n,s(arguments,1))},v.wrap=function(n,t){return gt(t,16,[n])},v.zip=Jt,v.zipObject=Mt,v.collect=Pt,v.drop=Kt,v.each=Nt,v.eachRight=Bt,v.extend=nr,v.methods=wt,v.object=Mt,v.select=At,v.tail=Kt,v.unique=Gt,v.unzip=Jt,Xt(v),v.clone=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=t,t=false),Y(n,t,typeof e=="function"&&tt(e,r,1))
47
- },v.cloneDeep=function(n,t,e){return Y(n,true,typeof t=="function"&&tt(t,e,1))},v.contains=St,v.escape=function(n){return null==n?"":le(n).replace(Ye,vt)},v.every=It,v.find=Dt,v.findIndex=function(n,t,e){var r=-1,u=n?n.length:0;for(t=v.createCallback(t,e,3);++r<u;)if(t(n[r],r,n))return r;return-1},v.findKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),rr(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.findLast=function(n,t,e){var r;return t=v.createCallback(t,e,3),Bt(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0
48
- }),r},v.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=v.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;return-1},v.findLastKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),_t(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.has=function(n,t){return n?je.call(n,t):false},v.identity=Qt,v.indexOf=qt,v.isArguments=bt,v.isArray=We,v.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&ve.call(n)==T||false},v.isDate=function(n){return n&&typeof n=="object"&&ve.call(n)==z||false
49
- },v.isElement=function(n){return n&&1===n.nodeType||false},v.isEmpty=function(n){var t=true;if(!n)return t;var e=ve.call(n),r=n.length;return e==L||e==M||(qe.argsClass?e==$:bt(n))||e==G&&typeof r=="number"&&xt(n.splice)?!r:(rr(n,function(){return t=false}),t)},v.isEqual=function(n,t,e,r){return lt(n,t,typeof e=="function"&&tt(e,r,2))},v.isFinite=function(n){return Ne(n)&&!Be(parseFloat(n))},v.isFunction=xt,v.isNaN=function(n){return kt(n)&&n!=+n},v.isNull=function(n){return null===n},v.isNumber=kt,v.isObject=Ct,v.isPlainObject=ur,v.isRegExp=function(n){return n&&X[typeof n]&&ve.call(n)==J||false
50
- },v.isString=Et,v.isUndefined=function(n){return typeof n=="undefined"},v.lastIndexOf=function(n,t,e){var r=n?n.length:0;for(typeof e=="number"&&(r=(0>e?Re(0,r+e):Fe(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},v.mixin=Xt,v.noConflict=function(){return e._=he,this},v.noop=Yt,v.parseInt=fr,v.random=function(n,t,e){var r=null==n,u=null==t;return null==e&&(typeof n=="boolean"&&u?(e=n,n=1):u||typeof t!="boolean"||(e=t,u=true)),r&&u&&(t=1),n=+n||0,u?(t=n,n=0):t=+t||0,e||n%1||t%1?(e=Le(),Fe(n+e*(t-n+parseFloat("1e-"+((e+"").length-1))),t)):ct(n,t)
51
- },v.reduce=Ft,v.reduceRight=$t,v.result=function(n,t){if(n){var e=n[t];return xt(e)?n[t]():e}},v.runInContext=g,v.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Je(n).length},v.some=Tt,v.sortedIndex=Wt,v.template=function(n,t,e){var r=v.templateSettings;n=le(n||""),e=tr({},e,r);var u,o=tr({},e.imports,r.imports),r=Je(o),o=Ot(o),i=0,l=e.interpolate||N,f="__p+='",l=ie((e.escape||N).source+"|"+l.source+"|"+(l===A?O:N).source+"|"+(e.evaluate||N).source+"|$","g");n.replace(l,function(t,e,r,o,l,c){return r||(r=o),f+=n.slice(i,c).replace(P,a),e&&(f+="'+__e("+e+")+'"),l&&(u=true,f+="';"+l+";\n__p+='"),r&&(f+="'+((__t=("+r+"))==null?'':__t)+'"),i=c+t.length,t
52
- }),f+="';",l=e=e.variable,l||(e="obj",f="with("+e+"){"+f+"}"),f=(u?f.replace(x,""):f).replace(C,"$1").replace(E,"$1;"),f="function("+e+"){"+(l?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+f+"return __p}";try{var c=re(r,"return "+f).apply(h,o)}catch(p){throw p.source=f,p}return t?c(t):(c.source=f,c)},v.unescape=function(n){return null==n?"":le(n).replace(Xe,dt)},v.uniqueId=function(n){var t=++m;return le(null==n?"":n)+t
53
- },v.all=It,v.any=Tt,v.detect=Dt,v.findWhere=Dt,v.foldl=Ft,v.foldr=$t,v.include=St,v.inject=Ft,rr(v,function(n,t){v.prototype[t]||(v.prototype[t]=function(){var t=[this.__wrapped__],e=this.__chain__;return Ce.apply(t,arguments),t=n.apply(v,t),e?new y(t,e):t})}),v.first=zt,v.last=function(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[u-1]:h;return s(n,Re(0,u-r))},v.sample=function(n,t,e){return n&&typeof n.length!="number"?n=Ot(n):qe.unindexedChars&&Et(n)&&(n=n.split("")),null==t||e?n?n[ct(0,n.length-1)]:h:(n=Lt(n),n.length=Fe(Re(0,t),n.length),n)
54
- },v.take=zt,v.head=zt,rr(v,function(n,t){var e="sample"!==t;v.prototype[t]||(v.prototype[t]=function(t,r){var u=this.__chain__,o=n(this.__wrapped__,t,r);return u||null!=t&&(!r||e&&typeof t=="function")?new y(o,u):o})}),v.VERSION="2.3.0",v.prototype.chain=function(){return this.__chain__=true,this},v.prototype.toString=function(){return le(this.__wrapped__)},v.prototype.value=Zt,v.prototype.valueOf=Zt,Ze(["join","pop","shift"],function(n){var t=ce[n];v.prototype[n]=function(){var n=this.__chain__,e=t.apply(this.__wrapped__,arguments);
55
- return n?new y(e,n):e}}),Ze(["push","reverse","sort","unshift"],function(n){var t=ce[n];v.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Ze(["concat","slice","splice"],function(n){var t=ce[n];v.prototype[n]=function(){return new y(t.apply(this.__wrapped__,arguments),this.__chain__)}}),qe.spliceObjects||Ze(["pop","shift","splice"],function(n){var t=ce[n],e="splice"==n;v.prototype[n]=function(){var n=this.__chain__,r=this.__wrapped__,u=t.apply(r,arguments);return 0===r.length&&delete r[0],n||e?new y(u,n):u
56
- }}),v}var h,v=[],y=[],m=0,d={},b=+new Date+"",_=75,w=40,j=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",x=/\b__p\+='';/g,C=/\b(__p\+=)''\+/g,E=/(__e\(.*?\)|\b__t\))\+'';/g,O=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,S=/\w*$/,I=/^\s*function[ \n\r\t]+\w/,A=/<%=([\s\S]+?)%>/g,D=RegExp("^["+j+"]*0+(?=.$)"),N=/($^)/,B=/\bthis\b/,P=/['\n\r\t\u2028\u2029\\]/g,R="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),F="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),$="[object Arguments]",L="[object Array]",T="[object Boolean]",z="[object Date]",q="[object Error]",K="[object Function]",W="[object Number]",G="[object Object]",J="[object RegExp]",M="[object String]",H={};
57
- H[K]=false,H[$]=H[L]=H[T]=H[z]=H[W]=H[G]=H[J]=H[M]=true;var U={leading:false,maxWait:0,trailing:false},V={configurable:false,enumerable:false,value:null,writable:false},Q={a:"",b:null,c:"",d:"",e:"",v:null,g:"",h:null,support:null,i:"",j:false},X={"boolean":false,"function":true,object:true,number:false,string:false,undefined:false},Y={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},Z=X[typeof window]&&window||this,nt=X[typeof exports]&&exports&&!exports.nodeType&&exports,tt=X[typeof module]&&module&&!module.nodeType&&module,et=tt&&tt.exports===nt&&nt,rt=X[typeof global]&&global;
7
+ }}function r(n){return n.charCodeAt(0)}function u(n,t){for(var e=n.m,r=t.m,u=-1,o=e.length;++u<o;){var a=e[u],i=r[u];if(a!==i){if(a>i||typeof a=="undefined")return 1;if(a<i||typeof i=="undefined")return-1}}return n.n-t.n}function o(n){var t=-1,r=n.length,u=n[0],o=n[r/2|0],a=n[r-1];if(u&&typeof u=="object"&&o&&typeof o=="object"&&a&&typeof a=="object")return false;for(u=l(),u["false"]=u["null"]=u["true"]=u.undefined=false,o=l(),o.k=n,o.l=u,o.push=e;++t<r;)o.push(n[t]);return o}function a(n){return"\\"+Y[n]
8
+ }function i(){return v.pop()||[]}function l(){return y.pop()||{k:null,l:null,m:null,"false":false,n:0,"null":false,number:null,object:null,push:null,string:null,"true":false,undefined:false,o:null}}function f(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function c(n){n.length=0,v.length<w&&v.push(n)}function p(n){var t=n.l;t&&p(t),n.k=n.l=n.m=n.object=n.number=n.string=n.o=null,y.length<w&&y.push(n)}function s(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Array(0>e?0:e);++r<e;)u[r]=n[t+r];
9
+ return u}function g(e){function v(n){return n&&typeof n=="object"&&!Le(n)&&_e.call(n,"__wrapped__")?n:new y(n)}function y(n,t){this.__chain__=!!t,this.__wrapped__=n}function w(n){function t(){if(r){var n=r.slice();we.apply(n,arguments)}if(this instanceof t){var o=nt(e.prototype),n=e.apply(o,n||arguments);return jt(n)?n:o}return e.apply(u,n||arguments)}var e=n[0],r=n[2],u=n[4];return $e(t,n),t}function Y(n,t,e,r,u){if(e){var o=e(n);if(typeof o!="undefined")return o}if(!jt(n))return n;var a=ge.call(n);
10
+ if(!V[a]||!Te.nodeClass&&f(n))return n;var l=Re[a];switch(a){case L:case z:return new l(+n);case W:case M:return new l(n);case J:return o=l(n.source,S.exec(n)),o.lastIndex=n.lastIndex,o}if(a=Le(n),t){var p=!r;r||(r=i()),u||(u=i());for(var g=r.length;g--;)if(r[g]==n)return u[g];o=a?l(n.length):{}}else o=a?s(n):Qe({},n);return a&&(_e.call(n,"index")&&(o.index=n.index),_e.call(n,"input")&&(o.input=n.input)),t?(r.push(n),u.push(o),(a?Ue:Ze)(n,function(n,a){o[a]=Y(n,t,e,r,u)}),p&&(c(r),c(u)),o):o}function nt(n){return jt(n)?Ee(n):{}
11
+ }function tt(n,t,e){if(typeof n!="function")return Vt;if(typeof t=="undefined"||!("prototype"in n))return n;var r=n.__bindData__;if(typeof r=="undefined"&&(Te.funcNames&&(r=!n.name),r=r||!Te.funcDecomp,!r)){var u=de.call(n);Te.funcNames||(r=!A.test(u)),r||(r=B.test(u),$e(n,r))}if(false===r||true!==r&&1&r[1])return n;switch(e){case 1:return function(e){return n.call(t,e)};case 2:return function(e,r){return n.call(t,e,r)};case 3:return function(e,r,u){return n.call(t,e,r,u)};case 4:return function(e,r,u,o){return n.call(t,e,r,u,o)
12
+ }}return Jt(n,t)}function et(n){function t(){var n=l?a:this;if(u){var h=u.slice();we.apply(h,arguments)}return(o||c)&&(h||(h=s(arguments)),o&&we.apply(h,o),c&&h.length<i)?(r|=16,et([e,p?r:-4&r,h,null,a,i])):(h||(h=arguments),f&&(e=n[g]),this instanceof t?(n=nt(e.prototype),h=e.apply(n,h),jt(h)?h:n):e.apply(n,h))}var e=n[0],r=n[1],u=n[2],o=n[3],a=n[4],i=n[5],l=1&r,f=2&r,c=4&r,p=8&r,g=e;return $e(t,n),t}function rt(e,r){var u=-1,a=ht(),i=e?e.length:0,l=i>=_&&a===n,f=[];if(l){var c=o(r);c?(a=t,r=c):l=false
13
+ }for(;++u<i;)c=e[u],0>a(r,c)&&f.push(c);return l&&p(r),f}function ot(n,t,e,r){r=(r||0)-1;for(var u=n?n.length:0,o=[];++r<u;){var a=n[r];if(a&&typeof a=="object"&&typeof a.length=="number"&&(Le(a)||mt(a))){t||(a=ot(a,t,e));var i=-1,l=a.length,f=o.length;for(o.length+=l;++i<l;)o[f++]=a[i]}else e||o.push(a)}return o}function at(n,t,e,r,u,o){if(e){var a=e(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;if(n===n&&!(n&&X[typeof n]||t&&X[typeof t]))return false;if(null==n||null==t)return n===t;
14
+ var l=ge.call(n),p=ge.call(t);if(l==T&&(l=G),p==T&&(p=G),l!=p)return false;switch(l){case L:case z:return+n==+t;case W:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case J:case M:return n==ae(t)}if(p=l==$,!p){var s=_e.call(n,"__wrapped__"),g=_e.call(t,"__wrapped__");if(s||g)return at(s?n.__wrapped__:n,g?t.__wrapped__:t,e,r,u,o);if(l!=G||!Te.nodeClass&&(f(n)||f(t)))return false;if(l=!Te.argsObject&&mt(n)?ue:n.constructor,s=!Te.argsObject&&mt(t)?ue:t.constructor,l!=s&&!(wt(l)&&l instanceof l&&wt(s)&&s instanceof s)&&"constructor"in n&&"constructor"in t)return false
15
+ }for(s=!u,u||(u=i()),o||(o=i()),l=u.length;l--;)if(u[l]==n)return o[l]==t;var h=0,a=true;if(u.push(n),o.push(t),p){if(l=n.length,h=t.length,a=h==n.length,!a&&!r)return a;for(;h--;)if(p=l,s=t[h],r)for(;p--&&!(a=at(n[p],s,e,r,u,o)););else if(!(a=at(n[h],s,e,r,u,o)))break;return a}return Ye(t,function(t,i,l){return _e.call(l,i)?(h++,a=_e.call(n,i)&&at(n[i],t,e,r,u,o)):void 0}),a&&!r&&Ye(n,function(n,t,e){return _e.call(e,t)?a=-1<--h:void 0}),s&&(c(u),c(o)),a}function it(n,t,e,r,u){(Le(t)?It:Ze)(t,function(t,o){var a,i,l=t,f=n[o];
16
+ if(t&&((i=Le(t))||nr(t))){for(l=r.length;l--;)if(a=r[l]==t){f=u[l];break}if(!a){var c;e&&(l=e(f,t),c=typeof l!="undefined")&&(f=l),c||(f=i?Le(f)?f:[]:nr(f)?f:{}),r.push(t),u.push(f),c||it(f,t,e,r,u)}}else e&&(l=e(f,t),typeof l=="undefined"&&(l=t)),typeof l!="undefined"&&(f=l);n[o]=f})}function lt(n,t){return n+me(Pe()*(t-n+1))}function ft(e,r,u){var a=-1,l=ht(),f=e?e.length:0,s=[],g=!r&&f>=_&&l===n,h=u||g?i():s;if(g){var v=o(h);v?(l=t,h=v):(g=false,h=u?h:(c(h),s))}for(;++a<f;){var v=e[a],y=u?u(v,a,e):v;
17
+ (r?!a||h[h.length-1]!==y:0>l(h,y))&&((u||g)&&h.push(y),s.push(v))}return g?(c(h.k),p(h)):u&&c(h),s}function ct(n){return function(t,e,r){var u={};if(e=v.createCallback(e,r,3),Le(t)){r=-1;for(var o=t.length;++r<o;){var a=t[r];n(u,a,e(a,r,t),t)}}else Ue(t,function(t,r,o){n(u,t,e(t,r,o),o)});return u}}function pt(n,t,e,r,u,o){var a=1&t,i=4&t,l=16&t,f=32&t;if(!(2&t||wt(n)))throw new ie;l&&!e.length&&(t&=-17,l=e=false),f&&!r.length&&(t&=-33,f=r=false);var c=n&&n.__bindData__;return c&&true!==c?(c=c.slice(),!a||1&c[1]||(c[4]=u),!a&&1&c[1]&&(t|=8),!i||4&c[1]||(c[5]=o),l&&we.apply(c[2]||(c[2]=[]),e),f&&we.apply(c[3]||(c[3]=[]),r),c[1]|=t,pt.apply(null,c)):(1==t||17===t?w:et)([n,t,e,r,u,o])
18
+ }function st(){Q.h=F,Q.b=Q.c=Q.g=Q.i="",Q.e="t",Q.j=true;for(var n,t=0;n=arguments[t];t++)for(var e in n)Q[e]=n[e];t=Q.a,Q.d=/^[^,]+/.exec(t)[0],n=te,t="return function("+t+"){",e=Q;var r="var n,t="+e.d+",E="+e.e+";if(!t)return E;"+e.i+";";e.b?(r+="var u=t.length;n=-1;if("+e.b+"){",Te.unindexedChars&&(r+="if(s(t)){t=t.split('')}"),r+="while(++n<u){"+e.g+";}}else{"):Te.nonEnumArgs&&(r+="var u=t.length;n=-1;if(u&&p(t)){while(++n<u){n+='';"+e.g+";}}else{"),Te.enumPrototypes&&(r+="var G=typeof t=='function';"),Te.enumErrorProps&&(r+="var F=t===k||t instanceof Error;");
19
+ var u=[];if(Te.enumPrototypes&&u.push('!(G&&n=="prototype")'),Te.enumErrorProps&&u.push('!(F&&(n=="message"||n=="name"))'),e.j&&e.f)r+="var C=-1,D=B[typeof t]&&v(t),u=D?D.length:0;while(++C<u){n=D[C];",u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}";else if(r+="for(n in t){",e.j&&u.push("m.call(t, n)"),u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}",Te.nonEnumShadows){for(r+="if(t!==A){var i=t.constructor,r=t===(i&&i.prototype),f=t===J?I:t===k?j:L.call(t),x=y[f];",k=0;7>k;k++)r+="n='"+e.h[k]+"';if((!(r&&x[n])&&m.call(t,n))",e.j||(r+="||(!x[n]&&t[n]!==A[n])"),r+="){"+e.g+"}";
20
+ r+="}"}return(e.b||Te.nonEnumArgs)&&(r+="}"),r+=e.c+";return E",n("d,j,k,m,o,p,q,s,v,A,B,y,I,J,L",t+r+"}")(tt,q,fe,_e,d,mt,Le,Ct,Q.f,ce,X,Fe,M,pe,ge)}function gt(n){return Je[n]}function ht(){var t=(t=v.indexOf)===Lt?n:t;return t}function vt(n){var t,e;return!n||ge.call(n)!=G||(t=n.constructor,wt(t)&&!(t instanceof t))||!Te.argsClass&&mt(n)||!Te.nodeClass&&f(n)?false:Te.ownLast?(Ye(n,function(n,t,r){return e=_e.call(r,t),false}),false!==e):(Ye(n,function(n,t){e=t}),typeof e=="undefined"||_e.call(n,e))}function yt(n){return Me[n]
21
+ }function mt(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ge.call(n)==T||false}function dt(n,t,e){var r=qe(n),u=r.length;for(t=tt(t,e,3);u--&&(e=r[u],false!==t(n[e],e,n)););return n}function bt(n){var t=[];return Ye(n,function(n,e){wt(n)&&t.push(e)}),t.sort()}function _t(n){for(var t=-1,e=qe(n),r=e.length,u={};++t<r;){var o=e[t];u[n[o]]=o}return u}function wt(n){return typeof n=="function"}function jt(n){return!(!n||!X[typeof n])}function xt(n){return typeof n=="number"||n&&typeof n=="object"&&ge.call(n)==W||false
22
+ }function Ct(n){return typeof n=="string"||n&&typeof n=="object"&&ge.call(n)==M||false}function kt(n){for(var t=-1,e=qe(n),r=e.length,u=Yt(r);++t<r;)u[t]=n[e[t]];return u}function Et(n,t,e){var r=-1,u=ht(),o=n?n.length:0,a=false;return e=(0>e?De(0,o+e):e)||0,Le(n)?a=-1<u(n,t,e):typeof o=="number"?a=-1<(Ct(n)?n.indexOf(t,e):u(n,t,e)):Ue(n,function(n){return++r<e?void 0:!(a=n===t)}),a}function Ot(n,t,e){var r=true;if(t=v.createCallback(t,e,3),Le(n)){e=-1;for(var u=n.length;++e<u&&(r=!!t(n[e],e,n)););}else Ue(n,function(n,e,u){return r=!!t(n,e,u)
23
+ });return r}function St(n,t,e){var r=[];if(t=v.createCallback(t,e,3),Le(n)){e=-1;for(var u=n.length;++e<u;){var o=n[e];t(o,e,n)&&r.push(o)}}else Ue(n,function(n,e,u){t(n,e,u)&&r.push(n)});return r}function At(n,t,e){if(t=v.createCallback(t,e,3),!Le(n)){var r;return Ue(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0}),r}e=-1;for(var u=n.length;++e<u;){var o=n[e];if(t(o,e,n))return o}}function It(n,t,e){if(t&&typeof e=="undefined"&&Le(n)){e=-1;for(var r=n.length;++e<r&&false!==t(n[e],e,n););}else Ue(n,t,e);
24
+ return n}function Dt(n,t,e){var r=n,u=n?n.length:0;if(t=t&&typeof e=="undefined"?t:tt(t,e,3),Le(n))for(;u--&&false!==t(n[u],u,n););else{if(typeof u!="number")var o=qe(n),u=o.length;else Te.unindexedChars&&Ct(n)&&(r=n.split(""));Ue(n,function(n,e,a){return e=o?o[--u]:--u,t(r[e],e,a)})}return n}function Nt(n,t,e){var r=-1,u=n?n.length:0,o=Yt(typeof u=="number"?u:0);if(t=v.createCallback(t,e,3),Le(n))for(;++r<u;)o[r]=t(n[r],r,n);else Ue(n,function(n,e,u){o[++r]=t(n,e,u)});return o}function Bt(n,t,e){var u=-1/0,o=u;
25
+ if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&Le(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i>o&&(o=i)}}else t=null==t&&Ct(n)?r:v.createCallback(t,e,3),Ue(n,function(n,e,r){e=t(n,e,r),e>u&&(u=e,o=n)});return o}function Pt(n,t,e,r){var u=3>arguments.length;if(t=v.createCallback(t,r,4),Le(n)){var o=-1,a=n.length;for(u&&(e=n[++o]);++o<a;)e=t(e,n[o],o,n)}else Ue(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)});return e}function Rt(n,t,e,r){var u=3>arguments.length;return t=v.createCallback(t,r,4),Dt(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)
26
+ }),e}function Ft(n){var t=-1,e=n?n.length:0,r=Yt(typeof e=="number"?e:0);return It(n,function(n){var e=lt(0,++t);r[t]=r[e],r[e]=n}),r}function Tt(n,t,e){var r;if(t=v.createCallback(t,e,3),Le(n)){e=-1;for(var u=n.length;++e<u&&!(r=t(n[e],e,n)););}else Ue(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function $t(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=-1;for(t=v.createCallback(t,e,3);++o<u&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[0]:h;return s(n,0,Ne(De(0,r),u))
27
+ }function Lt(t,e,r){if(typeof r=="number"){var u=t?t.length:0;r=0>r?De(0,u+r):r||0}else if(r)return r=qt(t,e),t[r]===e?r:-1;return n(t,e,r)}function zt(n,t,e){if(typeof t!="number"&&null!=t){var r=0,u=-1,o=n?n.length:0;for(t=v.createCallback(t,e,3);++u<o&&t(n[u],u,n);)r++}else r=null==t||e?1:De(0,t);return s(n,r)}function qt(n,t,e,r){var u=0,o=n?n.length:u;for(e=e?v.createCallback(e,r,1):Vt,t=e(t);u<o;)r=u+o>>>1,e(n[r])<t?u=r+1:o=r;return u}function Kt(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(e=v.createCallback(e,r,3)),ft(n,t,e)
28
+ }function Wt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?Bt(ur(n,"length")):0,r=Yt(0>e?0:e);++t<e;)r[t]=ur(n,t);return r}function Gt(n,t){var e=-1,r=n?n.length:0,u={};for(t||!r||Le(n[0])||(t=[]);++e<r;){var o=n[e];t?u[o]=t[e]:o&&(u[o[0]]=o[1])}return u}function Jt(n,t){return 2<arguments.length?pt(n,17,s(arguments,2),null,t):pt(n,1,null,null,t)}function Mt(n,t,e){var r,u,o,a,i,l,f,c=0,p=false,s=true;if(!wt(n))throw new ie;if(t=De(0,t)||0,true===e)var g=true,s=false;else jt(e)&&(g=e.leading,p="maxWait"in e&&(De(t,e.maxWait)||0),s="trailing"in e?e.trailing:s);
29
+ var v=function(){var e=t-(or()-a);0<e?l=xe(v,e):(u&&ye(u),e=f,u=l=f=h,e&&(c=or(),o=n.apply(i,r),l||u||(r=i=null)))},y=function(){l&&ye(l),u=l=f=h,(s||p!==t)&&(c=or(),o=n.apply(i,r),l||u||(r=i=null))};return function(){if(r=arguments,a=or(),i=this,f=s&&(l||!g),false===p)var e=g&&!l;else{u||g||(c=a);var h=p-(a-c),m=0>=h;m?(u&&(u=ye(u)),c=a,o=n.apply(i,r)):u||(u=xe(y,h))}return m&&l?l=ye(l):l||t===p||(l=xe(v,t)),e&&(m=true,o=n.apply(i,r)),!m||l||u||(r=i=null),o}}function Vt(n){return n}function Ht(n,t,e){var r=true,u=t&&bt(t);
30
+ t&&(e||u.length)||(null==e&&(e=t),o=y,t=n,n=v,u=bt(t)),false===e?r=false:jt(e)&&"chain"in e&&(r=e.chain);var o=n,a=wt(o);It(u,function(e){var u=n[e]=t[e];a&&(o.prototype[e]=function(){var t=this.__chain__,e=this.__wrapped__,a=[e];if(we.apply(a,arguments),a=u.apply(n,a),r||t){if(e===a&&jt(a))return this;a=new o(a),a.__chain__=t}return a})})}function Ut(){}function Qt(n){return function(t){return t[n]}}function Xt(){return this.__wrapped__}e=e?ut.defaults(Z.Object(),e,ut.pick(Z,R)):Z;var Yt=e.Array,Zt=e.Boolean,ne=e.Date,te=e.Function,ee=e.Math,re=e.Number,ue=e.Object,oe=e.RegExp,ae=e.String,ie=e.TypeError,le=[],fe=e.Error.prototype,ce=ue.prototype,pe=ae.prototype,se=e._,ge=ce.toString,he=oe("^"+ae(ge).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),ve=ee.ceil,ye=e.clearTimeout,me=ee.floor,de=te.prototype.toString,be=he.test(be=ue.getPrototypeOf)&&be,_e=ce.hasOwnProperty,we=le.push,je=ce.propertyIsEnumerable,xe=e.setTimeout,Ce=le.splice,ke=function(){try{var n={},t=he.test(t=ue.defineProperty)&&t,e=t(n,n,n)&&t
31
+ }catch(r){}return e}(),Ee=he.test(Ee=ue.create)&&Ee,Oe=he.test(Oe=Yt.isArray)&&Oe,Se=e.isFinite,Ae=e.isNaN,Ie=he.test(Ie=ue.keys)&&Ie,De=ee.max,Ne=ee.min,Be=e.parseInt,Pe=ee.random,Re={};Re[$]=Yt,Re[L]=Zt,Re[z]=ne,Re[K]=te,Re[G]=ue,Re[W]=re,Re[J]=oe,Re[M]=ae;var Fe={};Fe[$]=Fe[z]=Fe[W]={constructor:true,toLocaleString:true,toString:true,valueOf:true},Fe[L]=Fe[M]={constructor:true,toString:true,valueOf:true},Fe[q]=Fe[K]=Fe[J]={constructor:true,toString:true},Fe[G]={constructor:true},function(){for(var n=F.length;n--;){var t,e=F[n];
32
+ for(t in Fe)_e.call(Fe,t)&&!_e.call(Fe[t],e)&&(Fe[t][e]=false)}}(),y.prototype=v.prototype;var Te=v.support={};!function(){var n=function(){this.x=1},t={0:1,length:1},r=[];n.prototype={valueOf:1,y:1};for(var u in new n)r.push(u);for(u in arguments);Te.argsClass=ge.call(arguments)==T,Te.argsObject=arguments.constructor==ue&&!(arguments instanceof Yt),Te.enumErrorProps=je.call(fe,"message")||je.call(fe,"name"),Te.enumPrototypes=je.call(n,"prototype"),Te.funcDecomp=!he.test(e.WinRTError)&&B.test(g),Te.funcNames=typeof te.name=="string",Te.nonEnumArgs=0!=u,Te.nonEnumShadows=!/valueOf/.test(r),Te.ownLast="x"!=r[0],Te.spliceObjects=(le.splice.call(t,0,1),!t[0]),Te.unindexedChars="xx"!="x"[0]+ue("x")[0];
33
+ try{Te.nodeClass=!(ge.call(document)==G&&!({toString:0}+""))}catch(o){Te.nodeClass=true}}(1),v.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:I,variable:"",imports:{_:v}},Ee||(nt=function(){function n(){}return function(t){if(jt(t)){n.prototype=t;var r=new n;n.prototype=null}return r||e.Object()}}());var $e=ke?function(n,t){U.value=t,ke(n,"__bindData__",U)}:Ut;Te.argsClass||(mt=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&_e.call(n,"callee")&&!je.call(n,"callee")||false
34
+ });var Le=Oe||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ge.call(n)==$||false},ze=st({a:"z",e:"[]",i:"if(!(B[typeof z]))return E",g:"E.push(n)"}),qe=Ie?function(n){return jt(n)?Te.enumPrototypes&&typeof n=="function"||Te.nonEnumArgs&&n.length&&mt(n)?ze(n):Ie(n):[]}:ze,Ke={a:"g,e,K",i:"e=e&&typeof K=='undefined'?e:d(e,K,3)",b:"typeof u=='number'",v:qe,g:"if(e(t[n],n,g)===false)return E"},We={a:"z,H,l",i:"var a=arguments,b=0,c=typeof l=='number'?2:a.length;while(++b<c){t=a[b];if(t&&B[typeof t]){",v:qe,g:"if(typeof E[n]=='undefined')E[n]=t[n]",c:"}}"},Ge={i:"if(!B[typeof t])return E;"+Ke.i,b:false},Je={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Me=_t(Je),Ve=oe("("+qe(Me).join("|")+")","g"),He=oe("["+qe(Je).join("")+"]","g"),Ue=st(Ke),Qe=st(We,{i:We.i.replace(";",";if(c>3&&typeof a[c-2]=='function'){var e=d(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){e=a[--c]}"),g:"E[n]=e?e(E[n],t[n]):t[n]"}),Xe=st(We),Ye=st(Ke,Ge,{j:false}),Ze=st(Ke,Ge);
35
+ wt(/x/)&&(wt=function(n){return typeof n=="function"&&ge.call(n)==K});var nr=be?function(n){if(!n||ge.call(n)!=G||!Te.argsClass&&mt(n))return false;var t=n.valueOf,e=typeof t=="function"&&(e=be(t))&&be(e);return e?n==e||be(n)==e:vt(n)}:vt,tr=ct(function(n,t,e){_e.call(n,e)?n[e]++:n[e]=1}),er=ct(function(n,t,e){(_e.call(n,e)?n[e]:n[e]=[]).push(t)}),rr=ct(function(n,t,e){n[e]=t}),ur=Nt,or=he.test(or=ne.now)&&or||function(){return(new ne).getTime()},ar=8==Be(j+"08")?Be:function(n,t){return Be(Ct(n)?n.replace(D,""):n,t||0)
36
+ };return v.after=function(n,t){if(!wt(t))throw new ie;return function(){return 1>--n?t.apply(this,arguments):void 0}},v.assign=Qe,v.at=function(n){var t=arguments,e=-1,r=ot(t,true,false,1),t=t[2]&&t[2][t[1]]===n?1:r.length,u=Yt(t);for(Te.unindexedChars&&Ct(n)&&(n=n.split(""));++e<t;)u[e]=n[r[e]];return u},v.bind=Jt,v.bindAll=function(n){for(var t=1<arguments.length?ot(arguments,true,false,1):bt(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=pt(n[u],1,null,null,n)}return n},v.bindKey=function(n,t){return 2<arguments.length?pt(t,19,s(arguments,2),null,n):pt(t,3,null,null,n)
37
+ },v.chain=function(n){return n=new y(n),n.__chain__=true,n},v.compact=function(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)}return r},v.compose=function(){for(var n=arguments,t=n.length;t--;)if(!wt(n[t]))throw new ie;return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}},v.constant=function(n){return function(){return n}},v.countBy=tr,v.create=function(n,t){var e=nt(n);return t?Qe(e,t):e},v.createCallback=function(n,t,e){var r=typeof n;if(null==n||"function"==r)return tt(n,t,e);
38
+ if("object"!=r)return Qt(n);var u=qe(n),o=u[0],a=n[o];return 1!=u.length||a!==a||jt(a)?function(t){for(var e=u.length,r=false;e--&&(r=at(t[u[e]],n[u[e]],null,true)););return r}:function(n){return n=n[o],a===n&&(0!==a||1/a==1/n)}},v.curry=function(n,t){return t=typeof t=="number"?t:+t||n.length,pt(n,4,null,null,null,t)},v.debounce=Mt,v.defaults=Xe,v.defer=function(n){if(!wt(n))throw new ie;var t=s(arguments,1);return xe(function(){n.apply(h,t)},1)},v.delay=function(n,t){if(!wt(n))throw new ie;var e=s(arguments,2);
39
+ return xe(function(){n.apply(h,e)},t)},v.difference=function(n){return rt(n,ot(arguments,true,true,1))},v.filter=St,v.flatten=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(n=Nt(n,e,r)),ot(n,t)},v.forEach=It,v.forEachRight=Dt,v.forIn=Ye,v.forInRight=function(n,t,e){var r=[];Ye(n,function(n,t){r.push(t,n)});var u=r.length;for(t=tt(t,e,3);u--&&false!==t(r[u--],r[u],n););return n},v.forOwn=Ze,v.forOwnRight=dt,v.functions=bt,v.groupBy=er,v.indexBy=rr,v.initial=function(n,t,e){var r=0,u=n?n.length:0;
40
+ if(typeof t!="number"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else r=null==t||e?1:t||r;return s(n,0,Ne(De(0,u-r),u))},v.intersection=function(){for(var e=[],r=-1,u=arguments.length,a=i(),l=ht(),f=l===n,s=i();++r<u;){var g=arguments[r];(Le(g)||mt(g))&&(e.push(g),a.push(f&&g.length>=_&&o(r?e[r]:s)))}var f=e[0],h=-1,v=f?f.length:0,y=[];n:for(;++h<v;){var m=a[0],g=f[h];if(0>(m?t(m,g):l(s,g))){for(r=u,(m||s).push(g);--r;)if(m=a[r],0>(m?t(m,g):l(e[r],g)))continue n;y.push(g)
41
+ }}for(;u--;)(m=a[u])&&p(m);return c(a),c(s),y},v.invert=_t,v.invoke=function(n,t){var e=s(arguments,2),r=-1,u=typeof t=="function",o=n?n.length:0,a=Yt(typeof o=="number"?o:0);return It(n,function(n){a[++r]=(u?t:n[t]).apply(n,e)}),a},v.keys=qe,v.map=Nt,v.mapValues=function(n,t,e){var r={};return t=v.createCallback(t,e,3),Ze(n,function(n,e,u){r[e]=t(n,e,u)}),r},v.max=Bt,v.memoize=function(n,t){if(!wt(n))throw new ie;var e=function(){var r=e.cache,u=t?t.apply(this,arguments):b+arguments[0];return _e.call(r,u)?r[u]:r[u]=n.apply(this,arguments)
42
+ };return e.cache={},e},v.merge=function(n){var t=arguments,e=2;if(!jt(n))return n;if("number"!=typeof t[2]&&(e=t.length),3<e&&"function"==typeof t[e-2])var r=tt(t[--e-1],t[e--],2);else 2<e&&"function"==typeof t[e-1]&&(r=t[--e]);for(var t=s(arguments,1,e),u=-1,o=i(),a=i();++u<e;)it(n,t[u],r,o,a);return c(o),c(a),n},v.min=function(n,t,e){var u=1/0,o=u;if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&Le(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i<o&&(o=i)}}else t=null==t&&Ct(n)?r:v.createCallback(t,e,3),Ue(n,function(n,e,r){e=t(n,e,r),e<u&&(u=e,o=n)
43
+ });return o},v.omit=function(n,t,e){var r={};if(typeof t!="function"){var u=[];Ye(n,function(n,t){u.push(t)});for(var u=rt(u,ot(arguments,true,false,1)),o=-1,a=u.length;++o<a;){var i=u[o];r[i]=n[i]}}else t=v.createCallback(t,e,3),Ye(n,function(n,e,u){t(n,e,u)||(r[e]=n)});return r},v.once=function(n){var t,e;if(!wt(n))throw new ie;return function(){return t?e:(t=true,e=n.apply(this,arguments),n=null,e)}},v.pairs=function(n){for(var t=-1,e=qe(n),r=e.length,u=Yt(r);++t<r;){var o=e[t];u[t]=[o,n[o]]}return u
44
+ },v.partial=function(n){return pt(n,16,s(arguments,1))},v.partialRight=function(n){return pt(n,32,null,s(arguments,1))},v.pick=function(n,t,e){var r={};if(typeof t!="function")for(var u=-1,o=ot(arguments,true,false,1),a=jt(n)?o.length:0;++u<a;){var i=o[u];i in n&&(r[i]=n[i])}else t=v.createCallback(t,e,3),Ye(n,function(n,e,u){t(n,e,u)&&(r[e]=n)});return r},v.pluck=ur,v.property=Qt,v.pull=function(n){for(var t=arguments,e=0,r=t.length,u=n?n.length:0;++e<r;)for(var o=-1,a=t[e];++o<u;)n[o]===a&&(Ce.call(n,o--,1),u--);
45
+ return n},v.range=function(n,t,e){n=+n||0,e=typeof e=="number"?e:+e||1,null==t&&(t=n,n=0);var r=-1;t=De(0,ve((t-n)/(e||1)));for(var u=Yt(t);++r<t;)u[r]=n,n+=e;return u},v.reject=function(n,t,e){return t=v.createCallback(t,e,3),St(n,function(n,e,r){return!t(n,e,r)})},v.remove=function(n,t,e){var r=-1,u=n?n.length:0,o=[];for(t=v.createCallback(t,e,3);++r<u;)e=n[r],t(e,r,n)&&(o.push(e),Ce.call(n,r--,1),u--);return o},v.rest=zt,v.shuffle=Ft,v.sortBy=function(n,t,e){var r=-1,o=Le(t),a=n?n.length:0,f=Yt(typeof a=="number"?a:0);
46
+ for(o||(t=v.createCallback(t,e,3)),It(n,function(n,e,u){var a=f[++r]=l();o?a.m=Nt(t,function(t){return n[t]}):(a.m=i())[0]=t(n,e,u),a.n=r,a.o=n}),a=f.length,f.sort(u);a--;)n=f[a],f[a]=n.o,o||c(n.m),p(n);return f},v.tap=function(n,t){return t(n),n},v.throttle=function(n,t,e){var r=true,u=true;if(!wt(n))throw new ie;return false===e?r=false:jt(e)&&(r="leading"in e?e.leading:r,u="trailing"in e?e.trailing:u),H.leading=r,H.maxWait=t,H.trailing=u,Mt(n,t,H)},v.times=function(n,t,e){n=-1<(n=+n)?n:0;var r=-1,u=Yt(n);
47
+ for(t=tt(t,e,1);++r<n;)u[r]=t(r);return u},v.toArray=function(n){return n&&typeof n.length=="number"?Te.unindexedChars&&Ct(n)?n.split(""):s(n):kt(n)},v.transform=function(n,t,e,r){var u=Le(n);if(null==e)if(u)e=[];else{var o=n&&n.constructor;e=nt(o&&o.prototype)}return t&&(t=v.createCallback(t,r,4),(u?Ue:Ze)(n,function(n,r,u){return t(e,n,r,u)})),e},v.union=function(){return ft(ot(arguments,true,true))},v.uniq=Kt,v.values=kt,v.where=St,v.without=function(n){return rt(n,s(arguments,1))},v.wrap=function(n,t){return pt(t,16,[n])
48
+ },v.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var e=arguments[n];if(Le(e)||mt(e))var r=r?ft(rt(r,e).concat(rt(e,r))):e}return r||[]},v.zip=Wt,v.zipObject=Gt,v.collect=Nt,v.drop=zt,v.each=It,v.eachRight=Dt,v.extend=Qe,v.methods=bt,v.object=Gt,v.select=St,v.tail=zt,v.unique=Kt,v.unzip=Wt,Ht(v),v.clone=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=t,t=false),Y(n,t,typeof e=="function"&&tt(e,r,1))},v.cloneDeep=function(n,t,e){return Y(n,true,typeof t=="function"&&tt(t,e,1))},v.contains=Et,v.escape=function(n){return null==n?"":ae(n).replace(He,gt)
49
+ },v.every=Ot,v.find=At,v.findIndex=function(n,t,e){var r=-1,u=n?n.length:0;for(t=v.createCallback(t,e,3);++r<u;)if(t(n[r],r,n))return r;return-1},v.findKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),Ze(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.findLast=function(n,t,e){var r;return t=v.createCallback(t,e,3),Dt(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0}),r},v.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=v.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;
50
+ return-1},v.findLastKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),dt(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.has=function(n,t){return n?_e.call(n,t):false},v.identity=Vt,v.indexOf=Lt,v.isArguments=mt,v.isArray=Le,v.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&ge.call(n)==L||false},v.isDate=function(n){return n&&typeof n=="object"&&ge.call(n)==z||false},v.isElement=function(n){return n&&1===n.nodeType||false},v.isEmpty=function(n){var t=true;if(!n)return t;var e=ge.call(n),r=n.length;
51
+ return e==$||e==M||(Te.argsClass?e==T:mt(n))||e==G&&typeof r=="number"&&wt(n.splice)?!r:(Ze(n,function(){return t=false}),t)},v.isEqual=function(n,t,e,r){return at(n,t,typeof e=="function"&&tt(e,r,2))},v.isFinite=function(n){return Se(n)&&!Ae(parseFloat(n))},v.isFunction=wt,v.isNaN=function(n){return xt(n)&&n!=+n},v.isNull=function(n){return null===n},v.isNumber=xt,v.isObject=jt,v.isPlainObject=nr,v.isRegExp=function(n){return n&&X[typeof n]&&ge.call(n)==J||false},v.isString=Ct,v.isUndefined=function(n){return typeof n=="undefined"
52
+ },v.lastIndexOf=function(n,t,e){var r=n?n.length:0;for(typeof e=="number"&&(r=(0>e?De(0,r+e):Ne(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},v.mixin=Ht,v.noConflict=function(){return e._=se,this},v.noop=Ut,v.now=or,v.parseInt=ar,v.random=function(n,t,e){var r=null==n,u=null==t;return null==e&&(typeof n=="boolean"&&u?(e=n,n=1):u||typeof t!="boolean"||(e=t,u=true)),r&&u&&(t=1),n=+n||0,u?(t=n,n=0):t=+t||0,e||n%1||t%1?(e=Pe(),Ne(n+e*(t-n+parseFloat("1e-"+((e+"").length-1))),t)):lt(n,t)},v.reduce=Pt,v.reduceRight=Rt,v.result=function(n,t){if(n){var e=n[t];
53
+ return wt(e)?n[t]():e}},v.runInContext=g,v.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:qe(n).length},v.some=Tt,v.sortedIndex=qt,v.template=function(n,t,e){var r=v.templateSettings;n=ae(n||""),e=Xe({},e,r);var u,o=Xe({},e.imports,r.imports),r=qe(o),o=kt(o),i=0,l=e.interpolate||N,f="__p+='",l=oe((e.escape||N).source+"|"+l.source+"|"+(l===I?O:N).source+"|"+(e.evaluate||N).source+"|$","g");n.replace(l,function(t,e,r,o,l,c){return r||(r=o),f+=n.slice(i,c).replace(P,a),e&&(f+="'+__e("+e+")+'"),l&&(u=true,f+="';"+l+";\n__p+='"),r&&(f+="'+((__t=("+r+"))==null?'':__t)+'"),i=c+t.length,t
54
+ }),f+="';",l=e=e.variable,l||(e="obj",f="with("+e+"){"+f+"}"),f=(u?f.replace(x,""):f).replace(C,"$1").replace(E,"$1;"),f="function("+e+"){"+(l?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+f+"return __p}";try{var c=te(r,"return "+f).apply(h,o)}catch(p){throw p.source=f,p}return t?c(t):(c.source=f,c)},v.unescape=function(n){return null==n?"":ae(n).replace(Ve,yt)},v.uniqueId=function(n){var t=++m;return ae(null==n?"":n)+t
55
+ },v.all=Ot,v.any=Tt,v.detect=At,v.findWhere=At,v.foldl=Pt,v.foldr=Rt,v.include=Et,v.inject=Pt,Ht(function(){var n={};return Ze(v,function(t,e){v.prototype[e]||(n[e]=t)}),n}(),false),v.first=$t,v.last=function(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[u-1]:h;return s(n,De(0,u-r))},v.sample=function(n,t,e){return n&&typeof n.length!="number"?n=kt(n):Te.unindexedChars&&Ct(n)&&(n=n.split("")),null==t||e?n?n[lt(0,n.length-1)]:h:(n=Ft(n),n.length=Ne(De(0,t),n.length),n)
56
+ },v.take=$t,v.head=$t,Ze(v,function(n,t){var e="sample"!==t;v.prototype[t]||(v.prototype[t]=function(t,r){var u=this.__chain__,o=n(this.__wrapped__,t,r);return u||null!=t&&(!r||e&&typeof t=="function")?new y(o,u):o})}),v.VERSION="2.4.0",v.prototype.chain=function(){return this.__chain__=true,this},v.prototype.toString=function(){return ae(this.__wrapped__)},v.prototype.value=Xt,v.prototype.valueOf=Xt,Ue(["join","pop","shift"],function(n){var t=le[n];v.prototype[n]=function(){var n=this.__chain__,e=t.apply(this.__wrapped__,arguments);
57
+ return n?new y(e,n):e}}),Ue(["push","reverse","sort","unshift"],function(n){var t=le[n];v.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Ue(["concat","slice","splice"],function(n){var t=le[n];v.prototype[n]=function(){return new y(t.apply(this.__wrapped__,arguments),this.__chain__)}}),Te.spliceObjects||Ue(["pop","shift","splice"],function(n){var t=le[n],e="splice"==n;v.prototype[n]=function(){var n=this.__chain__,r=this.__wrapped__,u=t.apply(r,arguments);return 0===r.length&&delete r[0],n||e?new y(u,n):u
58
+ }}),v}var h,v=[],y=[],m=0,d={},b=+new Date+"",_=75,w=40,j=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",x=/\b__p\+='';/g,C=/\b(__p\+=)''\+/g,E=/(__e\(.*?\)|\b__t\))\+'';/g,O=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,S=/\w*$/,A=/^\s*function[ \n\r\t]+\w/,I=/<%=([\s\S]+?)%>/g,D=RegExp("^["+j+"]*0+(?=.$)"),N=/($^)/,B=/\bthis\b/,P=/['\n\r\t\u2028\u2029\\]/g,R="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setTimeout".split(" "),F="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),T="[object Arguments]",$="[object Array]",L="[object Boolean]",z="[object Date]",q="[object Error]",K="[object Function]",W="[object Number]",G="[object Object]",J="[object RegExp]",M="[object String]",V={};
59
+ V[K]=false,V[T]=V[$]=V[L]=V[z]=V[W]=V[G]=V[J]=V[M]=true;var H={leading:false,maxWait:0,trailing:false},U={configurable:false,enumerable:false,value:null,writable:false},Q={a:"",b:null,c:"",d:"",e:"",v:null,g:"",h:null,support:null,i:"",j:false},X={"boolean":false,"function":true,object:true,number:false,string:false,undefined:false},Y={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},Z=X[typeof window]&&window||this,nt=X[typeof exports]&&exports&&!exports.nodeType&&exports,tt=X[typeof module]&&module&&!module.nodeType&&module,et=tt&&tt.exports===nt&&nt,rt=X[typeof global]&&global;
58
60
  !rt||rt.global!==rt&&rt.window!==rt||(Z=rt);var ut=g();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Z._=ut, define(function(){return ut})):nt&&tt?et?(tt.exports=ut)._=ut:nt._=ut:Z._=ut}).call(this);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * Lo-Dash 2.3.0 (Custom Build) <http://lodash.com/>
3
+ * Lo-Dash 2.4.0 (Custom Build) <http://lodash.com/>
4
4
  * Build: `lodash modern -o ./dist/lodash.js`
5
5
  * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
6
6
  * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
@@ -47,7 +47,7 @@
47
47
 
48
48
  /**
49
49
  * Used to match ES6 template delimiters
50
- * http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.6
50
+ * http://people.mozilla.org/~jorendorff/es6-draft.html#sec-literals-string-literals
51
51
  */
52
52
  var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
53
53
 
@@ -76,7 +76,7 @@
76
76
  var contextProps = [
77
77
  'Array', 'Boolean', 'Date', 'Function', 'Math', 'Number', 'Object',
78
78
  'RegExp', 'String', '_', 'attachEvent', 'clearTimeout', 'isFinite', 'isNaN',
79
- 'parseInt', 'setImmediate', 'setTimeout'
79
+ 'parseInt', 'setTimeout'
80
80
  ];
81
81
 
82
82
  /** Used to make template sourceURLs easier to identify */
@@ -256,22 +256,29 @@
256
256
  */
257
257
  function compareAscending(a, b) {
258
258
  var ac = a.criteria,
259
- bc = b.criteria;
259
+ bc = b.criteria,
260
+ index = -1,
261
+ length = ac.length;
260
262
 
261
- // ensure a stable sort in V8 and other engines
262
- // http://code.google.com/p/v8/issues/detail?id=90
263
- if (ac !== bc) {
264
- if (ac > bc || typeof ac == 'undefined') {
265
- return 1;
266
- }
267
- if (ac < bc || typeof bc == 'undefined') {
268
- return -1;
263
+ while (++index < length) {
264
+ var value = ac[index],
265
+ other = bc[index];
266
+
267
+ if (value !== other) {
268
+ if (value > other || typeof value == 'undefined') {
269
+ return 1;
270
+ }
271
+ if (value < other || typeof other == 'undefined') {
272
+ return -1;
273
+ }
269
274
  }
270
275
  }
271
- // The JS engine embedded in Adobe applications like InDesign has a buggy
272
- // `Array#sort` implementation that causes it, under certain circumstances,
273
- // to return the same value for `a` and `b`.
274
- // See https://github.com/jashkenas/underscore/pull/1247
276
+ // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
277
+ // that causes it, under certain circumstances, to return the same value for
278
+ // `a` and `b`. See https://github.com/jashkenas/underscore/pull/1247
279
+ //
280
+ // This also ensures a stable sort in V8 and other engines.
281
+ // See http://code.google.com/p/v8/issues/detail?id=90
275
282
  return a.index - b.index;
276
283
  }
277
284
 
@@ -472,15 +479,10 @@
472
479
  fnToString = Function.prototype.toString,
473
480
  getPrototypeOf = reNative.test(getPrototypeOf = Object.getPrototypeOf) && getPrototypeOf,
474
481
  hasOwnProperty = objectProto.hasOwnProperty,
475
- now = reNative.test(now = Date.now) && now || function() { return +new Date; },
476
482
  push = arrayRef.push,
477
483
  setTimeout = context.setTimeout,
478
484
  splice = arrayRef.splice;
479
485
 
480
- /** Used to detect `setImmediate` in Node.js */
481
- var setImmediate = typeof (setImmediate = freeGlobal && moduleExports && freeGlobal.setImmediate) == 'function' &&
482
- !reNative.test(setImmediate) && setImmediate;
483
-
484
486
  /** Used to set meta data on functions */
485
487
  var defineProperty = (function() {
486
488
  // IE 8 only accepts DOM elements
@@ -2144,22 +2146,22 @@
2144
2146
  }
2145
2147
 
2146
2148
  /**
2147
- * Checks if the specified object `property` exists and is a direct property,
2149
+ * Checks if the specified property name exists as a direct property of `object`,
2148
2150
  * instead of an inherited property.
2149
2151
  *
2150
2152
  * @static
2151
2153
  * @memberOf _
2152
2154
  * @category Objects
2153
- * @param {Object} object The object to check.
2154
- * @param {string} property The property to check for.
2155
+ * @param {Object} object The object to inspect.
2156
+ * @param {string} key The name of the property to check.
2155
2157
  * @returns {boolean} Returns `true` if key is a direct property, else `false`.
2156
2158
  * @example
2157
2159
  *
2158
2160
  * _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b');
2159
2161
  * // => true
2160
2162
  */
2161
- function has(object, property) {
2162
- return object ? hasOwnProperty.call(object, property) : false;
2163
+ function has(object, key) {
2164
+ return object ? hasOwnProperty.call(object, key) : false;
2163
2165
  }
2164
2166
 
2165
2167
  /**
@@ -2172,7 +2174,7 @@
2172
2174
  * @returns {Object} Returns the created inverted object.
2173
2175
  * @example
2174
2176
  *
2175
- * _.invert({ 'first': 'fred', 'second': 'barney' });
2177
+ * _.invert({ 'first': 'fred', 'second': 'barney' });
2176
2178
  * // => { 'fred': 'first', 'barney': 'second' }
2177
2179
  */
2178
2180
  function invert(object) {
@@ -2557,6 +2559,52 @@
2557
2559
  return typeof value == 'undefined';
2558
2560
  }
2559
2561
 
2562
+ /**
2563
+ * Creates an object with the same keys as `object` and values generated by
2564
+ * running each own enumerable property of `object` through the callback.
2565
+ * The callback is bound to `thisArg` and invoked with three arguments;
2566
+ * (value, key, object).
2567
+ *
2568
+ * If a property name is provided for `callback` the created "_.pluck" style
2569
+ * callback will return the property value of the given element.
2570
+ *
2571
+ * If an object is provided for `callback` the created "_.where" style callback
2572
+ * will return `true` for elements that have the properties of the given object,
2573
+ * else `false`.
2574
+ *
2575
+ * @static
2576
+ * @memberOf _
2577
+ * @category Objects
2578
+ * @param {Object} object The object to iterate over.
2579
+ * @param {Function|Object|string} [callback=identity] The function called
2580
+ * per iteration. If a property name or object is provided it will be used
2581
+ * to create a "_.pluck" or "_.where" style callback, respectively.
2582
+ * @param {*} [thisArg] The `this` binding of `callback`.
2583
+ * @returns {Array} Returns a new object with values of the results of each `callback` execution.
2584
+ * @example
2585
+ *
2586
+ * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });
2587
+ * // => { 'a': 3, 'b': 6, 'c': 9 }
2588
+ *
2589
+ * var characters = {
2590
+ * 'fred': { 'name': 'fred', 'age': 40 },
2591
+ * 'pebbles': { 'name': 'pebbles', 'age': 1 }
2592
+ * };
2593
+ *
2594
+ * // using "_.pluck" callback shorthand
2595
+ * _.mapValues(characters, 'age');
2596
+ * // => { 'fred': 40, 'pebbles': 1 }
2597
+ */
2598
+ function mapValues(object, callback, thisArg) {
2599
+ var result = {};
2600
+ callback = lodash.createCallback(callback, thisArg, 3);
2601
+
2602
+ forOwn(object, function(value, key, object) {
2603
+ result[key] = callback(value, key, object);
2604
+ });
2605
+ return result;
2606
+ }
2607
+
2560
2608
  /**
2561
2609
  * Recursively merges own enumerable properties of the source object(s), that
2562
2610
  * don't resolve to `undefined` into the destination object. Subsequent sources
@@ -2615,7 +2663,6 @@
2615
2663
  if (!isObject(object)) {
2616
2664
  return object;
2617
2665
  }
2618
-
2619
2666
  // allows working with `_.reduce` and `_.reduceRight` without using
2620
2667
  // their `index` and `collection` arguments
2621
2668
  if (typeof args[2] != 'number') {
@@ -2772,11 +2819,11 @@
2772
2819
 
2773
2820
  /**
2774
2821
  * An alternative to `_.reduce` this method transforms `object` to a new
2775
- * `accumulator` object which is the result of running each of its elements
2776
- * through a callback, with each callback execution potentially mutating
2777
- * the `accumulator` object. The callback is bound to `thisArg` and invoked
2778
- * with four arguments; (accumulator, value, key, object). Callbacks may exit
2779
- * iteration early by explicitly returning `false`.
2822
+ * `accumulator` object which is the result of running each of its own
2823
+ * enumerable properties through a callback, with each callback execution
2824
+ * potentially mutating the `accumulator` object. The callback is bound to
2825
+ * `thisArg` and invoked with four arguments; (accumulator, value, key, object).
2826
+ * Callbacks may exit iteration early by explicitly returning `false`.
2780
2827
  *
2781
2828
  * @static
2782
2829
  * @memberOf _
@@ -3608,7 +3655,7 @@
3608
3655
  * @type Function
3609
3656
  * @category Collections
3610
3657
  * @param {Array|Object|string} collection The collection to iterate over.
3611
- * @param {string} property The property to pluck.
3658
+ * @param {string} property The name of the property to pluck.
3612
3659
  * @returns {Array} Returns a new array of property values.
3613
3660
  * @example
3614
3661
  *
@@ -3620,18 +3667,7 @@
3620
3667
  * _.pluck(characters, 'name');
3621
3668
  * // => ['barney', 'fred']
3622
3669
  */
3623
- function pluck(collection, property) {
3624
- var index = -1,
3625
- length = collection ? collection.length : 0;
3626
-
3627
- if (typeof length == 'number') {
3628
- var result = Array(length);
3629
- while (++index < length) {
3630
- result[index] = collection[index][property];
3631
- }
3632
- }
3633
- return result || map(collection, property);
3634
- }
3670
+ var pluck = map;
3635
3671
 
3636
3672
  /**
3637
3673
  * Reduces a collection to a value which is the accumulated result of running
@@ -3839,7 +3875,7 @@
3839
3875
  * // => 3
3840
3876
  *
3841
3877
  * _.size('pebbles');
3842
- * // => 5
3878
+ * // => 7
3843
3879
  */
3844
3880
  function size(collection) {
3845
3881
  var length = collection ? collection.length : 0;
@@ -3919,6 +3955,9 @@
3919
3955
  * If a property name is provided for `callback` the created "_.pluck" style
3920
3956
  * callback will return the property value of the given element.
3921
3957
  *
3958
+ * If an array of property names is provided for `callback` the collection
3959
+ * will be sorted by each property value.
3960
+ *
3922
3961
  * If an object is provided for `callback` the created "_.where" style callback
3923
3962
  * will return `true` for elements that have the properties of the given object,
3924
3963
  * else `false`.
@@ -3927,7 +3966,7 @@
3927
3966
  * @memberOf _
3928
3967
  * @category Collections
3929
3968
  * @param {Array|Object|string} collection The collection to iterate over.
3930
- * @param {Function|Object|string} [callback=identity] The function called
3969
+ * @param {Array|Function|Object|string} [callback=identity] The function called
3931
3970
  * per iteration. If a property name or object is provided it will be used
3932
3971
  * to create a "_.pluck" or "_.where" style callback, respectively.
3933
3972
  * @param {*} [thisArg] The `this` binding of `callback`.
@@ -3940,19 +3979,37 @@
3940
3979
  * _.sortBy([1, 2, 3], function(num) { return this.sin(num); }, Math);
3941
3980
  * // => [3, 1, 2]
3942
3981
  *
3982
+ * var characters = [
3983
+ * { 'name': 'barney', 'age': 36 },
3984
+ * { 'name': 'fred', 'age': 40 },
3985
+ * { 'name': 'barney', 'age': 26 },
3986
+ * { 'name': 'fred', 'age': 30 }
3987
+ * ];
3988
+ *
3943
3989
  * // using "_.pluck" callback shorthand
3944
- * _.sortBy(['banana', 'strawberry', 'apple'], 'length');
3945
- * // => ['apple', 'banana', 'strawberry']
3990
+ * _.map(_.sortBy(characters, 'age'), _.values);
3991
+ * // => [['barney', 26], ['fred', 30], ['barney', 36], ['fred', 40]]
3992
+ *
3993
+ * // sorting by multiple properties
3994
+ * _.map(_.sortBy(characters, ['name', 'age']), _.values);
3995
+ * // = > [['barney', 26], ['barney', 36], ['fred', 30], ['fred', 40]]
3946
3996
  */
3947
3997
  function sortBy(collection, callback, thisArg) {
3948
3998
  var index = -1,
3999
+ isArr = isArray(callback),
3949
4000
  length = collection ? collection.length : 0,
3950
4001
  result = Array(typeof length == 'number' ? length : 0);
3951
4002
 
3952
- callback = lodash.createCallback(callback, thisArg, 3);
4003
+ if (!isArr) {
4004
+ callback = lodash.createCallback(callback, thisArg, 3);
4005
+ }
3953
4006
  forEach(collection, function(value, key, collection) {
3954
4007
  var object = result[++index] = getObject();
3955
- object.criteria = callback(value, key, collection);
4008
+ if (isArr) {
4009
+ object.criteria = map(callback, function(key) { return value[key]; });
4010
+ } else {
4011
+ (object.criteria = getArray())[0] = callback(value, key, collection);
4012
+ }
3956
4013
  object.index = index;
3957
4014
  object.value = value;
3958
4015
  });
@@ -3962,6 +4019,9 @@
3962
4019
  while (length--) {
3963
4020
  var object = result[length];
3964
4021
  result[length] = object.value;
4022
+ if (!isArr) {
4023
+ releaseArray(object.criteria);
4024
+ }
3965
4025
  releaseObject(object);
3966
4026
  }
3967
4027
  return result;
@@ -3997,7 +4057,7 @@
3997
4057
  * @type Function
3998
4058
  * @category Collections
3999
4059
  * @param {Array|Object|string} collection The collection to iterate over.
4000
- * @param {Object} properties The object of property values to filter by.
4060
+ * @param {Object} props The object of property values to filter by.
4001
4061
  * @returns {Array} Returns a new array of elements that have the given properties.
4002
4062
  * @example
4003
4063
  *
@@ -4402,29 +4462,34 @@
4402
4462
  * @memberOf _
4403
4463
  * @category Arrays
4404
4464
  * @param {...Array} [array] The arrays to inspect.
4405
- * @returns {Array} Returns an array of composite values.
4465
+ * @returns {Array} Returns an array of shared values.
4406
4466
  * @example
4407
4467
  *
4408
- * _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
4468
+ * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);
4409
4469
  * // => [1, 2]
4410
4470
  */
4411
- function intersection(array) {
4412
- var args = arguments,
4413
- argsLength = args.length,
4471
+ function intersection() {
4472
+ var args = [],
4414
4473
  argsIndex = -1,
4474
+ argsLength = arguments.length,
4415
4475
  caches = getArray(),
4416
- index = -1,
4417
4476
  indexOf = getIndexOf(),
4418
- length = array ? array.length : 0,
4419
- result = [],
4477
+ trustIndexOf = indexOf === baseIndexOf,
4420
4478
  seen = getArray();
4421
4479
 
4422
4480
  while (++argsIndex < argsLength) {
4423
- var value = args[argsIndex];
4424
- caches[argsIndex] = indexOf === baseIndexOf &&
4425
- (value ? value.length : 0) >= largeArraySize &&
4426
- createCache(argsIndex ? args[argsIndex] : seen);
4481
+ var value = arguments[argsIndex];
4482
+ if (isArray(value) || isArguments(value)) {
4483
+ args.push(value);
4484
+ caches.push(trustIndexOf && value.length >= largeArraySize &&
4485
+ createCache(argsIndex ? args[argsIndex] : seen));
4486
+ }
4427
4487
  }
4488
+ var array = args[0],
4489
+ index = -1,
4490
+ length = array ? array.length : 0,
4491
+ result = [];
4492
+
4428
4493
  outer:
4429
4494
  while (++index < length) {
4430
4495
  var cache = caches[0];
@@ -4841,13 +4906,13 @@
4841
4906
  * @memberOf _
4842
4907
  * @category Arrays
4843
4908
  * @param {...Array} [array] The arrays to inspect.
4844
- * @returns {Array} Returns an array of composite values.
4909
+ * @returns {Array} Returns an array of combined values.
4845
4910
  * @example
4846
4911
  *
4847
- * _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
4848
- * // => [1, 2, 3, 101, 10]
4912
+ * _.union([1, 2, 3], [5, 2, 1, 4], [2, 1]);
4913
+ * // => [1, 2, 3, 5, 4]
4849
4914
  */
4850
- function union(array) {
4915
+ function union() {
4851
4916
  return baseUniq(baseFlatten(arguments, true, true));
4852
4917
  }
4853
4918
 
@@ -4927,6 +4992,38 @@
4927
4992
  return baseDifference(array, slice(arguments, 1));
4928
4993
  }
4929
4994
 
4995
+ /**
4996
+ * Creates an array that is the smymetric difference of the provided arrays.
4997
+ * See http://en.wikipedia.org/wiki/Symmetric_difference.
4998
+ *
4999
+ * @static
5000
+ * @memberOf _
5001
+ * @category Arrays
5002
+ * @param {...Array} [array] The arrays to inspect.
5003
+ * @returns {Array} Returns an array of values.
5004
+ * @example
5005
+ *
5006
+ * _.xor([1, 2, 3], [5, 2, 1, 4]);
5007
+ * // => [3, 5, 4]
5008
+ *
5009
+ * _.xor([1, 2, 5], [2, 3, 5], [3, 4, 5]);
5010
+ * // => [1, 4, 5]
5011
+ */
5012
+ function xor() {
5013
+ var index = -1,
5014
+ length = arguments.length;
5015
+
5016
+ while (++index < length) {
5017
+ var array = arguments[index];
5018
+ if (isArray(array) || isArguments(array)) {
5019
+ var result = result
5020
+ ? baseUniq(baseDifference(result, array).concat(baseDifference(array, result)))
5021
+ : array;
5022
+ }
5023
+ }
5024
+ return result || [];
5025
+ }
5026
+
4930
5027
  /**
4931
5028
  * Creates an array of grouped elements, the first of which contains the first
4932
5029
  * elements of the given arrays, the second of which contains the second
@@ -4978,6 +5075,9 @@
4978
5075
  length = keys ? keys.length : 0,
4979
5076
  result = {};
4980
5077
 
5078
+ if (!values && length && !isArray(keys[0])) {
5079
+ values = [];
5080
+ }
4981
5081
  while (++index < length) {
4982
5082
  var key = keys[index];
4983
5083
  if (values) {
@@ -5070,8 +5170,8 @@
5070
5170
  * @example
5071
5171
  *
5072
5172
  * var view = {
5073
- * 'label': 'docs',
5074
- * 'onClick': function() { console.log('clicked ' + this.label); }
5173
+ * 'label': 'docs',
5174
+ * 'onClick': function() { console.log('clicked ' + this.label); }
5075
5175
  * };
5076
5176
  *
5077
5177
  * _.bindAll(view);
@@ -5180,74 +5280,6 @@
5180
5280
  };
5181
5281
  }
5182
5282
 
5183
- /**
5184
- * Produces a callback bound to an optional `thisArg`. If `func` is a property
5185
- * name the created callback will return the property value for a given element.
5186
- * If `func` is an object the created callback will return `true` for elements
5187
- * that contain the equivalent object properties, otherwise it will return `false`.
5188
- *
5189
- * @static
5190
- * @memberOf _
5191
- * @category Functions
5192
- * @param {*} [func=identity] The value to convert to a callback.
5193
- * @param {*} [thisArg] The `this` binding of the created callback.
5194
- * @param {number} [argCount] The number of arguments the callback accepts.
5195
- * @returns {Function} Returns a callback function.
5196
- * @example
5197
- *
5198
- * var characters = [
5199
- * { 'name': 'barney', 'age': 36 },
5200
- * { 'name': 'fred', 'age': 40 }
5201
- * ];
5202
- *
5203
- * // wrap to create custom callback shorthands
5204
- * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
5205
- * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
5206
- * return !match ? func(callback, thisArg) : function(object) {
5207
- * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
5208
- * };
5209
- * });
5210
- *
5211
- * _.filter(characters, 'age__gt38');
5212
- * // => [{ 'name': 'fred', 'age': 40 }]
5213
- */
5214
- function createCallback(func, thisArg, argCount) {
5215
- var type = typeof func;
5216
- if (func == null || type == 'function') {
5217
- return baseCreateCallback(func, thisArg, argCount);
5218
- }
5219
- // handle "_.pluck" style callback shorthands
5220
- if (type != 'object') {
5221
- return function(object) {
5222
- return object[func];
5223
- };
5224
- }
5225
- var props = keys(func),
5226
- key = props[0],
5227
- a = func[key];
5228
-
5229
- // handle "_.where" style callback shorthands
5230
- if (props.length == 1 && a === a && !isObject(a)) {
5231
- // fast path the common case of providing an object with a single
5232
- // property containing a primitive value
5233
- return function(object) {
5234
- var b = object[key];
5235
- return a === b && (a !== 0 || (1 / a == 1 / b));
5236
- };
5237
- }
5238
- return function(object) {
5239
- var length = props.length,
5240
- result = false;
5241
-
5242
- while (length--) {
5243
- if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
5244
- break;
5245
- }
5246
- }
5247
- return result;
5248
- };
5249
- }
5250
-
5251
5283
  /**
5252
5284
  * Creates a function which accepts one or more arguments of `func` that when
5253
5285
  * invoked either executes `func` returning its result, if all `func` arguments
@@ -5433,8 +5465,8 @@
5433
5465
  * @returns {number} Returns the timer id.
5434
5466
  * @example
5435
5467
  *
5436
- * _.defer(function() { console.log('deferred'); });
5437
- * // returns from the function before 'deferred' is logged
5468
+ * _.defer(function(text) { console.log(text); }, 'deferred');
5469
+ * // logs 'deferred' after one or more milliseconds
5438
5470
  */
5439
5471
  function defer(func) {
5440
5472
  if (!isFunction(func)) {
@@ -5443,15 +5475,6 @@
5443
5475
  var args = slice(arguments, 1);
5444
5476
  return setTimeout(function() { func.apply(undefined, args); }, 1);
5445
5477
  }
5446
- // use `setImmediate` if available in Node.js
5447
- if (setImmediate) {
5448
- defer = function(func) {
5449
- if (!isFunction(func)) {
5450
- throw new TypeError;
5451
- }
5452
- return setImmediate.apply(context, arguments);
5453
- };
5454
- }
5455
5478
 
5456
5479
  /**
5457
5480
  * Executes the `func` function after `wait` milliseconds. Additional arguments
@@ -5466,9 +5489,8 @@
5466
5489
  * @returns {number} Returns the timer id.
5467
5490
  * @example
5468
5491
  *
5469
- * var log = _.bind(console.log, console);
5470
- * _.delay(log, 1000, 'logged later');
5471
- * // => 'logged later' (Appears after one second.)
5492
+ * _.delay(function(text) { console.log(text); }, 1000, 'later');
5493
+ * // => logs 'later' after one second
5472
5494
  */
5473
5495
  function delay(func, wait) {
5474
5496
  if (!isFunction(func)) {
@@ -5699,6 +5721,93 @@
5699
5721
 
5700
5722
  /*--------------------------------------------------------------------------*/
5701
5723
 
5724
+ /**
5725
+ * Creates a function that returns `value`.
5726
+ *
5727
+ * @static
5728
+ * @memberOf _
5729
+ * @category Utilities
5730
+ * @param {*} value The value to return from the new function.
5731
+ * @returns {Function} Returns the new function.
5732
+ * @example
5733
+ *
5734
+ * var object = { 'name': 'fred' };
5735
+ * var getter = _.constant(object);
5736
+ * getter() === object;
5737
+ * // => true
5738
+ */
5739
+ function constant(value) {
5740
+ return function() {
5741
+ return value;
5742
+ };
5743
+ }
5744
+
5745
+ /**
5746
+ * Produces a callback bound to an optional `thisArg`. If `func` is a property
5747
+ * name the created callback will return the property value for a given element.
5748
+ * If `func` is an object the created callback will return `true` for elements
5749
+ * that contain the equivalent object properties, otherwise it will return `false`.
5750
+ *
5751
+ * @static
5752
+ * @memberOf _
5753
+ * @category Utilities
5754
+ * @param {*} [func=identity] The value to convert to a callback.
5755
+ * @param {*} [thisArg] The `this` binding of the created callback.
5756
+ * @param {number} [argCount] The number of arguments the callback accepts.
5757
+ * @returns {Function} Returns a callback function.
5758
+ * @example
5759
+ *
5760
+ * var characters = [
5761
+ * { 'name': 'barney', 'age': 36 },
5762
+ * { 'name': 'fred', 'age': 40 }
5763
+ * ];
5764
+ *
5765
+ * // wrap to create custom callback shorthands
5766
+ * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
5767
+ * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
5768
+ * return !match ? func(callback, thisArg) : function(object) {
5769
+ * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
5770
+ * };
5771
+ * });
5772
+ *
5773
+ * _.filter(characters, 'age__gt38');
5774
+ * // => [{ 'name': 'fred', 'age': 40 }]
5775
+ */
5776
+ function createCallback(func, thisArg, argCount) {
5777
+ var type = typeof func;
5778
+ if (func == null || type == 'function') {
5779
+ return baseCreateCallback(func, thisArg, argCount);
5780
+ }
5781
+ // handle "_.pluck" style callback shorthands
5782
+ if (type != 'object') {
5783
+ return property(func);
5784
+ }
5785
+ var props = keys(func),
5786
+ key = props[0],
5787
+ a = func[key];
5788
+
5789
+ // handle "_.where" style callback shorthands
5790
+ if (props.length == 1 && a === a && !isObject(a)) {
5791
+ // fast path the common case of providing an object with a single
5792
+ // property containing a primitive value
5793
+ return function(object) {
5794
+ var b = object[key];
5795
+ return a === b && (a !== 0 || (1 / a == 1 / b));
5796
+ };
5797
+ }
5798
+ return function(object) {
5799
+ var length = props.length,
5800
+ result = false;
5801
+
5802
+ while (length--) {
5803
+ if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
5804
+ break;
5805
+ }
5806
+ }
5807
+ return result;
5808
+ };
5809
+ }
5810
+
5702
5811
  /**
5703
5812
  * Converts the characters `&`, `<`, `>`, `"`, and `'` in `string` to their
5704
5813
  * corresponding HTML entities.
@@ -5736,51 +5845,71 @@
5736
5845
  }
5737
5846
 
5738
5847
  /**
5739
- * Adds function properties of a source object to the `lodash` function and
5740
- * chainable wrapper.
5848
+ * Adds function properties of a source object to the destination object.
5849
+ * If `object` is a function methods will be added to its prototype as well.
5741
5850
  *
5742
5851
  * @static
5743
5852
  * @memberOf _
5744
5853
  * @category Utilities
5745
- * @param {Object} object The object of function properties to add to `lodash`.
5746
- * @param {Object} object The object of function properties to add to `lodash`.
5854
+ * @param {Function|Object} [object=lodash] object The destination object.
5855
+ * @param {Object} source The object of functions to add.
5856
+ * @param {Object} [options] The options object.
5857
+ * @param {boolean} [options.chain=true] Specify whether the functions added are chainable.
5747
5858
  * @example
5748
5859
  *
5749
- * _.mixin({
5750
- * 'capitalize': function(string) {
5751
- * return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
5752
- * }
5753
- * });
5860
+ * function capitalize(string) {
5861
+ * return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
5862
+ * }
5754
5863
  *
5864
+ * _.mixin({ 'capitalize': capitalize });
5755
5865
  * _.capitalize('fred');
5756
5866
  * // => 'Fred'
5757
5867
  *
5868
+ * _('fred').capitalize().value();
5869
+ * // => 'Fred'
5870
+ *
5871
+ * _.mixin({ 'capitalize': capitalize }, { 'chain': false });
5758
5872
  * _('fred').capitalize();
5759
5873
  * // => 'Fred'
5760
5874
  */
5761
- function mixin(object, source) {
5762
- var ctor = object,
5763
- isFunc = !source || isFunction(ctor);
5875
+ function mixin(object, source, options) {
5876
+ var chain = true,
5877
+ methodNames = source && functions(source);
5764
5878
 
5765
- if (!source) {
5879
+ if (!source || (!options && !methodNames.length)) {
5880
+ if (options == null) {
5881
+ options = source;
5882
+ }
5766
5883
  ctor = lodashWrapper;
5767
5884
  source = object;
5768
5885
  object = lodash;
5886
+ methodNames = functions(source);
5769
5887
  }
5770
- forEach(functions(source), function(methodName) {
5888
+ if (options === false) {
5889
+ chain = false;
5890
+ } else if (isObject(options) && 'chain' in options) {
5891
+ chain = options.chain;
5892
+ }
5893
+ var ctor = object,
5894
+ isFunc = isFunction(ctor);
5895
+
5896
+ forEach(methodNames, function(methodName) {
5771
5897
  var func = object[methodName] = source[methodName];
5772
5898
  if (isFunc) {
5773
5899
  ctor.prototype[methodName] = function() {
5774
- var value = this.__wrapped__,
5900
+ var chainAll = this.__chain__,
5901
+ value = this.__wrapped__,
5775
5902
  args = [value];
5776
5903
 
5777
5904
  push.apply(args, arguments);
5778
5905
  var result = func.apply(object, args);
5779
- if (value && typeof value == 'object' && value === result) {
5780
- return this;
5906
+ if (chain || chainAll) {
5907
+ if (value === result && isObject(result)) {
5908
+ return this;
5909
+ }
5910
+ result = new ctor(result);
5911
+ result.__chain__ = chainAll;
5781
5912
  }
5782
- result = new ctor(result);
5783
- result.__chain__ = this.__chain__;
5784
5913
  return result;
5785
5914
  };
5786
5915
  }
@@ -5820,6 +5949,23 @@
5820
5949
  // no operation performed
5821
5950
  }
5822
5951
 
5952
+ /**
5953
+ * Gets the number of milliseconds that have elapsed since the Unix epoch
5954
+ * (1 January 1970 00:00:00 UTC).
5955
+ *
5956
+ * @static
5957
+ * @memberOf _
5958
+ * @category Utilities
5959
+ * @example
5960
+ *
5961
+ * var stamp = _.now();
5962
+ * _.defer(function() { console.log(_.now() - stamp); });
5963
+ * // => logs the number of milliseconds it took for the deferred function to be called
5964
+ */
5965
+ var now = reNative.test(now = Date.now) && now || function() {
5966
+ return new Date().getTime();
5967
+ };
5968
+
5823
5969
  /**
5824
5970
  * Converts the given value into an integer of the specified radix.
5825
5971
  * If `radix` is `undefined` or `0` a `radix` of `10` is used unless the
@@ -5844,6 +5990,36 @@
5844
5990
  return nativeParseInt(isString(value) ? value.replace(reLeadingSpacesAndZeros, '') : value, radix || 0);
5845
5991
  };
5846
5992
 
5993
+ /**
5994
+ * Creates a "_.pluck" style function, which returns the `key` value of a
5995
+ * given object.
5996
+ *
5997
+ * @static
5998
+ * @memberOf _
5999
+ * @category Utilities
6000
+ * @param {string} key The name of the property to retrieve.
6001
+ * @returns {Function} Returns the new function.
6002
+ * @example
6003
+ *
6004
+ * var characters = [
6005
+ * { 'name': 'fred', 'age': 40 },
6006
+ * { 'name': 'barney', 'age': 36 }
6007
+ * ];
6008
+ *
6009
+ * var getName = _.property('name');
6010
+ *
6011
+ * _.map(characters, getName);
6012
+ * // => ['barney', 'fred']
6013
+ *
6014
+ * _.sortBy(characters, getName);
6015
+ * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]
6016
+ */
6017
+ function property(key) {
6018
+ return function(object) {
6019
+ return object[key];
6020
+ };
6021
+ }
6022
+
5847
6023
  /**
5848
6024
  * Produces a random number between `min` and `max` (inclusive). If only one
5849
6025
  * argument is provided a number between `0` and the given number will be
@@ -5903,7 +6079,7 @@
5903
6079
  }
5904
6080
 
5905
6081
  /**
5906
- * Resolves the value of `property` on `object`. If `property` is a function
6082
+ * Resolves the value of property `key` on `object`. If `key` is a function
5907
6083
  * it will be invoked with the `this` binding of `object` and its result returned,
5908
6084
  * else the property value is returned. If `object` is falsey then `undefined`
5909
6085
  * is returned.
@@ -5912,7 +6088,7 @@
5912
6088
  * @memberOf _
5913
6089
  * @category Utilities
5914
6090
  * @param {Object} object The object to inspect.
5915
- * @param {string} property The property to get the value of.
6091
+ * @param {string} key The name of the property to resolve.
5916
6092
  * @returns {*} Returns the resolved value.
5917
6093
  * @example
5918
6094
  *
@@ -5929,10 +6105,10 @@
5929
6105
  * _.result(object, 'stuff');
5930
6106
  * // => 'nonsense'
5931
6107
  */
5932
- function result(object, property) {
6108
+ function result(object, key) {
5933
6109
  if (object) {
5934
- var value = object[property];
5935
- return isFunction(value) ? object[property]() : value;
6110
+ var value = object[key];
6111
+ return isFunction(value) ? object[key]() : value;
5936
6112
  }
5937
6113
  }
5938
6114
 
@@ -5996,8 +6172,8 @@
5996
6172
  * // => 'hello mustache!'
5997
6173
  *
5998
6174
  * // using the `imports` option to import jQuery
5999
- * var list = '<% $.each(people, function(name) { %><li><%- name %></li><% }); %>';
6000
- * _.template(list, { 'people': ['fred', 'barney'] }, { 'imports': { '$': jQuery } });
6175
+ * var list = '<% jq.each(people, function(name) { %><li><%- name %></li><% }); %>';
6176
+ * _.template(list, { 'people': ['fred', 'barney'] }, { 'imports': { 'jq': jQuery } });
6001
6177
  * // => '<li>fred</li><li>barney</li>'
6002
6178
  *
6003
6179
  * // using the `sourceURL` option to specify a custom sourceURL for the template
@@ -6276,7 +6452,7 @@
6276
6452
  * _(characters).chain()
6277
6453
  * .first()
6278
6454
  * .pick('age')
6279
- * .value()
6455
+ * .value();
6280
6456
  * // => { 'age': 36 }
6281
6457
  */
6282
6458
  function wrapperChain() {
@@ -6329,6 +6505,7 @@
6329
6505
  lodash.chain = chain;
6330
6506
  lodash.compact = compact;
6331
6507
  lodash.compose = compose;
6508
+ lodash.constant = constant;
6332
6509
  lodash.countBy = countBy;
6333
6510
  lodash.create = create;
6334
6511
  lodash.createCallback = createCallback;
@@ -6355,6 +6532,7 @@
6355
6532
  lodash.invoke = invoke;
6356
6533
  lodash.keys = keys;
6357
6534
  lodash.map = map;
6535
+ lodash.mapValues = mapValues;
6358
6536
  lodash.max = max;
6359
6537
  lodash.memoize = memoize;
6360
6538
  lodash.merge = merge;
@@ -6366,6 +6544,7 @@
6366
6544
  lodash.partialRight = partialRight;
6367
6545
  lodash.pick = pick;
6368
6546
  lodash.pluck = pluck;
6547
+ lodash.property = property;
6369
6548
  lodash.pull = pull;
6370
6549
  lodash.range = range;
6371
6550
  lodash.reject = reject;
@@ -6384,6 +6563,7 @@
6384
6563
  lodash.where = where;
6385
6564
  lodash.without = without;
6386
6565
  lodash.wrap = wrap;
6566
+ lodash.xor = xor;
6387
6567
  lodash.zip = zip;
6388
6568
  lodash.zipObject = zipObject;
6389
6569
 
@@ -6441,6 +6621,7 @@
6441
6621
  lodash.mixin = mixin;
6442
6622
  lodash.noConflict = noConflict;
6443
6623
  lodash.noop = noop;
6624
+ lodash.now = now;
6444
6625
  lodash.parseInt = parseInt;
6445
6626
  lodash.random = random;
6446
6627
  lodash.reduce = reduce;
@@ -6464,20 +6645,15 @@
6464
6645
  lodash.include = contains;
6465
6646
  lodash.inject = reduce;
6466
6647
 
6467
- forOwn(lodash, function(func, methodName) {
6468
- if (!lodash.prototype[methodName]) {
6469
- lodash.prototype[methodName] = function() {
6470
- var args = [this.__wrapped__],
6471
- chainAll = this.__chain__;
6472
-
6473
- push.apply(args, arguments);
6474
- var result = func.apply(lodash, args);
6475
- return chainAll
6476
- ? new lodashWrapper(result, chainAll)
6477
- : result;
6478
- };
6479
- }
6480
- });
6648
+ mixin(function() {
6649
+ var source = {}
6650
+ forOwn(lodash, function(func, methodName) {
6651
+ if (!lodash.prototype[methodName]) {
6652
+ source[methodName] = func;
6653
+ }
6654
+ });
6655
+ return source;
6656
+ }(), false);
6481
6657
 
6482
6658
  /*--------------------------------------------------------------------------*/
6483
6659
 
@@ -6513,7 +6689,7 @@
6513
6689
  * @memberOf _
6514
6690
  * @type string
6515
6691
  */
6516
- lodash.VERSION = '2.3.0';
6692
+ lodash.VERSION = '2.4.0';
6517
6693
 
6518
6694
  // add "Chaining" functions to the wrapper
6519
6695
  lodash.prototype.chain = wrapperChain;
@@ -6534,7 +6710,7 @@
6534
6710
  };
6535
6711
  });
6536
6712
 
6537
- // add `Array` functions that return the wrapped value
6713
+ // add `Array` functions that return the existing wrapped value
6538
6714
  forEach(['push', 'reverse', 'sort', 'unshift'], function(methodName) {
6539
6715
  var func = arrayRef[methodName];
6540
6716
  lodash.prototype[methodName] = function() {
@@ -6562,9 +6738,8 @@
6562
6738
  // some AMD build optimizers like r.js check for condition patterns like the following:
6563
6739
  if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
6564
6740
  // Expose Lo-Dash to the global object even when an AMD loader is present in
6565
- // case Lo-Dash was injected by a third-party script and not intended to be
6566
- // loaded as a module. The global assignment can be reverted in the Lo-Dash
6567
- // module by its `noConflict()` method.
6741
+ // case Lo-Dash is loaded with a RequireJS shim config.
6742
+ // See http://requirejs.org/docs/api.html#config-shim
6568
6743
  root._ = _;
6569
6744
 
6570
6745
  // define as an anonymous module so, through path mapping, it can be