Index: frontend/node_modules/dedent/LICENSE
===================================================================
--- frontend/node_modules/dedent/LICENSE	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/dedent/LICENSE	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Desmond Brand (dmnd@desmondbrand.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
Index: frontend/node_modules/dedent/README.md
===================================================================
--- frontend/node_modules/dedent/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/dedent/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,59 @@
+# Dedent
+
+An ES6 string tag that strips indentation from multi-line strings.
+
+## Usage
+
+```js
+import dedent from "dedent";
+
+function usageExample() {
+  const first = dedent`A string that gets so long you need to break it over
+                       multiple lines. Luckily dedent is here to keep it
+                       readable without lots of spaces ending up in the string
+                       itself.`;
+
+  const second = dedent`
+    Leading and trailing lines will be trimmed, so you can write something like
+    this and have it work as you expect:
+
+      * how convenient it is
+      * that I can use an indented list
+         - and still have it do the right thing
+
+    That's all.
+  `;
+
+  const third = dedent(`
+    Wait! I lied. Dedent can also be used as a function.
+  `);
+
+  return first + "\n\n" + second + "\n\n" + third;
+}
+```
+
+```js
+> console.log(usageExample());
+```
+
+```
+A string that gets so long you need to break it over
+multiple lines. Luckily dedent is here to keep it
+readable without lots of spaces ending up in the string
+itself.
+
+Leading and trailing lines will be trimmed, so you can write something like
+this and have it work as you expect:
+
+  * how convenient it is
+  * that I can use an indented list
+    - and still have it do the right thing
+
+That's all.
+
+Wait! I lied. Dedent can also be used as a function.
+```
+
+## License
+
+MIT
Index: frontend/node_modules/dedent/dist/dedent.js
===================================================================
--- frontend/node_modules/dedent/dist/dedent.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/dedent/dist/dedent.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,59 @@
+"use strict";
+
+function dedent(strings) {
+
+  var raw = void 0;
+  if (typeof strings === "string") {
+    // dedent can be used as a plain function
+    raw = [strings];
+  } else {
+    raw = strings.raw;
+  }
+
+  // first, perform interpolation
+  var result = "";
+  for (var i = 0; i < raw.length; i++) {
+    result += raw[i].
+    // join lines when there is a suppressed newline
+    replace(/\\\n[ \t]*/g, "").
+
+    // handle escaped backticks
+    replace(/\\`/g, "`");
+
+    if (i < (arguments.length <= 1 ? 0 : arguments.length - 1)) {
+      result += arguments.length <= i + 1 ? undefined : arguments[i + 1];
+    }
+  }
+
+  // now strip indentation
+  var lines = result.split("\n");
+  var mindent = null;
+  lines.forEach(function (l) {
+    var m = l.match(/^(\s+)\S+/);
+    if (m) {
+      var indent = m[1].length;
+      if (!mindent) {
+        // this is the first indented line
+        mindent = indent;
+      } else {
+        mindent = Math.min(mindent, indent);
+      }
+    }
+  });
+
+  if (mindent !== null) {
+    result = lines.map(function (l) {
+      return l[0] === " " ? l.slice(mindent) : l;
+    }).join("\n");
+  }
+
+  // dedent eats leading and trailing whitespace too
+  result = result.trim();
+
+  // handle escaped newlines at the end to ensure they don't get stripped too
+  return result.replace(/\\n/g, "\n");
+}
+
+if (typeof module !== "undefined") {
+  module.exports = dedent;
+}
Index: frontend/node_modules/dedent/package.json
===================================================================
--- frontend/node_modules/dedent/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/dedent/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,43 @@
+{
+  "name": "dedent",
+  "version": "0.7.0",
+  "description": "An ES6 string tag that strips indentation from multi-line strings",
+  "main": "dist/dedent.js",
+  "files": [
+    "dist/dedent.js",
+    "LICENSE"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/dmnd/dedent.git"
+  },
+  "keywords": [
+    "dedent",
+    "tag",
+    "multi-line string",
+    "es6"
+  ],
+  "author": {
+    "name": "Desmond Brand",
+    "email": "dmnd@desmondbrand.com",
+    "url": "http://desmondbrand.com"
+  },
+  "license": "MIT",
+  "bugs": {
+    "url": "https://github.com/dmnd/dedent/issues"
+  },
+  "homepage": "https://github.com/dmnd/dedent",
+  "devDependencies": {
+    "babel-cli": "^6.22.2",
+    "babel-preset-es2015": "^6.22.0",
+    "babel-preset-es2016": "^6.22.0",
+    "babel-preset-es2017": "^6.22.0",
+    "eslint": "^3.14.1",
+    "jest": "^18.1.0"
+  },
+  "scripts": {
+    "build": "babel dedent.js --out-file dist/dedent.js",
+    "lint": "eslint dedent.js __tests__",
+    "test": "jest"
+  }
+}
