Index: imaps-frontend/node_modules/utila/lib/array.js
===================================================================
--- imaps-frontend/node_modules/utila/lib/array.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/utila/lib/array.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,165 @@
+// Generated by CoffeeScript 1.6.3
+var array;
+
+module.exports = array = {
+  /*
+  	Tries to turn anything into an array.
+  */
+
+  from: function(r) {
+    return Array.prototype.slice.call(r);
+  },
+  /*
+  	Clone of an array. Properties will be shallow copies.
+  */
+
+  simpleClone: function(a) {
+    return a.slice(0);
+  },
+  shallowEqual: function(a1, a2) {
+    var i, val, _i, _len;
+    if (!(Array.isArray(a1) && Array.isArray(a2) && a1.length === a2.length)) {
+      return false;
+    }
+    for (i = _i = 0, _len = a1.length; _i < _len; i = ++_i) {
+      val = a1[i];
+      if (a2[i] !== val) {
+        return false;
+      }
+    }
+    return true;
+  },
+  pluck: function(a, i) {
+    var index, value, _i, _len;
+    if (a.length < 1) {
+      return a;
+    }
+    for (index = _i = 0, _len = a.length; _i < _len; index = ++_i) {
+      value = a[index];
+      if (index > i) {
+        a[index - 1] = a[index];
+      }
+    }
+    a.length = a.length - 1;
+    return a;
+  },
+  pluckItem: function(a, item) {
+    var index, removed, value, _i, _len;
+    if (a.length < 1) {
+      return a;
+    }
+    removed = 0;
+    for (index = _i = 0, _len = a.length; _i < _len; index = ++_i) {
+      value = a[index];
+      if (value === item) {
+        removed++;
+        continue;
+      }
+      if (removed !== 0) {
+        a[index - removed] = a[index];
+      }
+    }
+    if (removed > 0) {
+      a.length = a.length - removed;
+    }
+    return a;
+  },
+  pluckOneItem: function(a, item) {
+    var index, reached, value, _i, _len;
+    if (a.length < 1) {
+      return a;
+    }
+    reached = false;
+    for (index = _i = 0, _len = a.length; _i < _len; index = ++_i) {
+      value = a[index];
+      if (!reached) {
+        if (value === item) {
+          reached = true;
+          continue;
+        }
+      } else {
+        a[index - 1] = a[index];
+      }
+    }
+    if (reached) {
+      a.length = a.length - 1;
+    }
+    return a;
+  },
+  pluckByCallback: function(a, cb) {
+    var index, removed, value, _i, _len;
+    if (a.length < 1) {
+      return a;
+    }
+    removed = 0;
+    for (index = _i = 0, _len = a.length; _i < _len; index = ++_i) {
+      value = a[index];
+      if (cb(value, index)) {
+        removed++;
+        continue;
+      }
+      if (removed !== 0) {
+        a[index - removed] = a[index];
+      }
+    }
+    if (removed > 0) {
+      a.length = a.length - removed;
+    }
+    return a;
+  },
+  pluckMultiple: function(array, indexesToRemove) {
+    var i, removedSoFar, _i, _len;
+    if (array.length < 1) {
+      return array;
+    }
+    removedSoFar = 0;
+    indexesToRemove.sort();
+    for (_i = 0, _len = indexesToRemove.length; _i < _len; _i++) {
+      i = indexesToRemove[_i];
+      this.pluck(array, i - removedSoFar);
+      removedSoFar++;
+    }
+    return array;
+  },
+  injectByCallback: function(a, toInject, shouldInject) {
+    var i, len, val, valA, valB, _i, _len;
+    valA = null;
+    valB = null;
+    len = a.length;
+    if (len < 1) {
+      a.push(toInject);
+      return a;
+    }
+    for (i = _i = 0, _len = a.length; _i < _len; i = ++_i) {
+      val = a[i];
+      valA = valB;
+      valB = val;
+      if (shouldInject(valA, valB, toInject)) {
+        return a.splice(i, 0, toInject);
+      }
+    }
+    a.push(toInject);
+    return a;
+  },
+  injectInIndex: function(a, index, toInject) {
+    var i, len, toPut, toPutNext;
+    len = a.length;
+    i = index;
+    if (len < 1) {
+      a.push(toInject);
+      return a;
+    }
+    toPut = toInject;
+    toPutNext = null;
+    for(; i <= len; i++){
+
+			toPutNext = a[i];
+
+			a[i] = toPut;
+
+			toPut = toPutNext;
+
+		};
+    return null;
+  }
+};
