diff --git a/node_modules/url-parse-lax/index.js b/node_modules/url-parse-lax/index.js
new file mode 100644
index 0000000..f9c0c65
--- /dev/null
+++ b/node_modules/url-parse-lax/index.js
@@ -0,0 +1,14 @@
+'use strict';
+var url = require('url');
+var prependHttp = require('prepend-http');
+
+module.exports = function (x) {
+	var withProtocol = prependHttp(x);
+	var parsed = url.parse(withProtocol);
+
+	if (withProtocol !== x) {
+		parsed.protocol = null;
+	}
+
+	return parsed;
+};
diff --git a/node_modules/url-parse-lax/license b/node_modules/url-parse-lax/license
new file mode 100644
index 0000000..654d0bf
--- /dev/null
+++ b/node_modules/url-parse-lax/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/url-parse-lax/package.json b/node_modules/url-parse-lax/package.json
new file mode 100644
index 0000000..40e6522
--- /dev/null
+++ b/node_modules/url-parse-lax/package.json
@@ -0,0 +1,73 @@
+{
+  "_from": "url-parse-lax@^1.0.0",
+  "_id": "url-parse-lax@1.0.0",
+  "_inBundle": false,
+  "_integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+  "_location": "/url-parse-lax",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "url-parse-lax@^1.0.0",
+    "name": "url-parse-lax",
+    "escapedName": "url-parse-lax",
+    "rawSpec": "^1.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.0"
+  },
+  "_requiredBy": [
+    "/got"
+  ],
+  "_resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+  "_shasum": "7af8f303645e9bd79a272e7a14ac68bc0609da73",
+  "_spec": "url-parse-lax@^1.0.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\got",
+  "author": {
+    "name": "Sindre Sorhus",
+    "email": "sindresorhus@gmail.com",
+    "url": "sindresorhus.com"
+  },
+  "bugs": {
+    "url": "https://github.com/sindresorhus/url-parse-lax/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "prepend-http": "^1.0.1"
+  },
+  "deprecated": false,
+  "description": "url.parse() with support for protocol-less URLs & IPs",
+  "devDependencies": {
+    "ava": "0.0.4"
+  },
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/sindresorhus/url-parse-lax#readme",
+  "keywords": [
+    "url",
+    "uri",
+    "parse",
+    "parser",
+    "loose",
+    "lax",
+    "protocol",
+    "less",
+    "protocol-less",
+    "ip",
+    "ipv4",
+    "ipv6"
+  ],
+  "license": "MIT",
+  "name": "url-parse-lax",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/sindresorhus/url-parse-lax.git"
+  },
+  "scripts": {
+    "test": "node test.js"
+  },
+  "version": "1.0.0"
+}
diff --git a/node_modules/url-parse-lax/readme.md b/node_modules/url-parse-lax/readme.md
new file mode 100644
index 0000000..f263944
--- /dev/null
+++ b/node_modules/url-parse-lax/readme.md
@@ -0,0 +1,100 @@
+# url-parse-lax [![Build Status](https://travis-ci.org/sindresorhus/url-parse-lax.svg?branch=master)](https://travis-ci.org/sindresorhus/url-parse-lax)
+
+> [`url.parse()`](https://nodejs.org/docs/latest/api/url.html#url_url_parse_urlstr_parsequerystring_slashesdenotehost) with support for protocol-less URLs & IPs
+
+
+## Install
+
+```
+$ npm install --save url-parse-lax
+```
+
+
+## Usage
+
+```js
+var urlParseLax = require('url-parse-lax');
+
+urlParseLax('sindresorhus.com');
+/*
+{
+	protocol: null,
+	slashes: true,
+	auth: null,
+	host: 'sindresorhus.com',
+	port: null,
+	hostname: 'sindresorhus.com',
+	hash: null,
+	search: null,
+	query: null,
+	pathname: '/',
+	path: '/',
+	href: 'http://sindresorhus.com/'
+}
+*/
+
+urlParseLax('[2001:db8::]:8000');
+/*
+{
+	protocol: null,
+	slashes: true,
+	auth: null,
+	host: '[2001:db8::]:8000',
+	port: '8000',
+	hostname: '2001:db8::',
+	hash: null,
+	search: null,
+	query: null,
+	pathname: '/',
+	path: '/',
+	href: 'http://[2001:db8::]:8000/'
+}
+*/
+```
+
+And with the built-in `url.parse()`:
+
+```js
+var url = require('url');
+
+url.parse('sindresorhus.com');
+/*
+{
+	protocol: null,
+	slashes: null,
+	auth: null,
+	host: null,
+	port: null,
+	hostname: null,
+	hash: null,
+	search: null,
+	query: null,
+	pathname: 'sindresorhus',
+	path: 'sindresorhus',
+	href: 'sindresorhus'
+}
+*/
+
+url.parse('[2001:db8::]:8000');
+/*
+{
+	protocol: null,
+	slashes: null,
+	auth: null,
+	host: null,
+	port: null,
+	hostname: null,
+	hash: null,
+	search: null,
+	query: null,
+	pathname: '[2001:db8::]:8000',
+	path: '[2001:db8::]:8000',
+	href: '[2001:db8::]:8000'
+}
+*/
+```
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
