http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/isIndex.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/isIndex.js 
b/node_modules/lodash/internal/isIndex.js
new file mode 100644
index 0000000..469164b
--- /dev/null
+++ b/node_modules/lodash/internal/isIndex.js
@@ -0,0 +1,24 @@
+/** Used to detect unsigned integer values. */
+var reIsUint = /^\d+$/;
+
+/**
+ * Used as the [maximum 
length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
+ * of an array-like value.
+ */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/**
+ * Checks if `value` is a valid array-like index.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
+ */
+function isIndex(value, length) {
+  value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
+  length = length == null ? MAX_SAFE_INTEGER : length;
+  return value > -1 && value % 1 == 0 && value < length;
+}
+
+module.exports = isIndex;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/isIterateeCall.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/isIterateeCall.js 
b/node_modules/lodash/internal/isIterateeCall.js
new file mode 100644
index 0000000..07490f2
--- /dev/null
+++ b/node_modules/lodash/internal/isIterateeCall.js
@@ -0,0 +1,28 @@
+var isArrayLike = require('./isArrayLike'),
+    isIndex = require('./isIndex'),
+    isObject = require('../lang/isObject');
+
+/**
+ * Checks if the provided arguments are from an iteratee call.
+ *
+ * @private
+ * @param {*} value The potential iteratee value argument.
+ * @param {*} index The potential iteratee index or key argument.
+ * @param {*} object The potential iteratee object argument.
+ * @returns {boolean} Returns `true` if the arguments are from an iteratee 
call, else `false`.
+ */
+function isIterateeCall(value, index, object) {
+  if (!isObject(object)) {
+    return false;
+  }
+  var type = typeof index;
+  if (type == 'number'
+      ? (isArrayLike(object) && isIndex(index, object.length))
+      : (type == 'string' && index in object)) {
+    var other = object[index];
+    return value === value ? (value === other) : (other !== other);
+  }
+  return false;
+}
+
+module.exports = isIterateeCall;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/isKey.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/isKey.js 
b/node_modules/lodash/internal/isKey.js
new file mode 100644
index 0000000..44ccfd4
--- /dev/null
+++ b/node_modules/lodash/internal/isKey.js
@@ -0,0 +1,28 @@
+var isArray = require('../lang/isArray'),
+    toObject = require('./toObject');
+
+/** Used to match property names within property paths. */
+var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,
+    reIsPlainProp = /^\w*$/;
+
+/**
+ * Checks if `value` is a property name and not a property path.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {Object} [object] The object to query keys on.
+ * @returns {boolean} Returns `true` if `value` is a property name, else 
`false`.
+ */
+function isKey(value, object) {
+  var type = typeof value;
+  if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') {
+    return true;
+  }
+  if (isArray(value)) {
+    return false;
+  }
+  var result = !reIsDeepProp.test(value);
+  return result || (object != null && value in toObject(object));
+}
+
+module.exports = isKey;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/isLaziable.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/isLaziable.js 
b/node_modules/lodash/internal/isLaziable.js
new file mode 100644
index 0000000..475fab1
--- /dev/null
+++ b/node_modules/lodash/internal/isLaziable.js
@@ -0,0 +1,27 @@
+var LazyWrapper = require('./LazyWrapper'),
+    getData = require('./getData'),
+    getFuncName = require('./getFuncName'),
+    lodash = require('../chain/lodash');
+
+/**
+ * Checks if `func` has a lazy counterpart.
+ *
+ * @private
+ * @param {Function} func The function to check.
+ * @returns {boolean} Returns `true` if `func` has a lazy counterpart, else 
`false`.
+ */
+function isLaziable(func) {
+  var funcName = getFuncName(func),
+      other = lodash[funcName];
+
+  if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {
+    return false;
+  }
+  if (func === other) {
+    return true;
+  }
+  var data = getData(other);
+  return !!data && func === data[0];
+}
+
+module.exports = isLaziable;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/isLength.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/isLength.js 
b/node_modules/lodash/internal/isLength.js
new file mode 100644
index 0000000..2092987
--- /dev/null
+++ b/node_modules/lodash/internal/isLength.js
@@ -0,0 +1,20 @@
+/**
+ * Used as the [maximum 
length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
+ * of an array-like value.
+ */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This function is based on 
[`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else 
`false`.
+ */
+function isLength(value) {
+  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= 
MAX_SAFE_INTEGER;
+}
+
+module.exports = isLength;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/isObjectLike.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/isObjectLike.js 
b/node_modules/lodash/internal/isObjectLike.js
new file mode 100644
index 0000000..8ca0585
--- /dev/null
+++ b/node_modules/lodash/internal/isObjectLike.js
@@ -0,0 +1,12 @@
+/**
+ * Checks if `value` is object-like.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ */
+function isObjectLike(value) {
+  return !!value && typeof value == 'object';
+}
+
+module.exports = isObjectLike;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/isSpace.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/isSpace.js 
b/node_modules/lodash/internal/isSpace.js
new file mode 100644
index 0000000..16ea6f3
--- /dev/null
+++ b/node_modules/lodash/internal/isSpace.js
@@ -0,0 +1,14 @@
+/**
+ * Used by `trimmedLeftIndex` and `trimmedRightIndex` to determine if a
+ * character code is whitespace.
+ *
+ * @private
+ * @param {number} charCode The character code to inspect.
+ * @returns {boolean} Returns `true` if `charCode` is whitespace, else `false`.
+ */
+function isSpace(charCode) {
+  return ((charCode <= 160 && (charCode >= 9 && charCode <= 13) || charCode == 
32 || charCode == 160) || charCode == 5760 || charCode == 6158 ||
+    (charCode >= 8192 && (charCode <= 8202 || charCode == 8232 || charCode == 
8233 || charCode == 8239 || charCode == 8287 || charCode == 12288 || charCode 
== 65279)));
+}
+
+module.exports = isSpace;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/isStrictComparable.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/isStrictComparable.js 
b/node_modules/lodash/internal/isStrictComparable.js
new file mode 100644
index 0000000..0a53eba
--- /dev/null
+++ b/node_modules/lodash/internal/isStrictComparable.js
@@ -0,0 +1,15 @@
+var isObject = require('../lang/isObject');
+
+/**
+ * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` if suitable for strict
+ *  equality comparisons, else `false`.
+ */
+function isStrictComparable(value) {
+  return value === value && !isObject(value);
+}
+
+module.exports = isStrictComparable;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/lazyClone.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/lazyClone.js 
b/node_modules/lodash/internal/lazyClone.js
new file mode 100644
index 0000000..04c222b
--- /dev/null
+++ b/node_modules/lodash/internal/lazyClone.js
@@ -0,0 +1,23 @@
+var LazyWrapper = require('./LazyWrapper'),
+    arrayCopy = require('./arrayCopy');
+
+/**
+ * Creates a clone of the lazy wrapper object.
+ *
+ * @private
+ * @name clone
+ * @memberOf LazyWrapper
+ * @returns {Object} Returns the cloned `LazyWrapper` object.
+ */
+function lazyClone() {
+  var result = new LazyWrapper(this.__wrapped__);
+  result.__actions__ = arrayCopy(this.__actions__);
+  result.__dir__ = this.__dir__;
+  result.__filtered__ = this.__filtered__;
+  result.__iteratees__ = arrayCopy(this.__iteratees__);
+  result.__takeCount__ = this.__takeCount__;
+  result.__views__ = arrayCopy(this.__views__);
+  return result;
+}
+
+module.exports = lazyClone;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/lazyReverse.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/lazyReverse.js 
b/node_modules/lodash/internal/lazyReverse.js
new file mode 100644
index 0000000..c658402
--- /dev/null
+++ b/node_modules/lodash/internal/lazyReverse.js
@@ -0,0 +1,23 @@
+var LazyWrapper = require('./LazyWrapper');
+
+/**
+ * Reverses the direction of lazy iteration.
+ *
+ * @private
+ * @name reverse
+ * @memberOf LazyWrapper
+ * @returns {Object} Returns the new reversed `LazyWrapper` object.
+ */
+function lazyReverse() {
+  if (this.__filtered__) {
+    var result = new LazyWrapper(this);
+    result.__dir__ = -1;
+    result.__filtered__ = true;
+  } else {
+    result = this.clone();
+    result.__dir__ *= -1;
+  }
+  return result;
+}
+
+module.exports = lazyReverse;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/lazyValue.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/lazyValue.js 
b/node_modules/lodash/internal/lazyValue.js
new file mode 100644
index 0000000..8de68e6
--- /dev/null
+++ b/node_modules/lodash/internal/lazyValue.js
@@ -0,0 +1,72 @@
+var baseWrapperValue = require('./baseWrapperValue'),
+    getView = require('./getView'),
+    isArray = require('../lang/isArray');
+
+/** Used as the size to enable large array optimizations. */
+var LARGE_ARRAY_SIZE = 200;
+
+/** Used to indicate the type of lazy iteratees. */
+var LAZY_FILTER_FLAG = 1,
+    LAZY_MAP_FLAG = 2;
+
+/* Native method references for those with the same name as other `lodash` 
methods. */
+var nativeMin = Math.min;
+
+/**
+ * Extracts the unwrapped value from its lazy wrapper.
+ *
+ * @private
+ * @name value
+ * @memberOf LazyWrapper
+ * @returns {*} Returns the unwrapped value.
+ */
+function lazyValue() {
+  var array = this.__wrapped__.value(),
+      dir = this.__dir__,
+      isArr = isArray(array),
+      isRight = dir < 0,
+      arrLength = isArr ? array.length : 0,
+      view = getView(0, arrLength, this.__views__),
+      start = view.start,
+      end = view.end,
+      length = end - start,
+      index = isRight ? end : (start - 1),
+      iteratees = this.__iteratees__,
+      iterLength = iteratees.length,
+      resIndex = 0,
+      takeCount = nativeMin(length, this.__takeCount__);
+
+  if (!isArr || arrLength < LARGE_ARRAY_SIZE || (arrLength == length && 
takeCount == length)) {
+    return baseWrapperValue(array, this.__actions__);
+  }
+  var result = [];
+
+  outer:
+  while (length-- && resIndex < takeCount) {
+    index += dir;
+
+    var iterIndex = -1,
+        value = array[index];
+
+    while (++iterIndex < iterLength) {
+      var data = iteratees[iterIndex],
+          iteratee = data.iteratee,
+          type = data.type,
+          computed = iteratee(value);
+
+      if (type == LAZY_MAP_FLAG) {
+        value = computed;
+      } else if (!computed) {
+        if (type == LAZY_FILTER_FLAG) {
+          continue outer;
+        } else {
+          break outer;
+        }
+      }
+    }
+    result[resIndex++] = value;
+  }
+  return result;
+}
+
+module.exports = lazyValue;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/mapDelete.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/mapDelete.js 
b/node_modules/lodash/internal/mapDelete.js
new file mode 100644
index 0000000..8b7fd53
--- /dev/null
+++ b/node_modules/lodash/internal/mapDelete.js
@@ -0,0 +1,14 @@
+/**
+ * Removes `key` and its value from the cache.
+ *
+ * @private
+ * @name delete
+ * @memberOf _.memoize.Cache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed successfully, 
else `false`.
+ */
+function mapDelete(key) {
+  return this.has(key) && delete this.__data__[key];
+}
+
+module.exports = mapDelete;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/mapGet.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/mapGet.js 
b/node_modules/lodash/internal/mapGet.js
new file mode 100644
index 0000000..1f22295
--- /dev/null
+++ b/node_modules/lodash/internal/mapGet.js
@@ -0,0 +1,14 @@
+/**
+ * Gets the cached value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf _.memoize.Cache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the cached value.
+ */
+function mapGet(key) {
+  return key == '__proto__' ? undefined : this.__data__[key];
+}
+
+module.exports = mapGet;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/mapHas.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/mapHas.js 
b/node_modules/lodash/internal/mapHas.js
new file mode 100644
index 0000000..6d94ce4
--- /dev/null
+++ b/node_modules/lodash/internal/mapHas.js
@@ -0,0 +1,20 @@
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Checks if a cached value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf _.memoize.Cache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else 
`false`.
+ */
+function mapHas(key) {
+  return key != '__proto__' && hasOwnProperty.call(this.__data__, key);
+}
+
+module.exports = mapHas;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/mapSet.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/mapSet.js 
b/node_modules/lodash/internal/mapSet.js
new file mode 100644
index 0000000..0434c3f
--- /dev/null
+++ b/node_modules/lodash/internal/mapSet.js
@@ -0,0 +1,18 @@
+/**
+ * Sets `value` to `key` of the cache.
+ *
+ * @private
+ * @name set
+ * @memberOf _.memoize.Cache
+ * @param {string} key The key of the value to cache.
+ * @param {*} value The value to cache.
+ * @returns {Object} Returns the cache object.
+ */
+function mapSet(key, value) {
+  if (key != '__proto__') {
+    this.__data__[key] = value;
+  }
+  return this;
+}
+
+module.exports = mapSet;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/mergeData.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/mergeData.js 
b/node_modules/lodash/internal/mergeData.js
new file mode 100644
index 0000000..29297c7
--- /dev/null
+++ b/node_modules/lodash/internal/mergeData.js
@@ -0,0 +1,89 @@
+var arrayCopy = require('./arrayCopy'),
+    composeArgs = require('./composeArgs'),
+    composeArgsRight = require('./composeArgsRight'),
+    replaceHolders = require('./replaceHolders');
+
+/** Used to compose bitmasks for wrapper metadata. */
+var BIND_FLAG = 1,
+    CURRY_BOUND_FLAG = 4,
+    CURRY_FLAG = 8,
+    ARY_FLAG = 128,
+    REARG_FLAG = 256;
+
+/** Used as the internal argument placeholder. */
+var PLACEHOLDER = '__lodash_placeholder__';
+
+/* Native method references for those with the same name as other `lodash` 
methods. */
+var nativeMin = Math.min;
+
+/**
+ * Merges the function metadata of `source` into `data`.
+ *
+ * Merging metadata reduces the number of wrappers required to invoke a 
function.
+ * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`
+ * may be applied regardless of execution order. Methods like `_.ary` and 
`_.rearg`
+ * augment function arguments, making the order in which they are executed 
important,
+ * preventing the merging of metadata. However, we make an exception for a safe
+ * common case where curried functions have `_.ary` and or `_.rearg` applied.
+ *
+ * @private
+ * @param {Array} data The destination metadata.
+ * @param {Array} source The source metadata.
+ * @returns {Array} Returns `data`.
+ */
+function mergeData(data, source) {
+  var bitmask = data[1],
+      srcBitmask = source[1],
+      newBitmask = bitmask | srcBitmask,
+      isCommon = newBitmask < ARY_FLAG;
+
+  var isCombo =
+    (srcBitmask == ARY_FLAG && bitmask == CURRY_FLAG) ||
+    (srcBitmask == ARY_FLAG && bitmask == REARG_FLAG && data[7].length <= 
source[8]) ||
+    (srcBitmask == (ARY_FLAG | REARG_FLAG) && bitmask == CURRY_FLAG);
+
+  // Exit early if metadata can't be merged.
+  if (!(isCommon || isCombo)) {
+    return data;
+  }
+  // Use source `thisArg` if available.
+  if (srcBitmask & BIND_FLAG) {
+    data[2] = source[2];
+    // Set when currying a bound function.
+    newBitmask |= (bitmask & BIND_FLAG) ? 0 : CURRY_BOUND_FLAG;
+  }
+  // Compose partial arguments.
+  var value = source[3];
+  if (value) {
+    var partials = data[3];
+    data[3] = partials ? composeArgs(partials, value, source[4]) : 
arrayCopy(value);
+    data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : 
arrayCopy(source[4]);
+  }
+  // Compose partial right arguments.
+  value = source[5];
+  if (value) {
+    partials = data[5];
+    data[5] = partials ? composeArgsRight(partials, value, source[6]) : 
arrayCopy(value);
+    data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : 
arrayCopy(source[6]);
+  }
+  // Use source `argPos` if available.
+  value = source[7];
+  if (value) {
+    data[7] = arrayCopy(value);
+  }
+  // Use source `ary` if it's smaller.
+  if (srcBitmask & ARY_FLAG) {
+    data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);
+  }
+  // Use source `arity` if one is not provided.
+  if (data[9] == null) {
+    data[9] = source[9];
+  }
+  // Use source `func` and merge bitmasks.
+  data[0] = source[0];
+  data[1] = newBitmask;
+
+  return data;
+}
+
+module.exports = mergeData;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/mergeDefaults.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/mergeDefaults.js 
b/node_modules/lodash/internal/mergeDefaults.js
new file mode 100644
index 0000000..dcd967e
--- /dev/null
+++ b/node_modules/lodash/internal/mergeDefaults.js
@@ -0,0 +1,15 @@
+var merge = require('../object/merge');
+
+/**
+ * Used by `_.defaultsDeep` to customize its `_.merge` use.
+ *
+ * @private
+ * @param {*} objectValue The destination object property value.
+ * @param {*} sourceValue The source object property value.
+ * @returns {*} Returns the value to assign to the destination object.
+ */
+function mergeDefaults(objectValue, sourceValue) {
+  return objectValue === undefined ? sourceValue : merge(objectValue, 
sourceValue, mergeDefaults);
+}
+
+module.exports = mergeDefaults;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/metaMap.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/metaMap.js 
b/node_modules/lodash/internal/metaMap.js
new file mode 100644
index 0000000..59bfd5f
--- /dev/null
+++ b/node_modules/lodash/internal/metaMap.js
@@ -0,0 +1,9 @@
+var getNative = require('./getNative');
+
+/** Native method references. */
+var WeakMap = getNative(global, 'WeakMap');
+
+/** Used to store function metadata. */
+var metaMap = WeakMap && new WeakMap;
+
+module.exports = metaMap;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/pickByArray.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/pickByArray.js 
b/node_modules/lodash/internal/pickByArray.js
new file mode 100644
index 0000000..0999d90
--- /dev/null
+++ b/node_modules/lodash/internal/pickByArray.js
@@ -0,0 +1,28 @@
+var toObject = require('./toObject');
+
+/**
+ * A specialized version of `_.pick` which picks `object` properties specified
+ * by `props`.
+ *
+ * @private
+ * @param {Object} object The source object.
+ * @param {string[]} props The property names to pick.
+ * @returns {Object} Returns the new object.
+ */
+function pickByArray(object, props) {
+  object = toObject(object);
+
+  var index = -1,
+      length = props.length,
+      result = {};
+
+  while (++index < length) {
+    var key = props[index];
+    if (key in object) {
+      result[key] = object[key];
+    }
+  }
+  return result;
+}
+
+module.exports = pickByArray;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/pickByCallback.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/pickByCallback.js 
b/node_modules/lodash/internal/pickByCallback.js
new file mode 100644
index 0000000..79d3cdc
--- /dev/null
+++ b/node_modules/lodash/internal/pickByCallback.js
@@ -0,0 +1,22 @@
+var baseForIn = require('./baseForIn');
+
+/**
+ * A specialized version of `_.pick` which picks `object` properties 
`predicate`
+ * returns truthy for.
+ *
+ * @private
+ * @param {Object} object The source object.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {Object} Returns the new object.
+ */
+function pickByCallback(object, predicate) {
+  var result = {};
+  baseForIn(object, function(value, key, object) {
+    if (predicate(value, key, object)) {
+      result[key] = value;
+    }
+  });
+  return result;
+}
+
+module.exports = pickByCallback;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/reEscape.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/reEscape.js 
b/node_modules/lodash/internal/reEscape.js
new file mode 100644
index 0000000..7f47eda
--- /dev/null
+++ b/node_modules/lodash/internal/reEscape.js
@@ -0,0 +1,4 @@
+/** Used to match template delimiters. */
+var reEscape = /<%-([\s\S]+?)%>/g;
+
+module.exports = reEscape;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/reEvaluate.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/reEvaluate.js 
b/node_modules/lodash/internal/reEvaluate.js
new file mode 100644
index 0000000..6adfc31
--- /dev/null
+++ b/node_modules/lodash/internal/reEvaluate.js
@@ -0,0 +1,4 @@
+/** Used to match template delimiters. */
+var reEvaluate = /<%([\s\S]+?)%>/g;
+
+module.exports = reEvaluate;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/reInterpolate.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/reInterpolate.js 
b/node_modules/lodash/internal/reInterpolate.js
new file mode 100644
index 0000000..d02ff0b
--- /dev/null
+++ b/node_modules/lodash/internal/reInterpolate.js
@@ -0,0 +1,4 @@
+/** Used to match template delimiters. */
+var reInterpolate = /<%=([\s\S]+?)%>/g;
+
+module.exports = reInterpolate;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/realNames.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/realNames.js 
b/node_modules/lodash/internal/realNames.js
new file mode 100644
index 0000000..aa0d529
--- /dev/null
+++ b/node_modules/lodash/internal/realNames.js
@@ -0,0 +1,4 @@
+/** Used to lookup unminified function names. */
+var realNames = {};
+
+module.exports = realNames;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/reorder.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/reorder.js 
b/node_modules/lodash/internal/reorder.js
new file mode 100644
index 0000000..9424927
--- /dev/null
+++ b/node_modules/lodash/internal/reorder.js
@@ -0,0 +1,29 @@
+var arrayCopy = require('./arrayCopy'),
+    isIndex = require('./isIndex');
+
+/* Native method references for those with the same name as other `lodash` 
methods. */
+var nativeMin = Math.min;
+
+/**
+ * Reorder `array` according to the specified indexes where the element at
+ * the first index is assigned as the first element, the element at
+ * the second index is assigned as the second element, and so on.
+ *
+ * @private
+ * @param {Array} array The array to reorder.
+ * @param {Array} indexes The arranged array indexes.
+ * @returns {Array} Returns `array`.
+ */
+function reorder(array, indexes) {
+  var arrLength = array.length,
+      length = nativeMin(indexes.length, arrLength),
+      oldArray = arrayCopy(array);
+
+  while (length--) {
+    var index = indexes[length];
+    array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;
+  }
+  return array;
+}
+
+module.exports = reorder;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/replaceHolders.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/replaceHolders.js 
b/node_modules/lodash/internal/replaceHolders.js
new file mode 100644
index 0000000..3089e75
--- /dev/null
+++ b/node_modules/lodash/internal/replaceHolders.js
@@ -0,0 +1,28 @@
+/** Used as the internal argument placeholder. */
+var PLACEHOLDER = '__lodash_placeholder__';
+
+/**
+ * Replaces all `placeholder` elements in `array` with an internal placeholder
+ * and returns an array of their indexes.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {*} placeholder The placeholder to replace.
+ * @returns {Array} Returns the new array of placeholder indexes.
+ */
+function replaceHolders(array, placeholder) {
+  var index = -1,
+      length = array.length,
+      resIndex = -1,
+      result = [];
+
+  while (++index < length) {
+    if (array[index] === placeholder) {
+      array[index] = PLACEHOLDER;
+      result[++resIndex] = index;
+    }
+  }
+  return result;
+}
+
+module.exports = replaceHolders;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/setData.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/setData.js 
b/node_modules/lodash/internal/setData.js
new file mode 100644
index 0000000..7eb3f40
--- /dev/null
+++ b/node_modules/lodash/internal/setData.js
@@ -0,0 +1,41 @@
+var baseSetData = require('./baseSetData'),
+    now = require('../date/now');
+
+/** Used to detect when a function becomes hot. */
+var HOT_COUNT = 150,
+    HOT_SPAN = 16;
+
+/**
+ * Sets metadata for `func`.
+ *
+ * **Note:** If this function becomes hot, i.e. is invoked a lot in a short
+ * period of time, it will trip its breaker and transition to an identity 
function
+ * to avoid garbage collection pauses in V8. See [V8 issue 
2070](https://code.google.com/p/v8/issues/detail?id=2070)
+ * for more details.
+ *
+ * @private
+ * @param {Function} func The function to associate metadata with.
+ * @param {*} data The metadata.
+ * @returns {Function} Returns `func`.
+ */
+var setData = (function() {
+  var count = 0,
+      lastCalled = 0;
+
+  return function(key, value) {
+    var stamp = now(),
+        remaining = HOT_SPAN - (stamp - lastCalled);
+
+    lastCalled = stamp;
+    if (remaining > 0) {
+      if (++count >= HOT_COUNT) {
+        return key;
+      }
+    } else {
+      count = 0;
+    }
+    return baseSetData(key, value);
+  };
+}());
+
+module.exports = setData;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/shimKeys.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/shimKeys.js 
b/node_modules/lodash/internal/shimKeys.js
new file mode 100644
index 0000000..189e492
--- /dev/null
+++ b/node_modules/lodash/internal/shimKeys.js
@@ -0,0 +1,41 @@
+var isArguments = require('../lang/isArguments'),
+    isArray = require('../lang/isArray'),
+    isIndex = require('./isIndex'),
+    isLength = require('./isLength'),
+    keysIn = require('../object/keysIn');
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * A fallback implementation of `Object.keys` which creates an array of the
+ * own enumerable property names of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+function shimKeys(object) {
+  var props = keysIn(object),
+      propsLength = props.length,
+      length = propsLength && object.length;
+
+  var allowIndexes = !!length && isLength(length) &&
+    (isArray(object) || isArguments(object));
+
+  var index = -1,
+      result = [];
+
+  while (++index < propsLength) {
+    var key = props[index];
+    if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, 
key)) {
+      result.push(key);
+    }
+  }
+  return result;
+}
+
+module.exports = shimKeys;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/sortedUniq.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/sortedUniq.js 
b/node_modules/lodash/internal/sortedUniq.js
new file mode 100644
index 0000000..3ede46a
--- /dev/null
+++ b/node_modules/lodash/internal/sortedUniq.js
@@ -0,0 +1,29 @@
+/**
+ * An implementation of `_.uniq` optimized for sorted arrays without support
+ * for callback shorthands and `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {Function} [iteratee] The function invoked per iteration.
+ * @returns {Array} Returns the new duplicate free array.
+ */
+function sortedUniq(array, iteratee) {
+  var seen,
+      index = -1,
+      length = array.length,
+      resIndex = -1,
+      result = [];
+
+  while (++index < length) {
+    var value = array[index],
+        computed = iteratee ? iteratee(value, index, array) : value;
+
+    if (!index || seen !== computed) {
+      seen = computed;
+      result[++resIndex] = value;
+    }
+  }
+  return result;
+}
+
+module.exports = sortedUniq;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/toIterable.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/toIterable.js 
b/node_modules/lodash/internal/toIterable.js
new file mode 100644
index 0000000..c0a5b28
--- /dev/null
+++ b/node_modules/lodash/internal/toIterable.js
@@ -0,0 +1,22 @@
+var isArrayLike = require('./isArrayLike'),
+    isObject = require('../lang/isObject'),
+    values = require('../object/values');
+
+/**
+ * Converts `value` to an array-like object if it's not one.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {Array|Object} Returns the array-like object.
+ */
+function toIterable(value) {
+  if (value == null) {
+    return [];
+  }
+  if (!isArrayLike(value)) {
+    return values(value);
+  }
+  return isObject(value) ? value : Object(value);
+}
+
+module.exports = toIterable;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/toObject.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/toObject.js 
b/node_modules/lodash/internal/toObject.js
new file mode 100644
index 0000000..da4a008
--- /dev/null
+++ b/node_modules/lodash/internal/toObject.js
@@ -0,0 +1,14 @@
+var isObject = require('../lang/isObject');
+
+/**
+ * Converts `value` to an object if it's not one.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {Object} Returns the object.
+ */
+function toObject(value) {
+  return isObject(value) ? value : Object(value);
+}
+
+module.exports = toObject;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/toPath.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/toPath.js 
b/node_modules/lodash/internal/toPath.js
new file mode 100644
index 0000000..d29f1eb
--- /dev/null
+++ b/node_modules/lodash/internal/toPath.js
@@ -0,0 +1,28 @@
+var baseToString = require('./baseToString'),
+    isArray = require('../lang/isArray');
+
+/** Used to match property names within property paths. */
+var rePropName = 
/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g;
+
+/** Used to match backslashes in property paths. */
+var reEscapeChar = /\\(\\)?/g;
+
+/**
+ * Converts `value` to property path array if it's not one.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {Array} Returns the property path array.
+ */
+function toPath(value) {
+  if (isArray(value)) {
+    return value;
+  }
+  var result = [];
+  baseToString(value).replace(rePropName, function(match, number, quote, 
string) {
+    result.push(quote ? string.replace(reEscapeChar, '$1') : (number || 
match));
+  });
+  return result;
+}
+
+module.exports = toPath;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/trimmedLeftIndex.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/trimmedLeftIndex.js 
b/node_modules/lodash/internal/trimmedLeftIndex.js
new file mode 100644
index 0000000..08aeb13
--- /dev/null
+++ b/node_modules/lodash/internal/trimmedLeftIndex.js
@@ -0,0 +1,19 @@
+var isSpace = require('./isSpace');
+
+/**
+ * Used by `_.trim` and `_.trimLeft` to get the index of the first 
non-whitespace
+ * character of `string`.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {number} Returns the index of the first non-whitespace character.
+ */
+function trimmedLeftIndex(string) {
+  var index = -1,
+      length = string.length;
+
+  while (++index < length && isSpace(string.charCodeAt(index))) {}
+  return index;
+}
+
+module.exports = trimmedLeftIndex;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/trimmedRightIndex.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/trimmedRightIndex.js 
b/node_modules/lodash/internal/trimmedRightIndex.js
new file mode 100644
index 0000000..71b9e38
--- /dev/null
+++ b/node_modules/lodash/internal/trimmedRightIndex.js
@@ -0,0 +1,18 @@
+var isSpace = require('./isSpace');
+
+/**
+ * Used by `_.trim` and `_.trimRight` to get the index of the last 
non-whitespace
+ * character of `string`.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {number} Returns the index of the last non-whitespace character.
+ */
+function trimmedRightIndex(string) {
+  var index = string.length;
+
+  while (index-- && isSpace(string.charCodeAt(index))) {}
+  return index;
+}
+
+module.exports = trimmedRightIndex;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/unescapeHtmlChar.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/unescapeHtmlChar.js 
b/node_modules/lodash/internal/unescapeHtmlChar.js
new file mode 100644
index 0000000..28b3454
--- /dev/null
+++ b/node_modules/lodash/internal/unescapeHtmlChar.js
@@ -0,0 +1,22 @@
+/** Used to map HTML entities to characters. */
+var htmlUnescapes = {
+  '&amp;': '&',
+  '&lt;': '<',
+  '&gt;': '>',
+  '&quot;': '"',
+  '&#39;': "'",
+  '&#96;': '`'
+};
+
+/**
+ * Used by `_.unescape` to convert HTML entities to characters.
+ *
+ * @private
+ * @param {string} chr The matched character to unescape.
+ * @returns {string} Returns the unescaped character.
+ */
+function unescapeHtmlChar(chr) {
+  return htmlUnescapes[chr];
+}
+
+module.exports = unescapeHtmlChar;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/internal/wrapperClone.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/internal/wrapperClone.js 
b/node_modules/lodash/internal/wrapperClone.js
new file mode 100644
index 0000000..e5e10da
--- /dev/null
+++ b/node_modules/lodash/internal/wrapperClone.js
@@ -0,0 +1,18 @@
+var LazyWrapper = require('./LazyWrapper'),
+    LodashWrapper = require('./LodashWrapper'),
+    arrayCopy = require('./arrayCopy');
+
+/**
+ * Creates a clone of `wrapper`.
+ *
+ * @private
+ * @param {Object} wrapper The wrapper to clone.
+ * @returns {Object} Returns the cloned wrapper.
+ */
+function wrapperClone(wrapper) {
+  return wrapper instanceof LazyWrapper
+    ? wrapper.clone()
+    : new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__, 
arrayCopy(wrapper.__actions__));
+}
+
+module.exports = wrapperClone;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang.js b/node_modules/lodash/lang.js
new file mode 100644
index 0000000..8f0a364
--- /dev/null
+++ b/node_modules/lodash/lang.js
@@ -0,0 +1,32 @@
+module.exports = {
+  'clone': require('./lang/clone'),
+  'cloneDeep': require('./lang/cloneDeep'),
+  'eq': require('./lang/eq'),
+  'gt': require('./lang/gt'),
+  'gte': require('./lang/gte'),
+  'isArguments': require('./lang/isArguments'),
+  'isArray': require('./lang/isArray'),
+  'isBoolean': require('./lang/isBoolean'),
+  'isDate': require('./lang/isDate'),
+  'isElement': require('./lang/isElement'),
+  'isEmpty': require('./lang/isEmpty'),
+  'isEqual': require('./lang/isEqual'),
+  'isError': require('./lang/isError'),
+  'isFinite': require('./lang/isFinite'),
+  'isFunction': require('./lang/isFunction'),
+  'isMatch': require('./lang/isMatch'),
+  'isNaN': require('./lang/isNaN'),
+  'isNative': require('./lang/isNative'),
+  'isNull': require('./lang/isNull'),
+  'isNumber': require('./lang/isNumber'),
+  'isObject': require('./lang/isObject'),
+  'isPlainObject': require('./lang/isPlainObject'),
+  'isRegExp': require('./lang/isRegExp'),
+  'isString': require('./lang/isString'),
+  'isTypedArray': require('./lang/isTypedArray'),
+  'isUndefined': require('./lang/isUndefined'),
+  'lt': require('./lang/lt'),
+  'lte': require('./lang/lte'),
+  'toArray': require('./lang/toArray'),
+  'toPlainObject': require('./lang/toPlainObject')
+};

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/clone.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/clone.js 
b/node_modules/lodash/lang/clone.js
new file mode 100644
index 0000000..85ee8fe
--- /dev/null
+++ b/node_modules/lodash/lang/clone.js
@@ -0,0 +1,70 @@
+var baseClone = require('../internal/baseClone'),
+    bindCallback = require('../internal/bindCallback'),
+    isIterateeCall = require('../internal/isIterateeCall');
+
+/**
+ * Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned,
+ * otherwise they are assigned by reference. If `customizer` is provided it's
+ * invoked to produce the cloned values. If `customizer` returns `undefined`
+ * cloning is handled by the method instead. The `customizer` is bound to
+ * `thisArg` and invoked with up to three argument; (value [, index|key, 
object]).
+ *
+ * **Note:** This method is loosely based on the
+ * [structured clone 
algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm).
+ * The enumerable properties of `arguments` objects and objects created by
+ * constructors other than `Object` are cloned to plain `Object` objects. An
+ * empty object is returned for uncloneable values such as functions, DOM 
nodes,
+ * Maps, Sets, and WeakMaps.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @param {Function} [customizer] The function to customize cloning values.
+ * @param {*} [thisArg] The `this` binding of `customizer`.
+ * @returns {*} Returns the cloned value.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney' },
+ *   { 'user': 'fred' }
+ * ];
+ *
+ * var shallow = _.clone(users);
+ * shallow[0] === users[0];
+ * // => true
+ *
+ * var deep = _.clone(users, true);
+ * deep[0] === users[0];
+ * // => false
+ *
+ * // using a customizer callback
+ * var el = _.clone(document.body, function(value) {
+ *   if (_.isElement(value)) {
+ *     return value.cloneNode(false);
+ *   }
+ * });
+ *
+ * el === document.body
+ * // => false
+ * el.nodeName
+ * // => BODY
+ * el.childNodes.length;
+ * // => 0
+ */
+function clone(value, isDeep, customizer, thisArg) {
+  if (isDeep && typeof isDeep != 'boolean' && isIterateeCall(value, isDeep, 
customizer)) {
+    isDeep = false;
+  }
+  else if (typeof isDeep == 'function') {
+    thisArg = customizer;
+    customizer = isDeep;
+    isDeep = false;
+  }
+  return typeof customizer == 'function'
+    ? baseClone(value, isDeep, bindCallback(customizer, thisArg, 3))
+    : baseClone(value, isDeep);
+}
+
+module.exports = clone;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/cloneDeep.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/cloneDeep.js 
b/node_modules/lodash/lang/cloneDeep.js
new file mode 100644
index 0000000..c4d2517
--- /dev/null
+++ b/node_modules/lodash/lang/cloneDeep.js
@@ -0,0 +1,55 @@
+var baseClone = require('../internal/baseClone'),
+    bindCallback = require('../internal/bindCallback');
+
+/**
+ * Creates a deep clone of `value`. If `customizer` is provided it's invoked
+ * to produce the cloned values. If `customizer` returns `undefined` cloning
+ * is handled by the method instead. The `customizer` is bound to `thisArg`
+ * and invoked with up to three argument; (value [, index|key, object]).
+ *
+ * **Note:** This method is loosely based on the
+ * [structured clone 
algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm).
+ * The enumerable properties of `arguments` objects and objects created by
+ * constructors other than `Object` are cloned to plain `Object` objects. An
+ * empty object is returned for uncloneable values such as functions, DOM 
nodes,
+ * Maps, Sets, and WeakMaps.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to deep clone.
+ * @param {Function} [customizer] The function to customize cloning values.
+ * @param {*} [thisArg] The `this` binding of `customizer`.
+ * @returns {*} Returns the deep cloned value.
+ * @example
+ *
+ * var users = [
+ *   { 'user': 'barney' },
+ *   { 'user': 'fred' }
+ * ];
+ *
+ * var deep = _.cloneDeep(users);
+ * deep[0] === users[0];
+ * // => false
+ *
+ * // using a customizer callback
+ * var el = _.cloneDeep(document.body, function(value) {
+ *   if (_.isElement(value)) {
+ *     return value.cloneNode(true);
+ *   }
+ * });
+ *
+ * el === document.body
+ * // => false
+ * el.nodeName
+ * // => BODY
+ * el.childNodes.length;
+ * // => 20
+ */
+function cloneDeep(value, customizer, thisArg) {
+  return typeof customizer == 'function'
+    ? baseClone(value, true, bindCallback(customizer, thisArg, 3))
+    : baseClone(value, true);
+}
+
+module.exports = cloneDeep;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/eq.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/eq.js b/node_modules/lodash/lang/eq.js
new file mode 100644
index 0000000..e6a5ce0
--- /dev/null
+++ b/node_modules/lodash/lang/eq.js
@@ -0,0 +1 @@
+module.exports = require('./isEqual');

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/gt.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/gt.js b/node_modules/lodash/lang/gt.js
new file mode 100644
index 0000000..ddaf5ea
--- /dev/null
+++ b/node_modules/lodash/lang/gt.js
@@ -0,0 +1,25 @@
+/**
+ * Checks if `value` is greater than `other`.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if `value` is greater than `other`, else 
`false`.
+ * @example
+ *
+ * _.gt(3, 1);
+ * // => true
+ *
+ * _.gt(3, 3);
+ * // => false
+ *
+ * _.gt(1, 3);
+ * // => false
+ */
+function gt(value, other) {
+  return value > other;
+}
+
+module.exports = gt;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/gte.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/gte.js b/node_modules/lodash/lang/gte.js
new file mode 100644
index 0000000..4a5ffb5
--- /dev/null
+++ b/node_modules/lodash/lang/gte.js
@@ -0,0 +1,25 @@
+/**
+ * Checks if `value` is greater than or equal to `other`.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if `value` is greater than or equal to 
`other`, else `false`.
+ * @example
+ *
+ * _.gte(3, 1);
+ * // => true
+ *
+ * _.gte(3, 3);
+ * // => true
+ *
+ * _.gte(1, 3);
+ * // => false
+ */
+function gte(value, other) {
+  return value >= other;
+}
+
+module.exports = gte;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isArguments.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isArguments.js 
b/node_modules/lodash/lang/isArguments.js
new file mode 100644
index 0000000..ce9763d
--- /dev/null
+++ b/node_modules/lodash/lang/isArguments.js
@@ -0,0 +1,34 @@
+var isArrayLike = require('../internal/isArrayLike'),
+    isObjectLike = require('../internal/isObjectLike');
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/** Native method references. */
+var propertyIsEnumerable = objectProto.propertyIsEnumerable;
+
+/**
+ * Checks if `value` is classified as an `arguments` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else 
`false`.
+ * @example
+ *
+ * _.isArguments(function() { return arguments; }());
+ * // => true
+ *
+ * _.isArguments([1, 2, 3]);
+ * // => false
+ */
+function isArguments(value) {
+  return isObjectLike(value) && isArrayLike(value) &&
+    hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 
'callee');
+}
+
+module.exports = isArguments;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isArray.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isArray.js 
b/node_modules/lodash/lang/isArray.js
new file mode 100644
index 0000000..9ab023a
--- /dev/null
+++ b/node_modules/lodash/lang/isArray.js
@@ -0,0 +1,40 @@
+var getNative = require('../internal/getNative'),
+    isLength = require('../internal/isLength'),
+    isObjectLike = require('../internal/isObjectLike');
+
+/** `Object#toString` result references. */
+var arrayTag = '[object Array]';
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the 
[`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/* Native method references for those with the same name as other `lodash` 
methods. */
+var nativeIsArray = getNative(Array, 'isArray');
+
+/**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else 
`false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(function() { return arguments; }());
+ * // => false
+ */
+var isArray = nativeIsArray || function(value) {
+  return isObjectLike(value) && isLength(value.length) && 
objToString.call(value) == arrayTag;
+};
+
+module.exports = isArray;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isBoolean.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isBoolean.js 
b/node_modules/lodash/lang/isBoolean.js
new file mode 100644
index 0000000..460e6c5
--- /dev/null
+++ b/node_modules/lodash/lang/isBoolean.js
@@ -0,0 +1,35 @@
+var isObjectLike = require('../internal/isObjectLike');
+
+/** `Object#toString` result references. */
+var boolTag = '[object Boolean]';
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the 
[`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * Checks if `value` is classified as a boolean primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else 
`false`.
+ * @example
+ *
+ * _.isBoolean(false);
+ * // => true
+ *
+ * _.isBoolean(null);
+ * // => false
+ */
+function isBoolean(value) {
+  return value === true || value === false || (isObjectLike(value) && 
objToString.call(value) == boolTag);
+}
+
+module.exports = isBoolean;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isDate.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isDate.js 
b/node_modules/lodash/lang/isDate.js
new file mode 100644
index 0000000..29850d9
--- /dev/null
+++ b/node_modules/lodash/lang/isDate.js
@@ -0,0 +1,35 @@
+var isObjectLike = require('../internal/isObjectLike');
+
+/** `Object#toString` result references. */
+var dateTag = '[object Date]';
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the 
[`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * Checks if `value` is classified as a `Date` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else 
`false`.
+ * @example
+ *
+ * _.isDate(new Date);
+ * // => true
+ *
+ * _.isDate('Mon April 23 2012');
+ * // => false
+ */
+function isDate(value) {
+  return isObjectLike(value) && objToString.call(value) == dateTag;
+}
+
+module.exports = isDate;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isElement.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isElement.js 
b/node_modules/lodash/lang/isElement.js
new file mode 100644
index 0000000..2e9c970
--- /dev/null
+++ b/node_modules/lodash/lang/isElement.js
@@ -0,0 +1,24 @@
+var isObjectLike = require('../internal/isObjectLike'),
+    isPlainObject = require('./isPlainObject');
+
+/**
+ * Checks if `value` is a DOM element.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.
+ * @example
+ *
+ * _.isElement(document.body);
+ * // => true
+ *
+ * _.isElement('<body>');
+ * // => false
+ */
+function isElement(value) {
+  return !!value && value.nodeType === 1 && isObjectLike(value) && 
!isPlainObject(value);
+}
+
+module.exports = isElement;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isEmpty.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isEmpty.js 
b/node_modules/lodash/lang/isEmpty.js
new file mode 100644
index 0000000..6b344a0
--- /dev/null
+++ b/node_modules/lodash/lang/isEmpty.js
@@ -0,0 +1,47 @@
+var isArguments = require('./isArguments'),
+    isArray = require('./isArray'),
+    isArrayLike = require('../internal/isArrayLike'),
+    isFunction = require('./isFunction'),
+    isObjectLike = require('../internal/isObjectLike'),
+    isString = require('./isString'),
+    keys = require('../object/keys');
+
+/**
+ * Checks if `value` is empty. A value is considered empty unless it's an
+ * `arguments` object, array, string, or jQuery-like collection with a length
+ * greater than `0` or an object with own enumerable properties.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {Array|Object|string} value The value to inspect.
+ * @returns {boolean} Returns `true` if `value` is empty, else `false`.
+ * @example
+ *
+ * _.isEmpty(null);
+ * // => true
+ *
+ * _.isEmpty(true);
+ * // => true
+ *
+ * _.isEmpty(1);
+ * // => true
+ *
+ * _.isEmpty([1, 2, 3]);
+ * // => false
+ *
+ * _.isEmpty({ 'a': 1 });
+ * // => false
+ */
+function isEmpty(value) {
+  if (value == null) {
+    return true;
+  }
+  if (isArrayLike(value) && (isArray(value) || isString(value) || 
isArguments(value) ||
+      (isObjectLike(value) && isFunction(value.splice)))) {
+    return !value.length;
+  }
+  return !keys(value).length;
+}
+
+module.exports = isEmpty;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isEqual.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isEqual.js 
b/node_modules/lodash/lang/isEqual.js
new file mode 100644
index 0000000..41bf568
--- /dev/null
+++ b/node_modules/lodash/lang/isEqual.js
@@ -0,0 +1,54 @@
+var baseIsEqual = require('../internal/baseIsEqual'),
+    bindCallback = require('../internal/bindCallback');
+
+/**
+ * Performs a deep comparison between two values to determine if they are
+ * equivalent. If `customizer` is provided it's invoked to compare values.
+ * If `customizer` returns `undefined` comparisons are handled by the method
+ * instead. The `customizer` is bound to `thisArg` and invoked with up to
+ * three arguments: (value, other [, index|key]).
+ *
+ * **Note:** This method supports comparing arrays, booleans, `Date` objects,
+ * numbers, `Object` objects, regexes, and strings. Objects are compared by
+ * their own, not inherited, enumerable properties. Functions and DOM nodes
+ * are **not** supported. Provide a customizer function to extend support
+ * for comparing other values.
+ *
+ * @static
+ * @memberOf _
+ * @alias eq
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @param {Function} [customizer] The function to customize value comparisons.
+ * @param {*} [thisArg] The `this` binding of `customizer`.
+ * @returns {boolean} Returns `true` if the values are equivalent, else 
`false`.
+ * @example
+ *
+ * var object = { 'user': 'fred' };
+ * var other = { 'user': 'fred' };
+ *
+ * object == other;
+ * // => false
+ *
+ * _.isEqual(object, other);
+ * // => true
+ *
+ * // using a customizer callback
+ * var array = ['hello', 'goodbye'];
+ * var other = ['hi', 'goodbye'];
+ *
+ * _.isEqual(array, other, function(value, other) {
+ *   if (_.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/)) {
+ *     return true;
+ *   }
+ * });
+ * // => true
+ */
+function isEqual(value, other, customizer, thisArg) {
+  customizer = typeof customizer == 'function' ? bindCallback(customizer, 
thisArg, 3) : undefined;
+  var result = customizer ? customizer(value, other) : undefined;
+  return  result === undefined ? baseIsEqual(value, other, customizer) : 
!!result;
+}
+
+module.exports = isEqual;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isError.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isError.js 
b/node_modules/lodash/lang/isError.js
new file mode 100644
index 0000000..a7bb0d0
--- /dev/null
+++ b/node_modules/lodash/lang/isError.js
@@ -0,0 +1,36 @@
+var isObjectLike = require('../internal/isObjectLike');
+
+/** `Object#toString` result references. */
+var errorTag = '[object Error]';
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the 
[`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * Checks if `value` is an `Error`, `EvalError`, `RangeError`, 
`ReferenceError`,
+ * `SyntaxError`, `TypeError`, or `URIError` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an error object, else 
`false`.
+ * @example
+ *
+ * _.isError(new Error);
+ * // => true
+ *
+ * _.isError(Error);
+ * // => false
+ */
+function isError(value) {
+  return isObjectLike(value) && typeof value.message == 'string' && 
objToString.call(value) == errorTag;
+}
+
+module.exports = isError;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isFinite.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isFinite.js 
b/node_modules/lodash/lang/isFinite.js
new file mode 100644
index 0000000..e01a307
--- /dev/null
+++ b/node_modules/lodash/lang/isFinite.js
@@ -0,0 +1,35 @@
+/* Native method references for those with the same name as other `lodash` 
methods. */
+var nativeIsFinite = global.isFinite;
+
+/**
+ * Checks if `value` is a finite primitive number.
+ *
+ * **Note:** This method is based on 
[`Number.isFinite`](http://ecma-international.org/ecma-262/6.0/#sec-number.isfinite).
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a finite number, else 
`false`.
+ * @example
+ *
+ * _.isFinite(10);
+ * // => true
+ *
+ * _.isFinite('10');
+ * // => false
+ *
+ * _.isFinite(true);
+ * // => false
+ *
+ * _.isFinite(Object(10));
+ * // => false
+ *
+ * _.isFinite(Infinity);
+ * // => false
+ */
+function isFinite(value) {
+  return typeof value == 'number' && nativeIsFinite(value);
+}
+
+module.exports = isFinite;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isFunction.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isFunction.js 
b/node_modules/lodash/lang/isFunction.js
new file mode 100644
index 0000000..abe5668
--- /dev/null
+++ b/node_modules/lodash/lang/isFunction.js
@@ -0,0 +1,38 @@
+var isObject = require('./isObject');
+
+/** `Object#toString` result references. */
+var funcTag = '[object Function]';
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the 
[`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else 
`false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+  // The use of `Object#toString` avoids issues with the `typeof` operator
+  // in older versions of Chrome and Safari which return 'function' for regexes
+  // and Safari 8 which returns 'object' for typed array constructors.
+  return isObject(value) && objToString.call(value) == funcTag;
+}
+
+module.exports = isFunction;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isMatch.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isMatch.js 
b/node_modules/lodash/lang/isMatch.js
new file mode 100644
index 0000000..0a51d49
--- /dev/null
+++ b/node_modules/lodash/lang/isMatch.js
@@ -0,0 +1,49 @@
+var baseIsMatch = require('../internal/baseIsMatch'),
+    bindCallback = require('../internal/bindCallback'),
+    getMatchData = require('../internal/getMatchData');
+
+/**
+ * Performs a deep comparison between `object` and `source` to determine if
+ * `object` contains equivalent property values. If `customizer` is provided
+ * it's invoked to compare values. If `customizer` returns `undefined`
+ * comparisons are handled by the method instead. The `customizer` is bound
+ * to `thisArg` and invoked with three arguments: (value, other, index|key).
+ *
+ * **Note:** This method supports comparing properties of arrays, booleans,
+ * `Date` objects, numbers, `Object` objects, regexes, and strings. Functions
+ * and DOM nodes are **not** supported. Provide a customizer function to extend
+ * support for comparing other values.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {Object} object The object to inspect.
+ * @param {Object} source The object of property values to match.
+ * @param {Function} [customizer] The function to customize value comparisons.
+ * @param {*} [thisArg] The `this` binding of `customizer`.
+ * @returns {boolean} Returns `true` if `object` is a match, else `false`.
+ * @example
+ *
+ * var object = { 'user': 'fred', 'age': 40 };
+ *
+ * _.isMatch(object, { 'age': 40 });
+ * // => true
+ *
+ * _.isMatch(object, { 'age': 36 });
+ * // => false
+ *
+ * // using a customizer callback
+ * var object = { 'greeting': 'hello' };
+ * var source = { 'greeting': 'hi' };
+ *
+ * _.isMatch(object, source, function(value, other) {
+ *   return _.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/) || 
undefined;
+ * });
+ * // => true
+ */
+function isMatch(object, source, customizer, thisArg) {
+  customizer = typeof customizer == 'function' ? bindCallback(customizer, 
thisArg, 3) : undefined;
+  return baseIsMatch(object, getMatchData(source), customizer);
+}
+
+module.exports = isMatch;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isNaN.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isNaN.js 
b/node_modules/lodash/lang/isNaN.js
new file mode 100644
index 0000000..cf83d56
--- /dev/null
+++ b/node_modules/lodash/lang/isNaN.js
@@ -0,0 +1,34 @@
+var isNumber = require('./isNumber');
+
+/**
+ * Checks if `value` is `NaN`.
+ *
+ * **Note:** This method is not the same as 
[`isNaN`](https://es5.github.io/#x15.1.2.4)
+ * which returns `true` for `undefined` and other non-numeric values.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
+ * @example
+ *
+ * _.isNaN(NaN);
+ * // => true
+ *
+ * _.isNaN(new Number(NaN));
+ * // => true
+ *
+ * isNaN(undefined);
+ * // => true
+ *
+ * _.isNaN(undefined);
+ * // => false
+ */
+function isNaN(value) {
+  // An `NaN` primitive is the only value that is not equal to itself.
+  // Perform the `toStringTag` check first to avoid errors with some host 
objects in IE.
+  return isNumber(value) && value != +value;
+}
+
+module.exports = isNaN;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isNative.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isNative.js 
b/node_modules/lodash/lang/isNative.js
new file mode 100644
index 0000000..3ad7144
--- /dev/null
+++ b/node_modules/lodash/lang/isNative.js
@@ -0,0 +1,48 @@
+var isFunction = require('./isFunction'),
+    isObjectLike = require('../internal/isObjectLike');
+
+/** Used to detect host constructors (Safari > 5). */
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to resolve the decompiled source of functions. */
+var fnToString = Function.prototype.toString;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/** Used to detect if a method is native. */
+var reIsNative = RegExp('^' +
+  fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
+  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') 
+ '$'
+);
+
+/**
+ * Checks if `value` is a native function.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function, else 
`false`.
+ * @example
+ *
+ * _.isNative(Array.prototype.push);
+ * // => true
+ *
+ * _.isNative(_);
+ * // => false
+ */
+function isNative(value) {
+  if (value == null) {
+    return false;
+  }
+  if (isFunction(value)) {
+    return reIsNative.test(fnToString.call(value));
+  }
+  return isObjectLike(value) && reIsHostCtor.test(value);
+}
+
+module.exports = isNative;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isNull.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isNull.js 
b/node_modules/lodash/lang/isNull.js
new file mode 100644
index 0000000..ec66c4d
--- /dev/null
+++ b/node_modules/lodash/lang/isNull.js
@@ -0,0 +1,21 @@
+/**
+ * Checks if `value` is `null`.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is `null`, else `false`.
+ * @example
+ *
+ * _.isNull(null);
+ * // => true
+ *
+ * _.isNull(void 0);
+ * // => false
+ */
+function isNull(value) {
+  return value === null;
+}
+
+module.exports = isNull;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isNumber.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isNumber.js 
b/node_modules/lodash/lang/isNumber.js
new file mode 100644
index 0000000..6764d6f
--- /dev/null
+++ b/node_modules/lodash/lang/isNumber.js
@@ -0,0 +1,41 @@
+var isObjectLike = require('../internal/isObjectLike');
+
+/** `Object#toString` result references. */
+var numberTag = '[object Number]';
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the 
[`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * Checks if `value` is classified as a `Number` primitive or object.
+ *
+ * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are 
classified
+ * as numbers, use the `_.isFinite` method.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else 
`false`.
+ * @example
+ *
+ * _.isNumber(8.4);
+ * // => true
+ *
+ * _.isNumber(NaN);
+ * // => true
+ *
+ * _.isNumber('8.4');
+ * // => false
+ */
+function isNumber(value) {
+  return typeof value == 'number' || (isObjectLike(value) && 
objToString.call(value) == numberTag);
+}
+
+module.exports = isNumber;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isObject.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isObject.js 
b/node_modules/lodash/lang/isObject.js
new file mode 100644
index 0000000..6db5998
--- /dev/null
+++ b/node_modules/lodash/lang/isObject.js
@@ -0,0 +1,28 @@
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of 
`Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new 
String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+function isObject(value) {
+  // Avoid a V8 JIT bug in Chrome 19-20.
+  // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+  var type = typeof value;
+  return !!value && (type == 'object' || type == 'function');
+}
+
+module.exports = isObject;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isPlainObject.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isPlainObject.js 
b/node_modules/lodash/lang/isPlainObject.js
new file mode 100644
index 0000000..5b34c83
--- /dev/null
+++ b/node_modules/lodash/lang/isPlainObject.js
@@ -0,0 +1,71 @@
+var baseForIn = require('../internal/baseForIn'),
+    isArguments = require('./isArguments'),
+    isObjectLike = require('../internal/isObjectLike');
+
+/** `Object#toString` result references. */
+var objectTag = '[object Object]';
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the 
[`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * Checks if `value` is a plain object, that is, an object created by the
+ * `Object` constructor or one with a `[[Prototype]]` of `null`.
+ *
+ * **Note:** This method assumes objects created by the `Object` constructor
+ * have no inherited enumerable properties.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a plain object, else 
`false`.
+ * @example
+ *
+ * function Foo() {
+ *   this.a = 1;
+ * }
+ *
+ * _.isPlainObject(new Foo);
+ * // => false
+ *
+ * _.isPlainObject([1, 2, 3]);
+ * // => false
+ *
+ * _.isPlainObject({ 'x': 0, 'y': 0 });
+ * // => true
+ *
+ * _.isPlainObject(Object.create(null));
+ * // => true
+ */
+function isPlainObject(value) {
+  var Ctor;
+
+  // Exit early for non `Object` objects.
+  if (!(isObjectLike(value) && objToString.call(value) == objectTag && 
!isArguments(value)) ||
+      (!hasOwnProperty.call(value, 'constructor') && (Ctor = 
value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {
+    return false;
+  }
+  // IE < 9 iterates inherited properties before own properties. If the first
+  // iterated property is an object's own property then there are no inherited
+  // enumerable properties.
+  var result;
+  // 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.
+  baseForIn(value, function(subValue, key) {
+    result = key;
+  });
+  return result === undefined || hasOwnProperty.call(value, result);
+}
+
+module.exports = isPlainObject;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isRegExp.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isRegExp.js 
b/node_modules/lodash/lang/isRegExp.js
new file mode 100644
index 0000000..f029cbd
--- /dev/null
+++ b/node_modules/lodash/lang/isRegExp.js
@@ -0,0 +1,35 @@
+var isObject = require('./isObject');
+
+/** `Object#toString` result references. */
+var regexpTag = '[object RegExp]';
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the 
[`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * Checks if `value` is classified as a `RegExp` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else 
`false`.
+ * @example
+ *
+ * _.isRegExp(/abc/);
+ * // => true
+ *
+ * _.isRegExp('/abc/');
+ * // => false
+ */
+function isRegExp(value) {
+  return isObject(value) && objToString.call(value) == regexpTag;
+}
+
+module.exports = isRegExp;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isString.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isString.js 
b/node_modules/lodash/lang/isString.js
new file mode 100644
index 0000000..8b28ee1
--- /dev/null
+++ b/node_modules/lodash/lang/isString.js
@@ -0,0 +1,35 @@
+var isObjectLike = require('../internal/isObjectLike');
+
+/** `Object#toString` result references. */
+var stringTag = '[object String]';
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the 
[`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * Checks if `value` is classified as a `String` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else 
`false`.
+ * @example
+ *
+ * _.isString('abc');
+ * // => true
+ *
+ * _.isString(1);
+ * // => false
+ */
+function isString(value) {
+  return typeof value == 'string' || (isObjectLike(value) && 
objToString.call(value) == stringTag);
+}
+
+module.exports = isString;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isTypedArray.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isTypedArray.js 
b/node_modules/lodash/lang/isTypedArray.js
new file mode 100644
index 0000000..6e8a6e0
--- /dev/null
+++ b/node_modules/lodash/lang/isTypedArray.js
@@ -0,0 +1,74 @@
+var isLength = require('../internal/isLength'),
+    isObjectLike = require('../internal/isObjectLike');
+
+/** `Object#toString` result references. */
+var argsTag = '[object Arguments]',
+    arrayTag = '[object Array]',
+    boolTag = '[object Boolean]',
+    dateTag = '[object Date]',
+    errorTag = '[object Error]',
+    funcTag = '[object Function]',
+    mapTag = '[object Map]',
+    numberTag = '[object Number]',
+    objectTag = '[object Object]',
+    regexpTag = '[object RegExp]',
+    setTag = '[object Set]',
+    stringTag = '[object String]',
+    weakMapTag = '[object WeakMap]';
+
+var arrayBufferTag = '[object ArrayBuffer]',
+    float32Tag = '[object Float32Array]',
+    float64Tag = '[object Float64Array]',
+    int8Tag = '[object Int8Array]',
+    int16Tag = '[object Int16Array]',
+    int32Tag = '[object Int32Array]',
+    uint8Tag = '[object Uint8Array]',
+    uint8ClampedTag = '[object Uint8ClampedArray]',
+    uint16Tag = '[object Uint16Array]',
+    uint32Tag = '[object Uint32Array]';
+
+/** Used to identify `toStringTag` values of typed arrays. */
+var typedArrayTags = {};
+typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
+typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
+typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
+typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
+typedArrayTags[uint32Tag] = true;
+typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
+typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
+typedArrayTags[dateTag] = typedArrayTags[errorTag] =
+typedArrayTags[funcTag] = typedArrayTags[mapTag] =
+typedArrayTags[numberTag] = typedArrayTags[objectTag] =
+typedArrayTags[regexpTag] = typedArrayTags[setTag] =
+typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the 
[`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/**
+ * Checks if `value` is classified as a typed array.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else 
`false`.
+ * @example
+ *
+ * _.isTypedArray(new Uint8Array);
+ * // => true
+ *
+ * _.isTypedArray([]);
+ * // => false
+ */
+function isTypedArray(value) {
+  return isObjectLike(value) && isLength(value.length) && 
!!typedArrayTags[objToString.call(value)];
+}
+
+module.exports = isTypedArray;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/isUndefined.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/isUndefined.js 
b/node_modules/lodash/lang/isUndefined.js
new file mode 100644
index 0000000..d64e560
--- /dev/null
+++ b/node_modules/lodash/lang/isUndefined.js
@@ -0,0 +1,21 @@
+/**
+ * Checks if `value` is `undefined`.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
+ * @example
+ *
+ * _.isUndefined(void 0);
+ * // => true
+ *
+ * _.isUndefined(null);
+ * // => false
+ */
+function isUndefined(value) {
+  return value === undefined;
+}
+
+module.exports = isUndefined;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/lt.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/lt.js b/node_modules/lodash/lang/lt.js
new file mode 100644
index 0000000..4439870
--- /dev/null
+++ b/node_modules/lodash/lang/lt.js
@@ -0,0 +1,25 @@
+/**
+ * Checks if `value` is less than `other`.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if `value` is less than `other`, else 
`false`.
+ * @example
+ *
+ * _.lt(1, 3);
+ * // => true
+ *
+ * _.lt(3, 3);
+ * // => false
+ *
+ * _.lt(3, 1);
+ * // => false
+ */
+function lt(value, other) {
+  return value < other;
+}
+
+module.exports = lt;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/lte.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/lte.js b/node_modules/lodash/lang/lte.js
new file mode 100644
index 0000000..e2b8ab1
--- /dev/null
+++ b/node_modules/lodash/lang/lte.js
@@ -0,0 +1,25 @@
+/**
+ * Checks if `value` is less than or equal to `other`.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if `value` is less than or equal to 
`other`, else `false`.
+ * @example
+ *
+ * _.lte(1, 3);
+ * // => true
+ *
+ * _.lte(3, 3);
+ * // => true
+ *
+ * _.lte(3, 1);
+ * // => false
+ */
+function lte(value, other) {
+  return value <= other;
+}
+
+module.exports = lte;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/toArray.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/toArray.js 
b/node_modules/lodash/lang/toArray.js
new file mode 100644
index 0000000..72b0b46
--- /dev/null
+++ b/node_modules/lodash/lang/toArray.js
@@ -0,0 +1,32 @@
+var arrayCopy = require('../internal/arrayCopy'),
+    getLength = require('../internal/getLength'),
+    isLength = require('../internal/isLength'),
+    values = require('../object/values');
+
+/**
+ * Converts `value` to an array.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {Array} Returns the converted array.
+ * @example
+ *
+ * (function() {
+ *   return _.toArray(arguments).slice(1);
+ * }(1, 2, 3));
+ * // => [2, 3]
+ */
+function toArray(value) {
+  var length = value ? getLength(value) : 0;
+  if (!isLength(length)) {
+    return values(value);
+  }
+  if (!length) {
+    return [];
+  }
+  return arrayCopy(value);
+}
+
+module.exports = toArray;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/lang/toPlainObject.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/lang/toPlainObject.js 
b/node_modules/lodash/lang/toPlainObject.js
new file mode 100644
index 0000000..6315176
--- /dev/null
+++ b/node_modules/lodash/lang/toPlainObject.js
@@ -0,0 +1,31 @@
+var baseCopy = require('../internal/baseCopy'),
+    keysIn = require('../object/keysIn');
+
+/**
+ * Converts `value` to a plain object flattening inherited enumerable
+ * properties of `value` to own properties of the plain object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {Object} Returns the converted plain object.
+ * @example
+ *
+ * function Foo() {
+ *   this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.assign({ 'a': 1 }, new Foo);
+ * // => { 'a': 1, 'b': 2 }
+ *
+ * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
+ * // => { 'a': 1, 'b': 2, 'c': 3 }
+ */
+function toPlainObject(value) {
+  return baseCopy(value, keysIn(value));
+}
+
+module.exports = toPlainObject;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/math.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/math.js b/node_modules/lodash/math.js
new file mode 100644
index 0000000..21409ce
--- /dev/null
+++ b/node_modules/lodash/math.js
@@ -0,0 +1,9 @@
+module.exports = {
+  'add': require('./math/add'),
+  'ceil': require('./math/ceil'),
+  'floor': require('./math/floor'),
+  'max': require('./math/max'),
+  'min': require('./math/min'),
+  'round': require('./math/round'),
+  'sum': require('./math/sum')
+};

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/math/add.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/math/add.js b/node_modules/lodash/math/add.js
new file mode 100644
index 0000000..59ced2f
--- /dev/null
+++ b/node_modules/lodash/math/add.js
@@ -0,0 +1,19 @@
+/**
+ * Adds two numbers.
+ *
+ * @static
+ * @memberOf _
+ * @category Math
+ * @param {number} augend The first number to add.
+ * @param {number} addend The second number to add.
+ * @returns {number} Returns the sum.
+ * @example
+ *
+ * _.add(6, 4);
+ * // => 10
+ */
+function add(augend, addend) {
+  return (+augend || 0) + (+addend || 0);
+}
+
+module.exports = add;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/math/ceil.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/math/ceil.js b/node_modules/lodash/math/ceil.js
new file mode 100644
index 0000000..9dbf0c2
--- /dev/null
+++ b/node_modules/lodash/math/ceil.js
@@ -0,0 +1,25 @@
+var createRound = require('../internal/createRound');
+
+/**
+ * Calculates `n` rounded up to `precision`.
+ *
+ * @static
+ * @memberOf _
+ * @category Math
+ * @param {number} n The number to round up.
+ * @param {number} [precision=0] The precision to round up to.
+ * @returns {number} Returns the rounded up number.
+ * @example
+ *
+ * _.ceil(4.006);
+ * // => 5
+ *
+ * _.ceil(6.004, 2);
+ * // => 6.01
+ *
+ * _.ceil(6040, -2);
+ * // => 6100
+ */
+var ceil = createRound('ceil');
+
+module.exports = ceil;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/math/floor.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/math/floor.js 
b/node_modules/lodash/math/floor.js
new file mode 100644
index 0000000..e4dcae8
--- /dev/null
+++ b/node_modules/lodash/math/floor.js
@@ -0,0 +1,25 @@
+var createRound = require('../internal/createRound');
+
+/**
+ * Calculates `n` rounded down to `precision`.
+ *
+ * @static
+ * @memberOf _
+ * @category Math
+ * @param {number} n The number to round down.
+ * @param {number} [precision=0] The precision to round down to.
+ * @returns {number} Returns the rounded down number.
+ * @example
+ *
+ * _.floor(4.006);
+ * // => 4
+ *
+ * _.floor(0.046, 2);
+ * // => 0.04
+ *
+ * _.floor(4060, -2);
+ * // => 4000
+ */
+var floor = createRound('floor');
+
+module.exports = floor;

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/f45316a0/node_modules/lodash/math/max.js
----------------------------------------------------------------------
diff --git a/node_modules/lodash/math/max.js b/node_modules/lodash/math/max.js
new file mode 100644
index 0000000..220c105
--- /dev/null
+++ b/node_modules/lodash/math/max.js
@@ -0,0 +1,56 @@
+var createExtremum = require('../internal/createExtremum'),
+    gt = require('../lang/gt');
+
+/** Used as references for `-Infinity` and `Infinity`. */
+var NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY;
+
+/**
+ * Gets the maximum value of `collection`. If `collection` is empty or falsey
+ * `-Infinity` is returned. If an iteratee function is provided it's invoked
+ * for each value in `collection` to generate the criterion by which the value
+ * is ranked. The `iteratee` is bound to `thisArg` and invoked with three
+ * arguments: (value, index, collection).
+ *
+ * If a property name is provided for `iteratee` the created `_.property`
+ * style callback returns the property value of the given element.
+ *
+ * If a value is also provided for `thisArg` the created `_.matchesProperty`
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `iteratee` the created `_.matches` style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @category Math
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function|Object|string} [iteratee] The function invoked per 
iteration.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {*} Returns the maximum value.
+ * @example
+ *
+ * _.max([4, 2, 8, 6]);
+ * // => 8
+ *
+ * _.max([]);
+ * // => -Infinity
+ *
+ * var users = [
+ *   { 'user': 'barney', 'age': 36 },
+ *   { 'user': 'fred',   'age': 40 }
+ * ];
+ *
+ * _.max(users, function(chr) {
+ *   return chr.age;
+ * });
+ * // => { 'user': 'fred', 'age': 40 }
+ *
+ * // using the `_.property` callback shorthand
+ * _.max(users, 'age');
+ * // => { 'user': 'fred', 'age': 40 }
+ */
+var max = createExtremum(gt, NEGATIVE_INFINITY);
+
+module.exports = max;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cordova.apache.org
For additional commands, e-mail: commits-h...@cordova.apache.org

Reply via email to