diff --git a/node_modules/indent-string/index.js b/node_modules/indent-string/index.js
new file mode 100644
index 0000000..4a21687
--- /dev/null
+++ b/node_modules/indent-string/index.js
@@ -0,0 +1,20 @@
+'use strict';
+var repeating = require('repeating');
+
+module.exports = function (str, indent, count) {
+	if (typeof str !== 'string' || typeof indent !== 'string') {
+		throw new TypeError('`string` and `indent` should be strings');
+	}
+
+	if (count != null && typeof count !== 'number') {
+		throw new TypeError('`count` should be a number');
+	}
+
+	if (count === 0) {
+		return str;
+	}
+
+	indent = count > 1 ? repeating(indent, count) : indent;
+
+	return str.replace(/^(?!\s*$)/mg, indent);
+};
diff --git a/node_modules/indent-string/license b/node_modules/indent-string/license
new file mode 100644
index 0000000..654d0bf
--- /dev/null
+++ b/node_modules/indent-string/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.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.
diff --git a/node_modules/indent-string/package.json b/node_modules/indent-string/package.json
new file mode 100644
index 0000000..03d089f
--- /dev/null
+++ b/node_modules/indent-string/package.json
@@ -0,0 +1,69 @@
+{
+  "_from": "indent-string@^2.1.0",
+  "_id": "indent-string@2.1.0",
+  "_inBundle": false,
+  "_integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+  "_location": "/indent-string",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "indent-string@^2.1.0",
+    "name": "indent-string",
+    "escapedName": "indent-string",
+    "rawSpec": "^2.1.0",
+    "saveSpec": null,
+    "fetchSpec": "^2.1.0"
+  },
+  "_requiredBy": [
+    "/lpad-align",
+    "/redent"
+  ],
+  "_resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+  "_shasum": "8e2d48348742121b4a8218b7a137e9a52049dc80",
+  "_spec": "indent-string@^2.1.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\lpad-align",
+  "author": {
+    "name": "Sindre Sorhus",
+    "email": "sindresorhus@gmail.com",
+    "url": "sindresorhus.com"
+  },
+  "bugs": {
+    "url": "https://github.com/sindresorhus/indent-string/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "repeating": "^2.0.0"
+  },
+  "deprecated": false,
+  "description": "Indent each line in a string",
+  "devDependencies": {
+    "mocha": "*"
+  },
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/sindresorhus/indent-string#readme",
+  "keywords": [
+    "indent",
+    "string",
+    "str",
+    "pad",
+    "align",
+    "line",
+    "text"
+  ],
+  "license": "MIT",
+  "name": "indent-string",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/sindresorhus/indent-string.git"
+  },
+  "scripts": {
+    "test": "mocha"
+  },
+  "version": "2.1.0"
+}
diff --git a/node_modules/indent-string/readme.md b/node_modules/indent-string/readme.md
new file mode 100644
index 0000000..89f14ac
--- /dev/null
+++ b/node_modules/indent-string/readme.md
@@ -0,0 +1,58 @@
+# indent-string [![Build Status](https://travis-ci.org/sindresorhus/indent-string.svg?branch=master)](https://travis-ci.org/sindresorhus/indent-string)
+
+> Indent each line in a string
+
+
+## Install
+
+```
+$ npm install --save indent-string
+```
+
+
+## Usage
+
+```js
+var indentString = require('indent-string');
+
+indentString('Unicorns\nRainbows', '♥', 4);
+//=> ♥♥♥♥Unicorns
+//=> ♥♥♥♥Rainbows
+```
+
+
+## API
+
+### indentString(string, indent, count)
+
+#### string
+
+**Required**  
+Type: `string`
+
+The string you want to indent.
+
+#### indent
+
+**Required**  
+Type: `string`
+
+The string to use for the indent.
+
+#### count
+
+Type: `number`  
+Default: `1`
+
+How many times you want `indent` repeated.
+
+
+## Related
+
+- [indent-string-cli](https://github.com/sindresorhus/indent-string-cli) - CLI for this module
+- [strip-indent](https://github.com/sindresorhus/strip-indent) - Strip leading whitespace from every line in a string
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
