Reduce the lodash underscore build.

Former-commit-id: 2f928d053faf4b8e45d5ef26e2697c25426b7a90
This commit is contained in:
John-David Dalton
2013-03-23 23:46:40 -07:00
parent bbfd8aa249
commit 74c46f6e93
3 changed files with 47 additions and 99 deletions

View File

@@ -2426,6 +2426,11 @@
});
});
// replace `slice` with `slice.call`
source = removeFunction(source, 'slice');
source = source.replace(/^(( *)setTimeout = context.setTimeout)([,;])/m, '$1,\n$2slice = arrayRef.slice$3');
source = source.replace(/([^.]\bslice)\(/g, '$1.call(');
// replace `lodash.createCallback` references with `createCallback`
if (!exposeCreateCallback) {
source = source.replace(/\blodash\.(createCallback\()\b/g, '$1');
@@ -2795,6 +2800,7 @@
source = removeVar(source, 'nativeIsArray');
}
if (isRemoved(source, 'isPlainObject')) {
source = removeFunction(source, 'shimIsPlainObject');
source = removeVar(source, 'getPrototypeOf');
source = removeSupportOwnLast(source);
}

View File

@@ -118,6 +118,7 @@
hasOwnProperty = objectRef.hasOwnProperty,
push = arrayRef.push,
setTimeout = window.setTimeout,
slice = arrayRef.slice,
toString = objectRef.toString;
/* Native method shortcuts for methods with the same name as other `lodash` methods */
@@ -353,7 +354,7 @@
}
if (partialArgs.length) {
args = args.length
? (args = slice(args), rightIndicator ? args.concat(partialArgs) : partialArgs.concat(args))
? (args = slice.call(args), rightIndicator ? args.concat(partialArgs) : partialArgs.concat(args))
: partialArgs;
}
if (this instanceof bound) {
@@ -430,36 +431,6 @@
// no operation performed
}
/**
* A fallback implementation of `isPlainObject` that checks if a given `value`
* is an object created by the `Object` constructor, assuming objects created
* by the `Object` constructor have no inherited enumerable properties and that
* there are no `Object.prototype` extensions.
*
* @private
* @param {Mixed} value The value to check.
* @returns {Boolean} Returns `true`, if `value` is a plain object, else `false`.
*/
function shimIsPlainObject(value) {
// avoid non-objects and false positives for `arguments` objects
var result = false;
if (!(value && toString.call(value) == objectClass)) {
return result;
}
// check that the constructor is `Object` (i.e. `Object instanceof Object`)
var ctor = value.constructor;
if ((!isFunction(ctor)) || ctor instanceof ctor) {
// In most environments an object's own properties are iterated before
// its inherited properties. If the last iterated property is an object's
// own property then there are no inherited enumerable properties.
forIn(value, function(value, key) {
result = key;
});
return result === false || hasOwnProperty.call(value, result);
}
return result;
}
/**
* A fallback implementation of `Object.keys` that produces an array of the
* given object's own enumerable property names.
@@ -482,34 +453,6 @@
return result
};
/**
* Slices the `collection` from the `start` index up to, but not including,
* the `end` index.
*
* Note: This function is used, instead of `Array#slice`, to support node lists
* in IE < 9 and to ensure dense arrays are returned.
*
* @private
* @param {Array|Object|String} collection The collection to slice.
* @param {Number} start The start index.
* @param {Number} end The end index.
* @returns {Array} Returns the new array.
*/
function slice(array, start, end) {
start || (start = 0);
if (typeof end == 'undefined') {
end = array ? array.length : 0;
}
var index = -1,
length = end - start || 0,
result = Array(length < 0 ? 0 : length);
while (++index < length) {
result[index] = array[start + index];
}
return result;
}
/**
* Used by `unescape` to convert HTML entities to characters.
*
@@ -701,7 +644,7 @@
*/
function clone(value) {
return isObject(value)
? (isArray(value) ? slice(value) : assign({}, value))
? (isArray(value) ? slice.call(value) : assign({}, value))
: value
}
@@ -1833,7 +1776,7 @@
* // => [['1', '2', '3'], ['4', '5', '6']]
*/
function invoke(collection, methodName) {
var args = slice(arguments, 2),
var args = slice.call(arguments, 2),
index = -1,
isFunc = typeof methodName == 'function',
length = collection ? collection.length : 0,
@@ -2396,7 +2339,7 @@
*/
function toArray(collection) {
if (collection && typeof collection.length == 'number') {
return slice(collection);
return slice.call(collection);
}
return values(collection);
}
@@ -2565,7 +2508,7 @@
return array[0];
}
}
return slice(array, 0, nativeMin(nativeMax(0, n), length));
return slice.call(array, 0, nativeMin(nativeMax(0, n), length));
}
}
@@ -2740,7 +2683,7 @@
} else {
n = (callback == null || thisArg) ? 1 : callback || n;
}
return slice(array, 0, nativeMin(nativeMax(0, length - n), length));
return slice.call(array, 0, nativeMin(nativeMax(0, length - n), length));
}
/**
@@ -2855,7 +2798,7 @@
return array[length - 1];
}
}
return slice(array, nativeMax(0, length - n));
return slice.call(array, nativeMax(0, length - n));
}
}
@@ -3012,7 +2955,7 @@
} else {
n = (callback == null || thisArg) ? 1 : nativeMax(0, callback);
}
return slice(array, n);
return slice.call(array, n);
}
/**
@@ -3326,7 +3269,7 @@
// (in V8 `Function#bind` is slower except when partially applied)
return support.fastBind || (nativeBind && arguments.length > 2)
? nativeBind.call.apply(nativeBind, arguments)
: createBound(func, thisArg, slice(arguments, 2));
: createBound(func, thisArg, slice.call(arguments, 2));
}
/**
@@ -3551,7 +3494,7 @@
* // returns from the function before `alert` is called
*/
function defer(func) {
var args = slice(arguments, 1);
var args = slice.call(arguments, 1);
return setTimeout(function() { func.apply(undefined, args); }, 1);
}
@@ -3573,7 +3516,7 @@
* // => 'logged later' (Appears after one second.)
*/
function delay(func, wait) {
var args = slice(arguments, 2);
var args = slice.call(arguments, 2);
return setTimeout(function() { func.apply(undefined, args); }, wait);
}
@@ -3659,7 +3602,7 @@
* // => 'hi moe'
*/
function partial(func) {
return createBound(func, slice(arguments, 1));
return createBound(func, slice.call(arguments, 1));
}
/**

View File

@@ -4,32 +4,31 @@
* Build: `lodash underscore exports="amd,commonjs,global,node" -o ./dist/lodash.underscore.js`
* Underscore.js 1.4.4 underscorejs.org/LICENSE
*/
;(function(n){function r(n){return n instanceof r?n:new i(n)}function t(n,r){var t=n.b,e=r.b;if(n=n.a,r=r.a,n!==r){if(n>r||typeof n=="undefined")return 1;if(n<r||typeof r=="undefined")return-1}return t<e?-1:1}function e(n,r,t,e){function u(){var e=arguments,p=i?this:r;return o||(n=r[c]),t.length&&(e=e.length?(e=a(e),l?e.concat(t):t.concat(e)):t),this instanceof u?(f.prototype=n.prototype,p=new f,f.prototype=null,e=n.apply(p,e),_(e)?e:p):n.apply(p,e)}var o=m(n),i=!t,c=r;if(i){var l=e;t=r}else if(!o){if(!e)throw new TypeError;
r=n}return u}function u(n){return"\\"+ar[n]}function o(n){return kr[n]}function i(n){this.__wrapped__=n}function f(){}function a(n,r,t){r||(r=0),typeof t=="undefined"&&(t=n?n.length:0);var e=-1;t=t-r||0;for(var u=Array(0>t?0:t);++e<t;)u[e]=n[r+e];return u}function c(n){return qr[n]}function l(n){return br.call(n)==Z}function p(n){if(!n)return n;for(var r=1,t=arguments.length;r<t;r++){var e=arguments[r];if(e)for(var u in e)n[u]=e[u]}return n}function s(n){if(!n)return n;for(var r=1,t=arguments.length;r<t;r++){var e=arguments[r];
if(e)for(var u in e)null==n[u]&&(n[u]=e[u])}return n}function v(n){var r=[];return Dr(n,function(n,t){m(n)&&r.push(t)}),r.sort()}function g(n){for(var r=-1,t=Rr(n),e=t.length,u={};++r<e;){var o=t[r];u[n[o]]=o}return u}function h(n){if(!n)return!0;if(Fr(n)||d(n))return!n.length;for(var r in n)if(yr.call(n,r))return!1;return!0}function y(n,t,e,u){if(n===t)return 0!==n||1/n==1/t;var o=typeof n,i=typeof t;if(n===n&&(!n||"function"!=o&&"object"!=o)&&(!t||"function"!=i&&"object"!=i))return!1;if(null==n||null==t)return n===t;
if(i=br.call(n),o=br.call(t),i!=o)return!1;switch(i){case rr:case tr:return+n==+t;case er:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case or:case ir:return n==t+""}if(o=i==nr,!o){if(n instanceof r||t instanceof r)return y(n.__wrapped__||n,t.__wrapped__||t,e,u);if(i!=ur)return!1;var i=n.constructor,f=t.constructor;if(i!=f&&(!m(i)||!(i instanceof i&&m(f)&&f instanceof f)))return!1}for(e||(e=[]),u||(u=[]),i=e.length;i--;)if(e[i]==n)return u[i]==t;var a=!0,c=0;if(e.push(n),u.push(t),o){if(c=t.length,a=c==n.length)for(;c--&&(a=y(n[c],t[c],e,u)););return a
}return Dr(t,function(r,t,o){return yr.call(o,t)?(c++,!(a=yr.call(n,t)&&y(n[t],r,e,u))&&K):void 0}),a&&Dr(n,function(n,r,t){return yr.call(t,r)?!(a=-1<--c)&&K:void 0}),a}function m(n){return typeof n=="function"}function _(n){return n?fr[typeof n]:!1}function b(n){return typeof n=="number"||br.call(n)==er}function d(n){return typeof n=="string"||br.call(n)==ir}function j(n){for(var r=-1,t=Rr(n),e=t.length,u=Array(e);++r<e;)u[r]=n[t[r]];return u}function w(n,r){var t=!1;return typeof(n?n.length:0)=="number"?t=-1<T(n,r):Mr(n,function(n){return(t=n===r)&&K
}),t}function A(n,r,t){var e=!0;r=P(r,t),t=-1;var u=n?n.length:0;if(typeof u=="number")for(;++t<u&&(e=!!r(n[t],t,n)););else Mr(n,function(n,t,u){return!(e=!!r(n,t,u))&&K});return e}function x(n,r,t){var e=[];r=P(r,t),t=-1;var u=n?n.length:0;if(typeof u=="number")for(;++t<u;){var o=n[t];r(o,t,n)&&e.push(o)}else Mr(n,function(n,t,u){r(n,t,u)&&e.push(n)});return e}function O(n,r,t){r=P(r,t),t=-1;var e=n?n.length:0;if(typeof e!="number"){var u;return Mr(n,function(n,t,e){return r(n,t,e)?(u=n,K):void 0
}),u}for(;++t<e;){var o=n[t];if(r(o,t,n))return o}}function E(n,r,t){var e=-1,u=n?n.length:0;if(typeof u=="number")for(r=r&&typeof t=="undefined"?r:P(r,t);++e<u&&r(n[e],e,n)!==K;);else Mr(n,r,t)}function S(n,r,t){var e=-1,u=n?n.length:0;if(r=P(r,t),typeof u=="number")for(var o=Array(u);++e<u;)o[e]=r(n[e],e,n);else o=[],Mr(n,function(n,t,u){o[++e]=r(n,t,u)});return o}function N(n,r,t){var e=-1/0,u=e,o=-1,i=n?n.length:0;if(r||typeof i!="number")r=P(r,t),E(n,function(n,t,o){t=r(n,t,o),t>e&&(e=t,u=n)
});else for(;++o<i;)t=n[o],t>u&&(u=t);return u}function B(n,r){var t=-1,e=n?n.length:0;if(typeof e=="number")for(var u=Array(e);++t<e;)u[t]=n[t][r];return u||S(n,r)}function F(n,r,t,e){if(!n)return t;var u=3>arguments.length;r=P(r,e,4);var o=-1,i=n.length;if(typeof i=="number")for(u&&(t=n[++o]);++o<i;)t=r(t,n[o],o,n);else Mr(n,function(n,e,o){t=u?(u=!1,n):r(t,n,e,o)});return t}function R(n,r,t,e){var u=n?n.length:0,o=3>arguments.length;if(typeof u!="number")var i=Rr(n),u=i.length;return r=P(r,e,4),E(n,function(e,f,a){f=i?i[--u]:--u,t=o?(o=!1,n[f]):r(t,n[f],f,a)
}),t}function k(n,r,t){var e;r=P(r,t),t=-1;var u=n?n.length:0;if(typeof u=="number")for(;++t<u&&!(e=r(n[t],t,n)););else Mr(n,function(n,t,u){return(e=r(n,t,u))&&K});return!!e}function q(n,r,t){return t&&h(r)?null:(t?O:x)(n,r)}function D(n,r,t){if(n){var e=0,u=n.length;if(typeof r!="number"&&null!=r){var o=-1;for(r=P(r,t);++o<u&&r(n[o],o,n);)e++}else if(e=r,null==e||t)return n[0];return a(n,0,Er(Or(0,e),u))}}function M(n,r){for(var t=-1,e=n?n.length:0,u=[];++t<e;){var o=n[t];Fr(o)?mr.apply(u,r?o:M(o)):u.push(o)
}return u}function T(n,r,t){var e=-1,u=n?n.length:0;if(typeof t=="number")e=(0>t?Or(0,u+t):t||0)-1;else if(t)return e=I(n,r),n[e]===r?e:-1;for(;++e<u;)if(n[e]===r)return e;return-1}function $(n,r,t){if(typeof r!="number"&&null!=r){var e=0,u=-1,o=n?n.length:0;for(r=P(r,t);++u<o&&r(n[u],u,n);)e++}else e=null==r||t?1:Or(0,r);return a(n,e)}function I(n,r,t,e){var u=0,o=n?n.length:u;for(t=t?P(t,e,1):U,r=t(r);u<o;)e=u+o>>>1,t(n[e])<r?u=e+1:o=e;return u}function z(n,r,t,e){var u=-1,o=n?n.length:0,i=[],f=i;
for(typeof r!="boolean"&&null!=r&&(e=t,t=r,r=!1),null!=t&&(f=[],t=P(t,e));++u<o;){e=n[u];var a=t?t(e,u,n):e;(r?!u||f[f.length-1]!==a:0>T(f,a))&&(t&&f.push(a),i.push(e))}return i}function C(n,r){return Br.fastBind||dr&&2<arguments.length?dr.call.apply(dr,arguments):e(n,r,a(arguments,2))}function P(n,r,t){if(null==n)return U;var e=typeof n;if("function"!=e){if("object"!=e)return function(r){return r[n]};var u=Rr(n);return function(r){for(var t=u.length,e=!1;t--&&(e=r[u[t]]===n[u[t]]););return e}}return typeof r!="undefined"?1===t?function(t){return n.call(r,t)
}:2===t?function(t,e){return n.call(r,t,e)}:4===t?function(t,e,u,o){return n.call(r,t,e,u,o)}:function(t,e,u){return n.call(r,t,e,u)}:n}function U(n){return n}function V(n){E(v(n),function(t){var e=r[t]=n[t];r.prototype[t]=function(){var n=[this.__wrapped__];return mr.apply(n,arguments),n=e.apply(r,n),this.__chain__&&(n=new i(n),n.__chain__=!0),n}})}var W=typeof exports=="object"&&exports,G=typeof module=="object"&&module&&module.exports==W&&module,H=typeof global=="object"&&global;H.global===H&&(n=H);
var J=0,K={},L=/&(?:amp|lt|gt|quot|#39);/g,Q=/($^)/,X=/[&<>"']/g,Y=/['\n\r\t\u2028\u2029\\]/g,Z="[object Arguments]",nr="[object Array]",rr="[object Boolean]",tr="[object Date]",er="[object Number]",ur="[object Object]",or="[object RegExp]",ir="[object String]",fr={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},ar={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"},cr=[],H={},lr=n._,pr=RegExp("^"+(H.valueOf+"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),sr=Math.ceil,vr=n.clearTimeout,gr=cr.concat,hr=Math.floor,yr=H.hasOwnProperty,mr=cr.push,_r=n.setTimeout,br=H.toString,dr=pr.test(dr=a.bind)&&dr,jr=pr.test(jr=Array.isArray)&&jr,wr=n.isFinite,Ar=n.isNaN,xr=pr.test(xr=Object.keys)&&xr,Or=Math.max,Er=Math.min,Sr=Math.random,H=pr.test(n.attachEvent),Nr=dr&&!/\n|true/.test(dr+H),Br={};
(function(){var n={0:1,length:1};Br.argsObject=arguments.constructor==Object,Br.fastBind=dr&&!Nr,Br.spliceObjects=(cr.splice.call(n,0,1),!n[0])})(1),r.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},i.prototype=r.prototype,H=function(n){var r,t=[];if(!n||!fr[typeof n])return t;for(r in n)yr.call(n,r)&&t.push(r);return t},l(arguments)||(l=function(n){return n?yr.call(n,"callee"):!1});var Fr=jr||function(n){return Br.argsObject&&n instanceof Array||br.call(n)==nr
},Rr=xr?function(n){return _(n)?xr(n):[]}:H,kr={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},qr=g(kr),Dr=function(n,r){var t;if(!n||!fr[typeof n])return n;r||(r=U);for(t in n)if(r(n[t],t,n)===K)break;return n},Mr=function(n,r){var t;if(!n||!fr[typeof n])return n;r||(r=U);for(t in n)if(yr.call(n,t)&&r(n[t],t,n)===K)break;return n};m(/x/)&&(m=function(n){return n instanceof Function||"[object Function]"==br.call(n)}),r.after=function(n,r){return 1>n?r():function(){return 1>--n?r.apply(this,arguments):void 0
}},r.bind=C,r.bindAll=function(n){for(var r=gr.apply(cr,arguments),t=1<r.length?0:(r=v(n),-1),e=r.length;++t<e;){var u=r[t];n[u]=C(n[u],n)}return n},r.compact=function(n){for(var r=-1,t=n?n.length:0,e=[];++r<t;){var u=n[r];u&&e.push(u)}return e},r.compose=function(){var n=arguments;return function(){for(var r=arguments,t=n.length;t--;)r=[n[t].apply(this,r)];return r[0]}},r.countBy=function(n,r,t){var e={};return r=P(r,t),E(n,function(n,t,u){t=r(n,t,u)+"",yr.call(e,t)?e[t]++:e[t]=1}),e},r.debounce=function(n,r,t){function e(){f=null,t||(o=n.apply(i,u))
}var u,o,i,f;return function(){var a=t&&!f;return u=arguments,i=this,vr(f),f=_r(e,r),a&&(o=n.apply(i,u)),o}},r.defaults=s,r.defer=function(n){var r=a(arguments,1);return _r(function(){n.apply(void 0,r)},1)},r.delay=function(n,r){var t=a(arguments,2);return _r(function(){n.apply(void 0,t)},r)},r.difference=function(n){for(var r=-1,t=n.length,e=gr.apply(cr,arguments),u=[];++r<t;){var o=n[r];0>T(e,o,t)&&u.push(o)}return u},r.filter=x,r.flatten=M,r.forEach=E,r.functions=v,r.groupBy=function(n,r,t){var e={};
return r=P(r,t),E(n,function(n,t,u){t=r(n,t,u)+"",(yr.call(e,t)?e[t]:e[t]=[]).push(n)}),e},r.initial=function(n,r,t){if(!n)return[];var e=0,u=n.length;if(typeof r!="number"&&null!=r){var o=u;for(r=P(r,t);o--&&r(n[o],o,n);)e++}else e=null==r||t?1:r||e;return a(n,0,Er(Or(0,u-e),u))},r.intersection=function(n){var r=arguments,t=r.length,e=-1,u=n?n.length:0,o=[];n:for(;++e<u;){var i=n[e];if(0>T(o,i)){for(var f=t;--f;)if(0>T(r[f],i))continue n;o.push(i)}}return o},r.invert=g,r.invoke=function(n,r){var t=a(arguments,2),e=-1,u=typeof r=="function",o=n?n.length:0,i=Array(typeof o=="number"?o:0);
return E(n,function(n){i[++e]=(u?r:n[r]).apply(n,t)}),i},r.keys=Rr,r.map=S,r.max=N,r.memoize=function(n,r){var t={};return function(){var e=(r?r.apply(this,arguments):arguments[0])+"";return yr.call(t,e)?t[e]:t[e]=n.apply(this,arguments)}},r.min=function(n,r,t){var e=1/0,u=e,o=-1,i=n?n.length:0;if(r||typeof i!="number")r=P(r,t),E(n,function(n,t,o){t=r(n,t,o),t<e&&(e=t,u=n)});else for(;++o<i;)t=n[o],t<u&&(u=t);return u},r.omit=function(n){var r=gr.apply(cr,arguments),t={};return Dr(n,function(n,e){0>T(r,e,1)&&(t[e]=n)
}),t},r.once=function(n){var r,t;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},r.pairs=function(n){for(var r=-1,t=Rr(n),e=t.length,u=Array(e);++r<e;){var o=t[r];u[r]=[o,n[o]]}return u},r.partial=function(n){return e(n,a(arguments,1))},r.pick=function(n){for(var r=0,t=gr.apply(cr,arguments),e=t.length,u={};++r<e;){var o=t[r];o in n&&(u[o]=n[o])}return u},r.pluck=B,r.range=function(n,r,t){n=+n||0,t=+t||1,null==r&&(r=n,n=0);var e=-1;r=Or(0,sr((r-n)/t));for(var u=Array(r);++e<r;)u[e]=n,n+=t;
return u},r.reject=function(n,r,t){return r=P(r,t),x(n,function(n,t,e){return!r(n,t,e)})},r.rest=$,r.shuffle=function(n){var r=-1,t=n?n.length:0,e=Array(typeof t=="number"?t:0);return E(n,function(n){var t=hr(Sr()*(++r+1));e[r]=e[t],e[t]=n}),e},r.sortBy=function(n,r,e){var u=-1,o=n?n.length:0,i=Array(typeof o=="number"?o:0);for(r=P(r,e),E(n,function(n,t,e){i[++u]={a:r(n,t,e),b:u,c:n}}),o=i.length,i.sort(t);o--;)i[o]=i[o].c;return i},r.tap=function(n,r){return r(n),n},r.throttle=function(n,r){function t(){f=new Date,i=null,u=n.apply(o,e)
}var e,u,o,i,f=0;return function(){var a=new Date,c=r-(a-f);return e=arguments,o=this,0<c?i||(i=_r(t,c)):(vr(i),i=null,f=a,u=n.apply(o,e)),u}},r.times=function(n,r,t){for(var e=-1,u=Array(-1<n?n:0);++e<n;)u[e]=r.call(t,e);return u},r.toArray=function(n){return n&&typeof n.length=="number"?a(n):j(n)},r.union=function(){return z(gr.apply(cr,arguments))},r.uniq=z,r.values=j,r.where=q,r.without=function(n){for(var r=-1,t=n.length,e=[];++r<t;){var u=n[r];0>T(arguments,u,1)&&e.push(u)}return e},r.wrap=function(n,r){return function(){var t=[n];
return mr.apply(t,arguments),r.apply(this,t)}},r.zip=function(n){for(var r=-1,t=n?N(B(arguments,"length")):0,e=Array(t);++r<t;)e[r]=B(arguments,r);return e},r.collect=S,r.drop=$,r.each=E,r.extend=p,r.methods=v,r.object=function(n,r){for(var t=-1,e=n?n.length:0,u={};++t<e;){var o=n[t];r?u[o]=r[t]:u[o[0]]=o[1]}return u},r.select=x,r.tail=$,r.unique=z,r.clone=function(n){return _(n)?Fr(n)?a(n):p({},n):n},r.contains=w,r.escape=function(n){return null==n?"":(n+"").replace(X,o)},r.every=A,r.find=O,r.findWhere=function(n,r){return q(n,r,!0)
},r.has=function(n,r){return n?yr.call(n,r):!1},r.identity=U,r.indexOf=T,r.isArguments=l,r.isArray=Fr,r.isBoolean=function(n){return!0===n||!1===n||br.call(n)==rr},r.isDate=function(n){return n instanceof Date||br.call(n)==tr},r.isElement=function(n){return n?1===n.nodeType:!1},r.isEmpty=h,r.isEqual=y,r.isFinite=function(n){return wr(n)&&!Ar(parseFloat(n))},r.isFunction=m,r.isNaN=function(n){return b(n)&&n!=+n},r.isNull=function(n){return null===n},r.isNumber=b,r.isObject=_,r.isRegExp=function(n){return n instanceof RegExp||br.call(n)==or
},r.isString=d,r.isUndefined=function(n){return typeof n=="undefined"},r.lastIndexOf=function(n,r,t){var e=n?n.length:0;for(typeof t=="number"&&(e=(0>t?Or(0,e+t):Er(t,e-1))+1);e--;)if(n[e]===r)return e;return-1},r.mixin=V,r.noConflict=function(){return n._=lr,this},r.random=function(n,r){return null==n&&null==r&&(r=1),n=+n||0,null==r&&(r=n,n=0),n+hr(Sr()*((+r||0)-n+1))},r.reduce=F,r.reduceRight=R,r.result=function(n,r){var t=n?n[r]:null;return m(t)?n[r]():t},r.size=function(n){var r=n?n.length:0;return typeof r=="number"?r:Rr(n).length
},r.some=k,r.sortedIndex=I,r.template=function(n,t,e){n||(n=""),e=s({},e,r.templateSettings);var o=0,i="__p+='",f=e.variable;n.replace(RegExp((e.escape||Q).source+"|"+(e.interpolate||Q).source+"|"+(e.evaluate||Q).source+"|$","g"),function(r,t,e,f,a){return i+=n.slice(o,a).replace(Y,u),t&&(i+="'+_['escape']("+t+")+'"),f&&(i+="';"+f+";__p+='"),e&&(i+="'+((__t=("+e+"))==null?'':__t)+'"),o=a+r.length,r}),i+="';\n",f||(f="obj",i="with("+f+"||{}){"+i+"}"),i="function("+f+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+i+"return __p}";
try{var a=Function("_","return "+i)(r)}catch(c){throw c.source=i,c}return t?a(t):(a.source=i,a)},r.unescape=function(n){return null==n?"":(n+"").replace(L,c)},r.uniqueId=function(n){var r=++J+"";return n?n+r:r},r.all=A,r.any=k,r.detect=O,r.foldl=F,r.foldr=R,r.include=w,r.inject=F,r.first=D,r.last=function(n,r,t){if(n){var e=0,u=n.length;if(typeof r!="number"&&null!=r){var o=u;for(r=P(r,t);o--&&r(n[o],o,n);)e++}else if(e=r,null==e||t)return n[u-1];return a(n,Or(0,u-e))}},r.take=D,r.head=D,r.chain=function(n){return n=new i(n),n.__chain__=!0,n
},r.VERSION="1.0.1",V(r),r.prototype.chain=function(){return this.__chain__=!0,this},r.prototype.value=function(){return this.__wrapped__},E("pop push reverse shift sort splice unshift".split(" "),function(n){var t=cr[n];r.prototype[n]=function(){var n=this.__wrapped__;return t.apply(n,arguments),!Br.spliceObjects&&0===n.length&&delete n[0],this}}),E(["concat","join","slice"],function(n){var t=cr[n];r.prototype[n]=function(){var n=t.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new i(n),n.__chain__=!0),n
}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=r,define(function(){return r})):W&&!W.nodeType?G?(G.exports=r)._=r:W._=r:n._=r})(this);
;(function(n){function t(n,t){var r;if(n&&st[typeof n])for(r in t||(t=W),n)if(jt.call(n,r)&&t(n[r],r,n)===Z)break}function r(n,t){var r;if(n&&st[typeof n])for(r in t||(t=W),n)if(t(n[r],r,n)===Z)break}function e(n){var t,r=[];if(!n||!st[typeof n])return r;for(t in n)jt.call(n,t)&&r.push(t);return r}function u(n){return n instanceof u?n:new c(n)}function o(n,t){var r=n.b,e=t.b;if(n=n.a,t=t.a,n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1}return r<e?-1:1}function i(n,t,r){function e(){var f=arguments,c=o?this:t;
return u||(n=t[i]),r.length&&(f=f.length?(f=xt.call(f),a?f.concat(r):r.concat(f)):r),this instanceof e?(l.prototype=n.prototype,c=new l,l.prototype=J,f=n.apply(c,f),d(f)?f:c):n.apply(c,f)}var u=b(n),o=!r,i=t;if(o){var a=void 0;r=t}else if(!u)throw new TypeError;return e}function a(n){return"\\"+vt[n]}function f(n){return It[n]}function c(n){this.__wrapped__=n}function l(){}function p(n){return zt[n]}function s(n){return Ot.call(n)==ut}function v(n){if(!n)return n;for(var t=1,r=arguments.length;t<r;t++){var e=arguments[t];
if(e)for(var u in e)n[u]=e[u]}return n}function g(n){if(!n)return n;for(var t=1,r=arguments.length;t<r;t++){var e=arguments[t];if(e)for(var u in e)n[u]==J&&(n[u]=e[u])}return n}function h(n){var t=[];return r(n,function(n,r){b(n)&&t.push(r)}),t.sort()}function y(n){for(var t=-1,r=$t(n),e=r.length,u={};++t<e;){var o=r[t];u[n[o]]=o}return u}function m(n){if(!n)return H;if(Tt(n)||w(n))return!n.length;for(var t in n)if(jt.call(n,t))return K;return H}function _(n,t,e,o){if(n===t)return 0!==n||1/n==1/t;
var i=typeof n,a=typeof t;if(n===n&&(!n||"function"!=i&&"object"!=i)&&(!t||"function"!=a&&"object"!=a))return K;if(n==J||t==J)return n===t;if(a=Ot.call(n),i=Ot.call(t),a!=i)return K;switch(a){case it:case at:return+n==+t;case ft:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case lt:case pt:return n==t+""}if(i=a==ot,!i){if(n instanceof u||t instanceof u)return _(n.__wrapped__||n,t.__wrapped__||t,e,o);if(a!=ct)return K;var a=n.constructor,f=t.constructor;if(a!=f&&(!b(a)||!(a instanceof a&&b(f)&&f instanceof f)))return K
}for(e||(e=[]),o||(o=[]),a=e.length;a--;)if(e[a]==n)return o[a]==t;var c=H,l=0;if(e.push(n),o.push(t),i){if(l=t.length,c=l==n.length)for(;l--&&(c=_(n[l],t[l],e,o)););return c}return r(t,function(t,r,u){return jt.call(u,r)?(l++,!(c=jt.call(n,r)&&_(n[r],t,e,o))&&Z):void 0}),c&&r(n,function(n,t,r){return jt.call(r,t)?!(c=-1<--l)&&Z:void 0}),c}function b(n){return typeof n=="function"}function d(n){return n?st[typeof n]:K}function j(n){return typeof n=="number"||Ot.call(n)==ft}function w(n){return typeof n=="string"||Ot.call(n)==pt
}function A(n){for(var t=-1,r=$t(n),e=r.length,u=Array(e);++t<e;)u[t]=n[r[t]];return u}function x(n,r){var e=K;return typeof(n?n.length:0)=="number"?e=-1<I(n,r):t(n,function(n){return(e=n===r)&&Z}),e}function O(n,r,e){var u=H;r=V(r,e),e=-1;var o=n?n.length:0;if(typeof o=="number")for(;++e<o&&(u=!!r(n[e],e,n)););else t(n,function(n,t,e){return!(u=!!r(n,t,e))&&Z});return u}function E(n,r,e){var u=[];r=V(r,e),e=-1;var o=n?n.length:0;if(typeof o=="number")for(;++e<o;){var i=n[e];r(i,e,n)&&u.push(i)}else t(n,function(n,t,e){r(n,t,e)&&u.push(n)
});return u}function S(n,r,e){r=V(r,e),e=-1;var u=n?n.length:0;if(typeof u!="number"){var o;return t(n,function(n,t,e){return r(n,t,e)?(o=n,Z):void 0}),o}for(;++e<u;){var i=n[e];if(r(i,e,n))return i}}function N(n,r,e){var u=-1,o=n?n.length:0;if(typeof o=="number")for(r=r&&typeof e=="undefined"?r:V(r,e);++u<o&&r(n[u],u,n)!==Z;);else t(n,r)}function k(n,r,e){var u=-1,o=n?n.length:0;if(r=V(r,e),typeof o=="number")for(var i=Array(o);++u<o;)i[u]=r(n[u],u,n);else i=[],t(n,function(n,t,e){i[++u]=r(n,t,e)
});return i}function B(n,t,r){var e=-1/0,u=e,o=-1,i=n?n.length:0;if(t||typeof i!="number")t=V(t,r),N(n,function(n,r,o){r=t(n,r,o),r>e&&(e=r,u=n)});else for(;++o<i;)r=n[o],r>u&&(u=r);return u}function F(n,t){var r=-1,e=n?n.length:0;if(typeof e=="number")for(var u=Array(e);++r<e;)u[r]=n[r][t];return u||k(n,t)}function R(n,r,e,u){if(!n)return e;var o=3>arguments.length;r=V(r,u,4);var i=-1,a=n.length;if(typeof a=="number")for(o&&(e=n[++i]);++i<a;)e=r(e,n[i],i,n);else t(n,function(n,t,u){e=o?(o=K,n):r(e,n,t,u)
});return e}function q(n,t,r,e){var u=n?n.length:0,o=3>arguments.length;if(typeof u!="number")var i=$t(n),u=i.length;return t=V(t,e,4),N(n,function(e,a,f){a=i?i[--u]:--u,r=o?(o=K,n[a]):t(r,n[a],a,f)}),r}function D(n,r,e){var u;r=V(r,e),e=-1;var o=n?n.length:0;if(typeof o=="number")for(;++e<o&&!(u=r(n[e],e,n)););else t(n,function(n,t,e){return(u=r(n,t,e))&&Z});return!!u}function M(n,t,r){return r&&m(t)?J:(r?S:E)(n,t)}function T(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&t!=J){var o=-1;
for(t=V(t,r);++o<u&&t(n[o],o,n);)e++}else if(e=t,e==J||r)return n[0];return xt.call(n,0,Rt(Ft(0,e),u))}}function $(n,t){for(var r=-1,e=n?n.length:0,u=[];++r<e;){var o=n[r];Tt(o)?wt.apply(u,t?o:$(o)):u.push(o)}return u}function I(n,t,r){var e=-1,u=n?n.length:0;if(typeof r=="number")e=(0>r?Ft(0,u+r):r||0)-1;else if(r)return e=C(n,t),n[e]===t?e:-1;for(;++e<u;)if(n[e]===t)return e;return-1}function z(n,t,r){if(typeof t!="number"&&t!=J){var e=0,u=-1,o=n?n.length:0;for(t=V(t,r);++u<o&&t(n[u],u,n);)e++}else e=t==J||r?1:Ft(0,t);
return xt.call(n,e)}function C(n,t,r,e){var u=0,o=n?n.length:u;for(r=r?V(r,e,1):W,t=r(t);u<o;)e=u+o>>>1,r(n[e])<t?u=e+1:o=e;return u}function P(n,t,r,e){var u=-1,o=n?n.length:0,i=[],a=i;for(typeof t!="boolean"&&t!=J&&(e=r,r=t,t=K),r!=J&&(a=[],r=V(r,e));++u<o;){e=n[u];var f=r?r(e,u,n):e;(t?!u||a[a.length-1]!==f:0>I(a,f))&&(r&&a.push(f),i.push(e))}return i}function U(n,t){return Mt.fastBind||Et&&2<arguments.length?Et.call.apply(Et,arguments):i(n,t,xt.call(arguments,2))}function V(n,t,r){if(n==J)return W;
var e=typeof n;if("function"!=e){if("object"!=e)return function(t){return t[n]};var u=$t(n);return function(t){for(var r=u.length,e=K;r--&&(e=t[u[r]]===n[u[r]]););return e}}return typeof t!="undefined"?1===r?function(r){return n.call(t,r)}:2===r?function(r,e){return n.call(t,r,e)}:4===r?function(r,e,u,o){return n.call(t,r,e,u,o)}:function(r,e,u){return n.call(t,r,e,u)}:n}function W(n){return n}function G(n){N(h(n),function(t){var r=u[t]=n[t];u.prototype[t]=function(){var n=[this.__wrapped__];return wt.apply(n,arguments),n=r.apply(u,n),this.__chain__&&(n=new c(n),n.__chain__=H),n
}})}var H=!0,J=null,K=!1,L=typeof exports=="object"&&exports,Q=typeof module=="object"&&module&&module.exports==L&&module,X=typeof global=="object"&&global;X.global===X&&(n=X);var Y=0,Z={},nt=/&(?:amp|lt|gt|quot|#39);/g,tt=/($^)/,rt=/[&<>"']/g,et=/['\n\r\t\u2028\u2029\\]/g,ut="[object Arguments]",ot="[object Array]",it="[object Boolean]",at="[object Date]",ft="[object Number]",ct="[object Object]",lt="[object RegExp]",pt="[object String]",st={"boolean":K,"function":H,object:H,number:K,string:K,undefined:K},vt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"},gt=[],X={},ht=n._,yt=RegExp("^"+(X.valueOf+"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),mt=Math.ceil,_t=n.clearTimeout,bt=gt.concat,dt=Math.floor,jt=X.hasOwnProperty,wt=gt.push,At=n.setTimeout,xt=gt.slice,Ot=X.toString,Et=yt.test(Et=xt.bind)&&Et,St=yt.test(St=Array.isArray)&&St,Nt=n.isFinite,kt=n.isNaN,Bt=yt.test(Bt=Object.keys)&&Bt,Ft=Math.max,Rt=Math.min,qt=Math.random,X=yt.test(n.attachEvent),Dt=Et&&!/\n|true/.test(Et+X),Mt={};
(function(){var n={0:1,length:1};Mt.argsObject=arguments.constructor==Object,Mt.fastBind=Et&&!Dt,Mt.spliceObjects=(gt.splice.call(n,0,1),!n[0])})(1),u.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},c.prototype=u.prototype,s(arguments)||(s=function(n){return n?jt.call(n,"callee"):K});var Tt=St||function(n){return Mt.argsObject&&n instanceof Array||Ot.call(n)==ot},$t=Bt?function(n){return d(n)?Bt(n):[]}:e,It={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},zt=y(It);
b(/x/)&&(b=function(n){return n instanceof Function||"[object Function]"==Ot.call(n)}),u.after=function(n,t){return 1>n?t():function(){return 1>--n?t.apply(this,arguments):void 0}},u.bind=U,u.bindAll=function(n){for(var t=bt.apply(gt,arguments),r=1<t.length?0:(t=h(n),-1),e=t.length;++r<e;){var u=t[r];n[u]=U(n[u],n)}return n},u.compact=function(n){for(var t=-1,r=n?n.length:0,e=[];++t<r;){var u=n[t];u&&e.push(u)}return e},u.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length;r--;)t=[n[r].apply(this,t)];
return t[0]}},u.countBy=function(n,t,r){var e={};return t=V(t,r),N(n,function(n,r,u){r=t(n,r,u)+"",jt.call(e,r)?e[r]++:e[r]=1}),e},u.debounce=function(n,t,r){function e(){a=J,r||(o=n.apply(i,u))}var u,o,i,a;return function(){var f=r&&!a;return u=arguments,i=this,_t(a),a=At(e,t),f&&(o=n.apply(i,u)),o}},u.defaults=g,u.defer=function(n){var t=xt.call(arguments,1);return At(function(){n.apply(void 0,t)},1)},u.delay=function(n,t){var r=xt.call(arguments,2);return At(function(){n.apply(void 0,r)},t)},u.difference=function(n){for(var t=-1,r=n.length,e=bt.apply(gt,arguments),u=[];++t<r;){var o=n[t];
0>I(e,o,r)&&u.push(o)}return u},u.filter=E,u.flatten=$,u.forEach=N,u.functions=h,u.groupBy=function(n,t,r){var e={};return t=V(t,r),N(n,function(n,r,u){r=t(n,r,u)+"",(jt.call(e,r)?e[r]:e[r]=[]).push(n)}),e},u.initial=function(n,t,r){if(!n)return[];var e=0,u=n.length;if(typeof t!="number"&&t!=J){var o=u;for(t=V(t,r);o--&&t(n[o],o,n);)e++}else e=t==J||r?1:t||e;return xt.call(n,0,Rt(Ft(0,u-e),u))},u.intersection=function(n){var t=arguments,r=t.length,e=-1,u=n?n.length:0,o=[];n:for(;++e<u;){var i=n[e];
if(0>I(o,i)){for(var a=r;--a;)if(0>I(t[a],i))continue n;o.push(i)}}return o},u.invert=y,u.invoke=function(n,t){var r=xt.call(arguments,2),e=-1,u=typeof t=="function",o=n?n.length:0,i=Array(typeof o=="number"?o:0);return N(n,function(n){i[++e]=(u?t:n[t]).apply(n,r)}),i},u.keys=$t,u.map=k,u.max=B,u.memoize=function(n,t){var r={};return function(){var e=(t?t.apply(this,arguments):arguments[0])+"";return jt.call(r,e)?r[e]:r[e]=n.apply(this,arguments)}},u.min=function(n,t,r){var e=1/0,u=e,o=-1,i=n?n.length:0;
if(t||typeof i!="number")t=V(t,r),N(n,function(n,r,o){r=t(n,r,o),r<e&&(e=r,u=n)});else for(;++o<i;)r=n[o],r<u&&(u=r);return u},u.omit=function(n){var t=bt.apply(gt,arguments),e={};return r(n,function(n,r){0>I(t,r,1)&&(e[r]=n)}),e},u.once=function(n){var t,r;return function(){return t?r:(t=H,r=n.apply(this,arguments),n=J,r)}},u.pairs=function(n){for(var t=-1,r=$t(n),e=r.length,u=Array(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u},u.partial=function(n){return i(n,xt.call(arguments,1))},u.pick=function(n){for(var t=0,r=bt.apply(gt,arguments),e=r.length,u={};++t<e;){var o=r[t];
o in n&&(u[o]=n[o])}return u},u.pluck=F,u.range=function(n,t,r){n=+n||0,r=+r||1,t==J&&(t=n,n=0);var e=-1;t=Ft(0,mt((t-n)/r));for(var u=Array(t);++e<t;)u[e]=n,n+=r;return u},u.reject=function(n,t,r){return t=V(t,r),E(n,function(n,r,e){return!t(n,r,e)})},u.rest=z,u.shuffle=function(n){var t=-1,r=n?n.length:0,e=Array(typeof r=="number"?r:0);return N(n,function(n){var r=dt(qt()*(++t+1));e[t]=e[r],e[r]=n}),e},u.sortBy=function(n,t,r){var e=-1,u=n?n.length:0,i=Array(typeof u=="number"?u:0);for(t=V(t,r),N(n,function(n,r,u){i[++e]={a:t(n,r,u),b:e,c:n}
}),u=i.length,i.sort(o);u--;)i[u]=i[u].c;return i},u.tap=function(n,t){return t(n),n},u.throttle=function(n,t){function r(){a=new Date,i=J,u=n.apply(o,e)}var e,u,o,i,a=0;return function(){var f=new Date,c=t-(f-a);return e=arguments,o=this,0<c?i||(i=At(r,c)):(_t(i),i=J,a=f,u=n.apply(o,e)),u}},u.times=function(n,t,r){for(var e=-1,u=Array(-1<n?n:0);++e<n;)u[e]=t.call(r,e);return u},u.toArray=function(n){return n&&typeof n.length=="number"?xt.call(n):A(n)},u.union=function(){return P(bt.apply(gt,arguments))
},u.uniq=P,u.values=A,u.where=M,u.without=function(n){for(var t=-1,r=n.length,e=[];++t<r;){var u=n[t];0>I(arguments,u,1)&&e.push(u)}return e},u.wrap=function(n,t){return function(){var r=[n];return wt.apply(r,arguments),t.apply(this,r)}},u.zip=function(n){for(var t=-1,r=n?B(F(arguments,"length")):0,e=Array(r);++t<r;)e[t]=F(arguments,t);return e},u.collect=k,u.drop=z,u.each=N,u.extend=v,u.methods=h,u.object=function(n,t){for(var r=-1,e=n?n.length:0,u={};++r<e;){var o=n[r];t?u[o]=t[r]:u[o[0]]=o[1]}return u
},u.select=E,u.tail=z,u.unique=P,u.clone=function(n){return d(n)?Tt(n)?xt.call(n):v({},n):n},u.contains=x,u.escape=function(n){return n==J?"":(n+"").replace(rt,f)},u.every=O,u.find=S,u.findWhere=function(n,t){return M(n,t,H)},u.has=function(n,t){return n?jt.call(n,t):K},u.identity=W,u.indexOf=I,u.isArguments=s,u.isArray=Tt,u.isBoolean=function(n){return n===H||n===K||Ot.call(n)==it},u.isDate=function(n){return n instanceof Date||Ot.call(n)==at},u.isElement=function(n){return n?1===n.nodeType:K},u.isEmpty=m,u.isEqual=_,u.isFinite=function(n){return Nt(n)&&!kt(parseFloat(n))
},u.isFunction=b,u.isNaN=function(n){return j(n)&&n!=+n},u.isNull=function(n){return n===J},u.isNumber=j,u.isObject=d,u.isRegExp=function(n){return n instanceof RegExp||Ot.call(n)==lt},u.isString=w,u.isUndefined=function(n){return typeof n=="undefined"},u.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?Ft(0,e+r):Rt(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},u.mixin=G,u.noConflict=function(){return n._=ht,this},u.random=function(n,t){return n==J&&t==J&&(t=1),n=+n||0,t==J&&(t=n,n=0),n+dt(qt()*((+t||0)-n+1))
},u.reduce=R,u.reduceRight=q,u.result=function(n,t){var r=n?n[t]:J;return b(r)?n[t]():r},u.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:$t(n).length},u.some=D,u.sortedIndex=C,u.template=function(n,t,r){n||(n=""),r=g({},r,u.templateSettings);var e=0,o="__p+='",i=r.variable;n.replace(RegExp((r.escape||tt).source+"|"+(r.interpolate||tt).source+"|"+(r.evaluate||tt).source+"|$","g"),function(t,r,u,i,f){return o+=n.slice(e,f).replace(et,a),r&&(o+="'+_['escape']("+r+")+'"),i&&(o+="';"+i+";__p+='"),u&&(o+="'+((__t=("+u+"))==null?'':__t)+'"),e=f+t.length,t
}),o+="';\n",i||(i="obj",o="with("+i+"||{}){"+o+"}"),o="function("+i+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+o+"return __p}";try{var f=Function("_","return "+o)(u)}catch(c){throw c.source=o,c}return t?f(t):(f.source=o,f)},u.unescape=function(n){return n==J?"":(n+"").replace(nt,p)},u.uniqueId=function(n){var t=++Y+"";return n?n+t:t},u.all=O,u.any=D,u.detect=S,u.foldl=R,u.foldr=q,u.include=x,u.inject=R,u.first=T,u.last=function(n,t,r){if(n){var e=0,u=n.length;
if(typeof t!="number"&&t!=J){var o=u;for(t=V(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,e==J||r)return n[u-1];return xt.call(n,Ft(0,u-e))}},u.take=T,u.head=T,u.chain=function(n){return n=new c(n),n.__chain__=H,n},u.VERSION="1.0.1",G(u),u.prototype.chain=function(){return this.__chain__=H,this},u.prototype.value=function(){return this.__wrapped__},N("pop push reverse shift sort splice unshift".split(" "),function(n){var t=gt[n];u.prototype[n]=function(){var n=this.__wrapped__;return t.apply(n,arguments),!Mt.spliceObjects&&0===n.length&&delete n[0],this
}}),N(["concat","join","slice"],function(n){var t=gt[n];u.prototype[n]=function(){var n=t.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new c(n),n.__chain__=H),n}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=u,define(function(){return u})):L&&!L.nodeType?Q?(Q.exports=u)._=u:L._=u:n._=u})(this);