diff --git a/node_modules/path-root-regex/LICENSE b/node_modules/path-root-regex/LICENSE
new file mode 100644
index 0000000..e28e603
--- /dev/null
+++ b/node_modules/path-root-regex/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016, Jon Schlinkert.
+
+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/path-root-regex/README.md b/node_modules/path-root-regex/README.md
new file mode 100644
index 0000000..9cc61ec
--- /dev/null
+++ b/node_modules/path-root-regex/README.md
@@ -0,0 +1,53 @@
+# path-root-regex [![NPM version](https://img.shields.io/npm/v/path-root-regex.svg?style=flat)](https://www.npmjs.com/package/path-root-regex) [![NPM downloads](https://img.shields.io/npm/dm/path-root-regex.svg?style=flat)](https://npmjs.org/package/path-root-regex) [![Build Status](https://img.shields.io/travis/regexhq/path-root-regex.svg?style=flat)](https://travis-ci.org/regexhq/path-root-regex)
+
+> Regular expression for getting the root of a posix or windows filepath.
+
+You might also be interested in [path-root](https://github.com/jonschlinkert/path-root).
+
+## Usage
+
+The module exposes a function that must be called to get the regex (modified from the split device regex in the node.js path module);
+
+```js
+var pathRootRegex = require('path-root-regex');
+
+console.log(pathRootRegex() instanceof RegExp);
+//=> true
+```
+
+See the [path-root](https://github.com/jonschlinkert/path-root) module for examples.
+
+## Related projects
+
+You might also be interested in these projects:
+
+* [is-absolute](https://www.npmjs.com/package/is-absolute): Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute. | [homepage](https://github.com/jonschlinkert/is-absolute)
+* [parse-filepath](https://www.npmjs.com/package/parse-filepath): Parse a filepath into an object. Falls back on the native node.js `path.parse` method if… [more](https://www.npmjs.com/package/parse-filepath) | [homepage](https://github.com/jonschlinkert/parse-filepath)
+
+## Contributing
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/path-root-regex/issues/new).
+
+## Running tests
+
+Install dev dependencies:
+
+```sh
+$ npm install -d && npm test
+```
+
+## Author
+
+**Jon Schlinkert**
+
+* [github/jonschlinkert](https://github.com/jonschlinkert)
+* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
+
+## License
+
+Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT license](https://github.com/regexhq/path-root-regex/blob/master/LICENSE).
+
+***
+
+_This file was generated by [verb](https://github.com/verbose/verb), v, on March 29, 2016._
\ No newline at end of file
diff --git a/node_modules/path-root-regex/index.js b/node_modules/path-root-regex/index.js
new file mode 100644
index 0000000..b6eeea4
--- /dev/null
+++ b/node_modules/path-root-regex/index.js
@@ -0,0 +1,13 @@
+/*!
+ * path-root-regex <https://github.com/jonschlinkert/path-root-regex>
+ *
+ * Copyright (c) 2016, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */
+
+'use strict';
+
+module.exports = function() {
+  // Regex is modified from the split device regex in the node.js path module.
+  return /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?/;
+};
diff --git a/node_modules/path-root-regex/package.json b/node_modules/path-root-regex/package.json
new file mode 100644
index 0000000..8b80ca8
--- /dev/null
+++ b/node_modules/path-root-regex/package.json
@@ -0,0 +1,96 @@
+{
+  "_from": "path-root-regex@^0.1.0",
+  "_id": "path-root-regex@0.1.2",
+  "_inBundle": false,
+  "_integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
+  "_location": "/path-root-regex",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "path-root-regex@^0.1.0",
+    "name": "path-root-regex",
+    "escapedName": "path-root-regex",
+    "rawSpec": "^0.1.0",
+    "saveSpec": null,
+    "fetchSpec": "^0.1.0"
+  },
+  "_requiredBy": [
+    "/path-root"
+  ],
+  "_resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
+  "_shasum": "bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d",
+  "_spec": "path-root-regex@^0.1.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\path-root",
+  "author": {
+    "name": "Jon Schlinkert",
+    "url": "https://github.com/jonschlinkert"
+  },
+  "bugs": {
+    "url": "https://github.com/regexhq/path-root-regex/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Regular expression for getting the root of a posix or windows filepath.",
+  "devDependencies": {
+    "gulp-format-md": "^0.1.7",
+    "mocha": "^2.4.5"
+  },
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/regexhq/path-root-regex",
+  "keywords": [
+    "detect",
+    "expression",
+    "file",
+    "filepath",
+    "match",
+    "parse",
+    "path",
+    "regex",
+    "regexp",
+    "regular",
+    "root",
+    "test"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "path-root-regex",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/regexhq/path-root-regex.git"
+  },
+  "scripts": {
+    "test": "mocha"
+  },
+  "verb": {
+    "run": true,
+    "toc": false,
+    "layout": false,
+    "tasks": [
+      "readme"
+    ],
+    "plugins": [
+      "gulp-format-md"
+    ],
+    "related": {
+      "highlight": "path-root",
+      "list": [
+        "parse-filepath",
+        "is-absolute"
+      ]
+    },
+    "reflinks": [
+      "verb",
+      "path-root"
+    ],
+    "lint": {
+      "reflinks": true
+    }
+  },
+  "version": "0.1.2"
+}
