changeset 1477:5ad79db38ecf bulkreview

merge with default
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 04 Dec 2018 09:55:31 +0100
parents ccf9fd7ff0bd (current diff) d7152eb11d58 (diff)
children a966789972d7
files
diffstat 15 files changed, 808 insertions(+), 587 deletions(-) [+]
line wrap: on
line diff
--- a/client/package.json	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/package.json	Tue Dec 04 09:55:31 2018 +0100
@@ -32,30 +32,30 @@
     "font-awesome": "^4.7.0",
     "glob-all": "^3.1.0",
     "locale2": "^2.2.0",
-    "ol": "^5.0.0",
+    "ol": "^5.3.0",
     "path": "^0.12.7",
-    "purgecss-webpack-plugin": "^1.2.1",
+    "purgecss-webpack-plugin": "^1.4.0",
     "v-tooltip": "^2.0.0-rc.33",
     "vue": "^2.5.16",
     "vue-clipboard2": "^0.2.1",
     "vue-color": "^2.6.0",
     "vue-highlightjs": "^1.3.3",
-    "vue-router": "^3.0.1",
+    "vue-router": "^3.0.2",
     "vue-snotify": "^3.2.1",
     "vuex": "^3.0.1",
     "webpack-cli": "^3.1.2"
   },
   "devDependencies": {
-    "@vue/cli-plugin-babel": "^3.1.1",
-    "@vue/cli-plugin-e2e-nightwatch": "^3.1.1",
-    "@vue/cli-plugin-eslint": "^3.1.4",
-    "@vue/cli-plugin-unit-jest": "^3.1.1",
-    "@vue/cli-service": "^3.1.2",
-    "@vue/eslint-config-prettier": "^4.0.0",
-    "@vue/test-utils": "^1.0.0-beta.20",
+    "@vue/cli-plugin-babel": "^3.2.0",
+    "@vue/cli-plugin-e2e-nightwatch": "^3.2.0",
+    "@vue/cli-plugin-eslint": "^3.2.1",
+    "@vue/cli-plugin-unit-jest": "^3.2.0",
+    "@vue/cli-service": "^3.2.0",
+    "@vue/eslint-config-prettier": "^4.0.1",
+    "@vue/test-utils": "^1.0.0-beta.26",
     "babel-core": "7.0.0-bridge.0",
     "babel-jest": "^23.0.1",
-    "concurrently": "^4.0.1",
+    "concurrently": "^4.1.0",
     "copy-webpack-plugin": "^4.6.0",
     "easygettext": "^2.7.0",
     "node-sass": "^4.10.0",
--- a/client/src/components/Sidebar.vue	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/components/Sidebar.vue	Tue Dec 04 09:55:31 2018 +0100
@@ -8,7 +8,10 @@
     </div>
     <div class="menu text-nowrap text-left">
       <router-link to="/">
-        <font-awesome-icon icon="map-marked-alt" fixed-width></font-awesome-icon>
+        <font-awesome-icon
+          icon="map-marked-alt"
+          fixed-width
+        ></font-awesome-icon>
         <span v-translate class="fix-trans-space">Map</span>
       </router-link>
       <a
@@ -26,20 +29,25 @@
           :class="['secondary', { active: isActive('imports') }]"
         >
           <font-awesome-icon icon="upload" fixed-width></font-awesome-icon>
-          <span v-translate class="fix-trans-space">Import soundingresults</span>
+          <span v-translate class="fix-trans-space"
+            >Import soundingresults</span
+          >
         </a>
         <a
           href="#"
           @click="toggleContextBox('staging')"
           :class="['secondary', { active: isActive('staging') }]"
         >
-          <font-awesome-icon icon="clipboard-check" fixed-width></font-awesome-icon>
+          <font-awesome-icon
+            icon="clipboard-check"
+            fixed-width
+          ></font-awesome-icon>
           <span v-translate class="fix-trans-space">Staging area</span>
         </a>
         <small class="text-muted pl-3">
           <translate>Systemadministration</translate>
         </small>
-        <hr class="m-0">
+        <hr class="m-0" />
         <router-link to="usermanagement">
           <font-awesome-icon icon="users-cog" fixed-width></font-awesome-icon>
           <span v-translate class="fix-trans-space">Users</span>
@@ -60,14 +68,13 @@
         </router-link>
         <router-link v-if="this.$options.IMPORTSCHEDULE" to="importschedule">
           <font-awesome-icon icon="clock" fixed-width></font-awesome-icon>
-          <translate>Importschedule</translate>
+          <translate class="fix-trans-space">Importschedule</translate>
         </router-link>
       </div>
-      <hr class="m-0">
+      <hr class="m-0" />
       <a href="#" @click="logoff">
         <font-awesome-icon icon="power-off" fixed-width></font-awesome-icon>
-        <span v-translate class="fix-trans-space">Logout</span>
-        {{ user }}
+        <span v-translate class="fix-trans-space">Logout</span> {{ user }}
       </a>
     </div>
   </div>
--- a/client/src/components/admin/Importqueue.vue	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/components/admin/Importqueue.vue	Tue Dec 04 09:55:31 2018 +0100
@@ -134,7 +134,7 @@
       this.$store.dispatch("imports/getImports").catch(error => {
         const { status, data } = error.response;
         displayError({
-          title: "Backend Error",
+          title: this.$gettext("Backend Error"),
           message: `${status}: ${data.message || data}`
         });
       });
--- a/client/src/components/admin/Systemconfiguration.vue	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/components/admin/Systemconfiguration.vue	Tue Dec 04 09:55:31 2018 +0100
@@ -128,7 +128,7 @@
         .catch(error => {
           const { status, data } = error.response;
           displayError({
-            title: "Backend Error",
+            title: this.$gettext("Backend Error"),
             message: `${status}: ${data.message || data}`
           });
         });
@@ -143,7 +143,7 @@
         .catch(error => {
           const { status, data } = error.response;
           displayError({
-            title: "Backend Error",
+            title: this.$gettext("Backend Error"),
             message: `${status}: ${data.message || data}`
           });
         });
@@ -162,7 +162,7 @@
       .catch(error => {
         const { status, data } = error.response;
         displayError({
-          title: "Backend Error",
+          title: this.$gettext("Backend Error"),
           message: `${status}: ${data.message || data}`
         });
       });
@@ -179,7 +179,7 @@
       .catch(error => {
         const { status, data } = error.response;
         displayError({
-          title: "Backend Error",
+          title: this.$gettext("Backend Error"),
           message: `${status}: ${data.message || data}`
         });
       });
--- a/client/src/components/admin/usermanagement/Userdetail.vue	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/components/admin/usermanagement/Userdetail.vue	Tue Dec 04 09:55:31 2018 +0100
@@ -219,10 +219,10 @@
   data() {
     return {
       mailsent: false,
-      passwordLabel: "Password",
-      passwordReLabel: "Repeat Password",
-      passwordPlaceholder: "password",
-      passwordRePlaceholder: "password again",
+      passwordLabel: this.$gettext("Password"),
+      passwordReLabel: this.$gettext("Repeat Password"),
+      passwordPlaceholder: this.$gettext("password"),
+      passwordRePlaceholder: this.$gettext("password again"),
       password: "",
       passwordre: "",
       currentUser: {},
@@ -288,7 +288,7 @@
           this.submitted = false;
           const { status, data } = error.response;
           displayError({
-            title: "Backend Error",
+            title: this.$gettext("Backend Error"),
             message: `${status}: ${data.message || data}`
           });
         });
@@ -315,23 +315,29 @@
     validateCountry() {
       this.errors.country = this.currentUser.country
         ? ""
-        : "Please choose a country";
+        : this.$gettext("Please choose a country");
     },
     validateRole() {
-      this.errors.role = this.currentUser.role ? "" : "Please choose a role";
+      this.errors.role = this.currentUser.role
+        ? ""
+        : this.$gettext("Please choose a role");
     },
     validatePassword() {
       this.errors.passwordre =
-        this.password === this.passwordre ? "" : "Passwords do not match!";
+        this.password === this.passwordre
+          ? ""
+          : this.$gettext("Passwords do not match!");
       this.errors.password =
         this.password === "" || !violatedPasswordRules(this.password)
           ? ""
-          : "Password should at least be 8 char long including 1 digit and 1 special char like $";
+          : this.$gettext(
+              "Password should at least be 8 char long including 1 digit and 1 special char like $"
+            );
     },
     validateEmailaddress() {
       this.errors.email = isEmailValid(this.currentUser.email)
         ? ""
-        : "invalid email";
+        : this.$gettext("invalid email");
     },
     validate() {
       this.validateCountry();
@@ -354,7 +360,7 @@
           this.$store.dispatch("usermanagement/loadUsers").catch(error => {
             const { status, data } = error.response;
             displayError({
-              title: "Backend Error",
+              title: this.$gettext("Backend Error"),
               message: `${status}: ${data.message || data}`
             });
           });
@@ -363,7 +369,7 @@
           this.submitted = false;
           const { status, data } = error.response;
           displayError({
-            title: "Error while saving user",
+            title: this.$gettext("Error while saving user"),
             message: `${status}: ${data.message || data}`
           });
         });
--- a/client/src/components/admin/usermanagement/Usermanagement.vue	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/components/admin/usermanagement/Usermanagement.vue	Tue Dec 04 09:55:31 2018 +0100
@@ -263,7 +263,7 @@
           this.$store.dispatch("usermanagement/loadUsers").catch(error => {
             const { status, data } = error.response;
             displayError({
-              title: "Backend Error",
+              title: this.$gettext("Backend Error"),
               message: `${status}: ${data.message || data}`
             });
           });
@@ -271,7 +271,7 @@
         .catch(error => {
           const { status, data } = error.response;
           displayError({
-            title: "Backend Error",
+            title: this.$gettext("Backend Error"),
             message: `${status}: ${data.message || data}`
           });
         });
@@ -297,7 +297,7 @@
       .catch(error => {
         const { status, data } = error.response;
         displayError({
-          title: "Backend Error",
+          title: this.$gettext("Backend Error"),
           message: `${status}: ${data}`
         });
       });
--- a/client/src/components/map/Identify.vue	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/components/map/Identify.vue	Tue Dec 04 09:55:31 2018 +0100
@@ -35,22 +35,24 @@
         </div>
       </div>
       <div class="versioninfo border-top p-3 text-left">
-        <translate>This app uses</translate>
-        <i>gemma</i>,
-        <translate>which is Free Software under</translate>
-        <br>AGPL-3.0-or-later
-        <translate>without warranty, see docs for details.</translate>
+        <span v-translate="{license: 'AGPL-3.0-or-later'}">
+          This app uses
+          <i>gemma</i>, which is Free Software under
+          <br>
+          %{ license }
+          without warranty, see docs for details.
+        </span>
         <br>
-
         <a href="https://hg.intevation.de/gemma/file/tip">
           <translate>source-code</translate>
         </a>
         {{ versionStr }}
         <br>© via donau. &#x24D4; Intevation.
         <br>
-        <translate>Some data</translate>©
-        <a href="https://www.openstreetmap.org/copyright">OpenSteetMap</a>
-        <span v-translate class="fix-trans-space">contributors.</span>
+        <span v-translate="{name: 'OpenSteetMap'}">Some data ©
+        <a href="https://www.openstreetmap.org/copyright">%{ name }</a>
+        <span >contributors.</span>
+        </span>
       </div>
     </div>
   </div>
--- a/client/src/components/map/contextbox/Bottlenecks.vue	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/components/map/contextbox/Bottlenecks.vue	Tue Dec 04 09:55:31 2018 +0100
@@ -218,7 +218,7 @@
           .catch(error => {
             const { status, data } = error.response;
             displayError({
-              title: "Backend Error",
+              title: this.$gettext("Backend Error"),
               message: `${status}: ${data.message || data}`
             });
           })
--- a/client/src/components/map/contextbox/ImportSoundingresults.vue	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/components/map/contextbox/ImportSoundingresults.vue	Tue Dec 04 09:55:31 2018 +0100
@@ -12,7 +12,11 @@
               <translate>Bottleneck</translate>
             </small>
             <select v-model="bottleneck" class="custom-select">
-              <option v-for="bottleneck in availableBottlenecks" :key="bottleneck">{{bottleneck}}</option>
+              <option
+                v-for="bottleneck in availableBottlenecks"
+                :key="bottleneck"
+                >{{ bottleneck }}</option
+              >
             </select>
             <span class="text-danger">
               <small v-if="!bottleneck">
@@ -20,16 +24,17 @@
               </small>
             </span>
           </div>
-          <div class="mt-1 text-left w-50 mr-2">
+          <div class="d-flex flex-column mt-1 text-left w-50 mr-2">
             <small class="text-muted">
-              <translate>Projection</translate>
+              <translate>Projection</translate>&nbsp;(EPSG)
             </small>
-            <select v-model="projection" class="custom-select" id="depthreference">
-              <option
-                v-for="projection in this.$options.projections"
-                :key="projection"
-              >{{ projection }}</option>
-            </select>
+            <input
+              class="form-control"
+              v-model="projection"
+              value="4326"
+              placeholder="e.g. 4326"
+              type="number"
+            />
             <span class="text-left text-danger">
               <small v-if="!projection">
                 <translate>Please enter a projection</translate>
@@ -42,11 +47,16 @@
             <small class="text-muted">
               <translate>Depthreference</translate>
             </small>
-            <select v-model="depthReference" class="custom-select" id="depthreference">
+            <select
+              v-model="depthReference"
+              class="custom-select"
+              id="depthreference"
+            >
               <option
                 v-for="option in this.$options.depthReferenceOptions"
                 :key="option"
-              >{{ option }}</option>
+                >{{ option }}</option
+              >
             </select>
             <span class="text-left text-danger">
               <small v-if="!depthReference">
@@ -55,9 +65,7 @@
             </span>
           </div>
           <div class="mt-1 text-left w-50 mr-2">
-            <small class="text-muted">
-              <translate>Date</translate>
-            </small>
+            <small class="text-muted"> <translate>Date</translate> </small>
             <input
               id="importdate"
               type="date"
@@ -66,7 +74,7 @@
               aria-label="bottleneck"
               aria-describedby="bottlenecklabel"
               v-model="importDate"
-            >
+            />
             <span class="text-left text-danger">
               <small v-if="!importDate">
                 <translate>Please enter a date</translate>
@@ -77,9 +85,7 @@
       </div>
       <div class="ml-2 mt-2 text-left">
         <small v-for="(message, index) in messages" :key="index">
-          {{
-          message
-          }}
+          {{ message }}
         </small>
       </div>
     </div>
@@ -92,11 +98,9 @@
             @change="fileSelected"
             class="custom-file-input"
             id="uploadFile"
-          >
+          />
           <label class="custom-file-label" for="uploadFile">
-            {{
-            uploadLabel
-            }}
+            {{ uploadLabel }}
           </label>
         </div>
       </div>
@@ -109,7 +113,12 @@
         >
           <translate>Download Meta.json</translate>
         </a>
-        <button v-if="editState" @click="deleteTempData" class="btn btn-danger" type="button">
+        <button
+          v-if="editState"
+          @click="deleteTempData"
+          class="btn btn-danger"
+          type="button"
+        >
           <translate>Cancel Upload</translate>
         </button>
         <button
@@ -117,7 +126,9 @@
           @click="submit"
           class="btn btn-info"
           type="button"
-        >{{ uploadState ? Upload : Confirm }}</button>
+        >
+          {{ uploadState ? Upload : Confirm }}
+        </button>
       </div>
     </div>
   </div>
@@ -317,7 +328,6 @@
       );
     }
   },
-  projections: ["", "4326"],
   depthReferenceOptions: [
     "",
     // "NAP",
--- a/client/src/locale/de_AT/LC_MESSAGES/app.po	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/locale/de_AT/LC_MESSAGES/app.po	Tue Dec 04 09:55:31 2018 +0100
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: wamosjs 0.1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-12-03 10:57+0100\n"
+"POT-Creation-Date: 2018-12-03 17:36+0100\n"
 "PO-Revision-Date: 2018-12-03 09:31+0000\n"
 "Last-Translator: Bernhard E. Reiter <bernhard.reiter@intevation.de>\n"
 "Language-Team: Austrian German <https://hosted.weblate.org/projects/gemma/client/de_AT/>\n"
@@ -19,7 +19,7 @@
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 3.3\n"
 
-#: src/components/admin/Importqueue.vue:40
+#: src/components/admin/Importqueue.vue:41
 msgid "Accepted"
 msgstr "Akzeptiert"
 
@@ -27,11 +27,11 @@
 msgid "Accesslog"
 msgstr ""
 
-#: src/components/admin/usermanagement/Usermanagement.vue:71
+#: src/components/admin/usermanagement/Usermanagement.vue:72
 msgid "Add User"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:37
+#: src/components/admin/importschedule/Importschedule.vue:38
 msgid "Author"
 msgstr "Autor"
 
@@ -39,7 +39,18 @@
 msgid "back to login"
 msgstr "zurück zur Anmeldung"
 
+#: src/components/admin/Importqueue.vue:137
+#: src/components/admin/Systemconfiguration.vue:131
+#: src/components/admin/Systemconfiguration.vue:146
+#: src/components/admin/Systemconfiguration.vue:165
+#: src/components/admin/Systemconfiguration.vue:182
+#: src/components/admin/usermanagement/Userdetail.vue:291
+#: src/components/admin/usermanagement/Userdetail.vue:363
+#: src/components/admin/usermanagement/Usermanagement.vue:266
+#: src/components/admin/usermanagement/Usermanagement.vue:274
+#: src/components/admin/usermanagement/Usermanagement.vue:300
 #: src/components/map/Search.vue:231
+#: src/components/map/contextbox/Bottlenecks.vue:221
 #: src/components/map/contextbox/ImportSoundingresults.vue:194
 #: src/components/map/contextbox/ImportSoundingresults.vue:233
 #: src/components/map/contextbox/ImportSoundingresults.vue:264
@@ -51,11 +62,11 @@
 msgid "Bottleneck"
 msgstr "Engstelle"
 
-#: src/components/admin/Systemconfiguration.vue:15
+#: src/components/admin/Systemconfiguration.vue:17
 msgid "Bottleneck Areas fill-color"
 msgstr ""
 
-#: src/components/admin/Systemconfiguration.vue:9
+#: src/components/admin/Systemconfiguration.vue:11
 msgid "Bottleneck Areas stroke-color"
 msgstr ""
 
@@ -94,10 +105,6 @@
 msgid "Confirm"
 msgstr "Bestätigen"
 
-#: src/components/map/Identify.vue:52
-msgid "contributors."
-msgstr ""
-
 #: src/components/map/fairway/Profiles.vue:340
 msgid "Coordinates copied to clipboard!"
 msgstr ""
@@ -123,7 +130,7 @@
 msgid "Download Meta.json"
 msgstr "Meta.json Herunterladen"
 
-#: src/components/admin/importschedule/Importschedule.vue:43
+#: src/components/admin/importschedule/Importschedule.vue:44
 msgid "Email"
 msgstr ""
 
@@ -131,7 +138,7 @@
 msgid "Email address"
 msgstr "Email Adresse"
 
-#: src/components/admin/Importqueue.vue:48
+#: src/components/admin/Importqueue.vue:49
 msgid "Enqueued"
 msgstr ""
 
@@ -152,11 +159,15 @@
 msgid "Enter username"
 msgstr "Passphrase"
 
+#: src/components/admin/usermanagement/Userdetail.vue:372
+msgid "Error while saving user"
+msgstr ""
+
 #: src/components/admin/Logs.vue:26
 msgid "Errorlog"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:31
+#: src/components/admin/Importqueue.vue:32
 msgid "Failed"
 msgstr "Fehlgeschlagen"
 
@@ -172,7 +183,7 @@
 msgid "Identified"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:31
+#: src/components/admin/importschedule/Importschedule.vue:32
 #: src/components/map/contextbox/ImportSoundingresults.vue:256
 msgid "Import"
 msgstr ""
@@ -189,20 +200,25 @@
 msgid "Imported"
 msgstr "Importiert"
 
-#: src/components/Sidebar.vue:58 src/components/admin/Importqueue.vue:6
+#: src/components/Sidebar.vue:58 src/components/admin/Importqueue.vue:7
 msgid "Importqueue"
 msgstr ""
 
 #: src/components/Sidebar.vue:62
-#: src/components/admin/importschedule/Importschedule.vue:6
+#: src/components/admin/importschedule/Importschedule.vue:7
 msgid "Importschedule"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:340
+#, fuzzy
+msgid "invalid email"
+msgstr "Testmail senden"
+
 #: src/components/map/fairway/Profiles.vue:374
 msgid "Invalid input"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:51
+#: src/components/admin/Importqueue.vue:52
 msgid "Kind"
 msgstr ""
 
@@ -255,7 +271,12 @@
 msgid "Name"
 msgstr "Name"
 
-#: src/components/admin/importschedule/Importschedule.vue:69
+#: src/components/admin/importschedule/Importscheduledetail.vue:4
+#, fuzzy
+msgid "New import"
+msgstr "Neuer Import"
+
+#: src/components/admin/importschedule/Importschedule.vue:70
 msgid "New Import"
 msgstr "Neuer Import"
 
@@ -268,7 +289,7 @@
 msgid "No results."
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:66
+#: src/components/admin/importschedule/Importschedule.vue:67
 msgid "No schedules"
 msgstr ""
 
@@ -276,14 +297,45 @@
 msgid "Open in new window"
 msgstr "In neuem Fenster öffnen"
 
+#: src/components/admin/usermanagement/Userdetail.vue:224
+#, fuzzy
+msgid "password"
+msgstr "Passwort vergessen"
+
+#: src/components/admin/usermanagement/Userdetail.vue:222
+#, fuzzy
+msgid "Password"
+msgstr "Passwort vergessen"
+
+#: src/components/admin/usermanagement/Userdetail.vue:225
+msgid "password again"
+msgstr ""
+
 #: src/components/Login.vue:142
 msgid "Password reset requested!"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:34
+#: src/components/admin/usermanagement/Userdetail.vue:333
+#: src/components/admin/usermanagement/Userdetail.vue:334
+msgid "Password should at least be 8 char long including 1 digit and 1 special char like $"
+msgstr ""
+
+#: src/components/admin/usermanagement/Userdetail.vue:329
+msgid "Passwords do not match!"
+msgstr ""
+
+#: src/components/admin/Importqueue.vue:35
 msgid "Pending"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:318
+msgid "Please choose a country"
+msgstr ""
+
+#: src/components/admin/usermanagement/Userdetail.vue:323
+msgid "Please choose a role"
+msgstr ""
+
 #: src/components/map/contextbox/ImportSoundingresults.vue:71
 msgid "Please enter a date"
 msgstr ""
@@ -330,14 +382,19 @@
 msgid "Projection"
 msgstr "Projektion"
 
-#: src/components/admin/Importqueue.vue:72 src/components/admin/Logs.vue:40
+#: src/components/admin/Importqueue.vue:73 src/components/admin/Logs.vue:40
 msgid "Refresh"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:37
+#: src/components/admin/Importqueue.vue:38
 msgid "Rejected"
 msgstr "Abgelehnt"
 
+#: src/components/admin/usermanagement/Userdetail.vue:223
+#, fuzzy
+msgid "Repeat Password"
+msgstr "Passwort vergessen"
+
 #: src/components/Login.vue:55
 msgid "Request password reset!"
 msgstr ""
@@ -350,7 +407,7 @@
 msgid "Saved cross profiles"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:40
+#: src/components/admin/importschedule/Importschedule.vue:41
 msgid "Schedule"
 msgstr ""
 
@@ -358,7 +415,7 @@
 msgid "Select Bottleneck"
 msgstr "Wähle Engstelle"
 
-#: src/components/admin/Systemconfiguration.vue:21
+#: src/components/admin/Systemconfiguration.vue:23
 msgid "Send"
 msgstr ""
 
@@ -366,15 +423,18 @@
 msgid "Send testmail"
 msgstr "Testmail senden"
 
-#: src/components/map/Identify.vue:50
-msgid "Some data"
+#: src/components/map/Identify.vue:51
+msgid ""
+"Some data ©\n"
+"      <a href=\"https://www.openstreetmap.org/copyright\">%{ name }</a>\n"
+"      <span>contributors.</span>"
 msgstr ""
 
 #: src/components/map/fairway/Profiles.vue:37
 msgid "Sounding Result"
 msgstr ""
 
-#: src/components/map/Identify.vue:45
+#: src/components/map/Identify.vue:46
 msgid "source-code"
 msgstr ""
 
@@ -395,7 +455,7 @@
 msgid "Starting import for "
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:57
+#: src/components/admin/Importqueue.vue:58
 msgid "State"
 msgstr ""
 
@@ -407,7 +467,7 @@
 msgid "Success"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:28
+#: src/components/admin/Importqueue.vue:29
 msgid "Successful"
 msgstr "Erfolgreich"
 
@@ -419,15 +479,21 @@
 msgid "Systemadministration"
 msgstr ""
 
-#: src/components/admin/Systemconfiguration.vue:4
+#: src/components/admin/Systemconfiguration.vue:6
 msgid "Systemconfiguration"
 msgstr ""
 
 #: src/components/map/Identify.vue:37
-msgid "This app uses"
+msgid ""
+"This app uses\n"
+"        <i>gemma</i>, which is Free Software under\n"
+"        <br>\n"
+"        %{ license }\n"
+"        without warranty, see docs for details.\n"
+"      </br>"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:34
+#: src/components/admin/importschedule/Importschedule.vue:35
 #: src/components/map/contextbox/Staging.vue:13
 msgid "Type"
 msgstr ""
@@ -436,7 +502,7 @@
 msgid "Upload"
 msgstr "Hochladen"
 
-#: src/components/admin/Importqueue.vue:54
+#: src/components/admin/Importqueue.vue:55
 msgid "User"
 msgstr ""
 
@@ -447,7 +513,7 @@
 msgstr "Passphrase"
 
 #: src/components/Sidebar.vue:44
-#: src/components/admin/usermanagement/Usermanagement.vue:8
+#: src/components/admin/usermanagement/Usermanagement.vue:9
 msgid "Users"
 msgstr ""
 
@@ -459,14 +525,6 @@
 msgid "Waterway User"
 msgstr ""
 
-#: src/components/map/Identify.vue:39
-msgid "which is Free Software under"
-msgstr ""
-
-#: src/components/map/Identify.vue:41
-msgid "without warranty, see docs for details."
-msgstr ""
-
 #: src/components/map/fairway/Profiles.vue:401
 #: src/components/map/fairway/Profiles.vue:402
 msgid "You can now select these coordinates from the \"Saved cross profiles\" menu to restore this cross profile."
--- a/client/src/locale/en_GB/LC_MESSAGES/app.po	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/locale/en_GB/LC_MESSAGES/app.po	Tue Dec 04 09:55:31 2018 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: wamosjs 0.1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-12-03 10:57+0100\n"
+"POT-Creation-Date: 2018-12-03 17:36+0100\n"
 "PO-Revision-Date: 2018-07-03 17:18+0200\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,7 +17,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/components/admin/Importqueue.vue:40
+#: src/components/admin/Importqueue.vue:41
 msgid "Accepted"
 msgstr ""
 
@@ -25,11 +25,11 @@
 msgid "Accesslog"
 msgstr ""
 
-#: src/components/admin/usermanagement/Usermanagement.vue:71
+#: src/components/admin/usermanagement/Usermanagement.vue:72
 msgid "Add User"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:37
+#: src/components/admin/importschedule/Importschedule.vue:38
 msgid "Author"
 msgstr ""
 
@@ -37,7 +37,18 @@
 msgid "back to login"
 msgstr ""
 
+#: src/components/admin/Importqueue.vue:137
+#: src/components/admin/Systemconfiguration.vue:131
+#: src/components/admin/Systemconfiguration.vue:146
+#: src/components/admin/Systemconfiguration.vue:165
+#: src/components/admin/Systemconfiguration.vue:182
+#: src/components/admin/usermanagement/Userdetail.vue:291
+#: src/components/admin/usermanagement/Userdetail.vue:363
+#: src/components/admin/usermanagement/Usermanagement.vue:266
+#: src/components/admin/usermanagement/Usermanagement.vue:274
+#: src/components/admin/usermanagement/Usermanagement.vue:300
 #: src/components/map/Search.vue:231
+#: src/components/map/contextbox/Bottlenecks.vue:221
 #: src/components/map/contextbox/ImportSoundingresults.vue:194
 #: src/components/map/contextbox/ImportSoundingresults.vue:233
 #: src/components/map/contextbox/ImportSoundingresults.vue:264
@@ -49,11 +60,11 @@
 msgid "Bottleneck"
 msgstr ""
 
-#: src/components/admin/Systemconfiguration.vue:15
+#: src/components/admin/Systemconfiguration.vue:17
 msgid "Bottleneck Areas fill-color"
 msgstr ""
 
-#: src/components/admin/Systemconfiguration.vue:9
+#: src/components/admin/Systemconfiguration.vue:11
 msgid "Bottleneck Areas stroke-color"
 msgstr ""
 
@@ -92,10 +103,6 @@
 msgid "Confirm"
 msgstr ""
 
-#: src/components/map/Identify.vue:52
-msgid "contributors."
-msgstr ""
-
 #: src/components/map/fairway/Profiles.vue:340
 msgid "Coordinates copied to clipboard!"
 msgstr ""
@@ -121,7 +128,7 @@
 msgid "Download Meta.json"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:43
+#: src/components/admin/importschedule/Importschedule.vue:44
 msgid "Email"
 msgstr ""
 
@@ -129,7 +136,7 @@
 msgid "Email address"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:48
+#: src/components/admin/Importqueue.vue:49
 msgid "Enqueued"
 msgstr ""
 
@@ -149,11 +156,15 @@
 msgid "Enter username"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:372
+msgid "Error while saving user"
+msgstr ""
+
 #: src/components/admin/Logs.vue:26
 msgid "Errorlog"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:31
+#: src/components/admin/Importqueue.vue:32
 msgid "Failed"
 msgstr ""
 
@@ -169,7 +180,7 @@
 msgid "Identified"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:31
+#: src/components/admin/importschedule/Importschedule.vue:32
 #: src/components/map/contextbox/ImportSoundingresults.vue:256
 msgid "Import"
 msgstr ""
@@ -186,20 +197,24 @@
 msgid "Imported"
 msgstr ""
 
-#: src/components/Sidebar.vue:58 src/components/admin/Importqueue.vue:6
+#: src/components/Sidebar.vue:58 src/components/admin/Importqueue.vue:7
 msgid "Importqueue"
 msgstr ""
 
 #: src/components/Sidebar.vue:62
-#: src/components/admin/importschedule/Importschedule.vue:6
+#: src/components/admin/importschedule/Importschedule.vue:7
 msgid "Importschedule"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:340
+msgid "invalid email"
+msgstr ""
+
 #: src/components/map/fairway/Profiles.vue:374
 msgid "Invalid input"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:51
+#: src/components/admin/Importqueue.vue:52
 msgid "Kind"
 msgstr ""
 
@@ -252,7 +267,11 @@
 msgid "Name"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:69
+#: src/components/admin/importschedule/Importscheduledetail.vue:4
+msgid "New import"
+msgstr ""
+
+#: src/components/admin/importschedule/Importschedule.vue:70
 msgid "New Import"
 msgstr ""
 
@@ -265,7 +284,7 @@
 msgid "No results."
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:66
+#: src/components/admin/importschedule/Importschedule.vue:67
 msgid "No schedules"
 msgstr ""
 
@@ -273,14 +292,43 @@
 msgid "Open in new window"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:224
+msgid "password"
+msgstr ""
+
+#: src/components/admin/usermanagement/Userdetail.vue:222
+msgid "Password"
+msgstr ""
+
+#: src/components/admin/usermanagement/Userdetail.vue:225
+msgid "password again"
+msgstr ""
+
 #: src/components/Login.vue:142
 msgid "Password reset requested!"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:34
+#: src/components/admin/usermanagement/Userdetail.vue:333
+#: src/components/admin/usermanagement/Userdetail.vue:334
+msgid "Password should at least be 8 char long including 1 digit and 1 special char like $"
+msgstr ""
+
+#: src/components/admin/usermanagement/Userdetail.vue:329
+msgid "Passwords do not match!"
+msgstr ""
+
+#: src/components/admin/Importqueue.vue:35
 msgid "Pending"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:318
+msgid "Please choose a country"
+msgstr ""
+
+#: src/components/admin/usermanagement/Userdetail.vue:323
+msgid "Please choose a role"
+msgstr ""
+
 #: src/components/map/contextbox/ImportSoundingresults.vue:71
 msgid "Please enter a date"
 msgstr ""
@@ -327,14 +375,18 @@
 msgid "Projection"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:72 src/components/admin/Logs.vue:40
+#: src/components/admin/Importqueue.vue:73 src/components/admin/Logs.vue:40
 msgid "Refresh"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:37
+#: src/components/admin/Importqueue.vue:38
 msgid "Rejected"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:223
+msgid "Repeat Password"
+msgstr ""
+
 #: src/components/Login.vue:55
 msgid "Request password reset!"
 msgstr ""
@@ -347,7 +399,7 @@
 msgid "Saved cross profiles"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:40
+#: src/components/admin/importschedule/Importschedule.vue:41
 msgid "Schedule"
 msgstr ""
 
@@ -355,7 +407,7 @@
 msgid "Select Bottleneck"
 msgstr ""
 
-#: src/components/admin/Systemconfiguration.vue:21
+#: src/components/admin/Systemconfiguration.vue:23
 msgid "Send"
 msgstr ""
 
@@ -363,15 +415,18 @@
 msgid "Send testmail"
 msgstr ""
 
-#: src/components/map/Identify.vue:50
-msgid "Some data"
+#: src/components/map/Identify.vue:51
+msgid ""
+"Some data ©\n"
+"      <a href=\"https://www.openstreetmap.org/copyright\">%{ name }</a>\n"
+"      <span>contributors.</span>"
 msgstr ""
 
 #: src/components/map/fairway/Profiles.vue:37
 msgid "Sounding Result"
 msgstr ""
 
-#: src/components/map/Identify.vue:45
+#: src/components/map/Identify.vue:46
 msgid "source-code"
 msgstr ""
 
@@ -392,7 +447,7 @@
 msgid "Starting import for "
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:57
+#: src/components/admin/Importqueue.vue:58
 msgid "State"
 msgstr ""
 
@@ -404,7 +459,7 @@
 msgid "Success"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:28
+#: src/components/admin/Importqueue.vue:29
 msgid "Successful"
 msgstr ""
 
@@ -416,15 +471,21 @@
 msgid "Systemadministration"
 msgstr ""
 
-#: src/components/admin/Systemconfiguration.vue:4
+#: src/components/admin/Systemconfiguration.vue:6
 msgid "Systemconfiguration"
 msgstr ""
 
 #: src/components/map/Identify.vue:37
-msgid "This app uses"
+msgid ""
+"This app uses\n"
+"        <i>gemma</i>, which is Free Software under\n"
+"        <br>\n"
+"        %{ license }\n"
+"        without warranty, see docs for details.\n"
+"      </br>"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:34
+#: src/components/admin/importschedule/Importschedule.vue:35
 #: src/components/map/contextbox/Staging.vue:13
 msgid "Type"
 msgstr ""
@@ -433,7 +494,7 @@
 msgid "Upload"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:54
+#: src/components/admin/Importqueue.vue:55
 msgid "User"
 msgstr ""
 
@@ -443,7 +504,7 @@
 msgstr ""
 
 #: src/components/Sidebar.vue:44
-#: src/components/admin/usermanagement/Usermanagement.vue:8
+#: src/components/admin/usermanagement/Usermanagement.vue:9
 msgid "Users"
 msgstr ""
 
@@ -455,14 +516,6 @@
 msgid "Waterway User"
 msgstr ""
 
-#: src/components/map/Identify.vue:39
-msgid "which is Free Software under"
-msgstr ""
-
-#: src/components/map/Identify.vue:41
-msgid "without warranty, see docs for details."
-msgstr ""
-
 #: src/components/map/fairway/Profiles.vue:401
 #: src/components/map/fairway/Profiles.vue:402
 msgid "You can now select these coordinates from the \"Saved cross profiles\" menu to restore this cross profile."
--- a/client/src/locale/sk_SK/LC_MESSAGES/app.po	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/src/locale/sk_SK/LC_MESSAGES/app.po	Tue Dec 04 09:55:31 2018 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: wamosjs 0.1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-12-03 10:57+0100\n"
+"POT-Creation-Date: 2018-12-03 17:36+0100\n"
 "PO-Revision-Date: 2018-07-03 17:18+0200\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -17,7 +17,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/components/admin/Importqueue.vue:40
+#: src/components/admin/Importqueue.vue:41
 msgid "Accepted"
 msgstr ""
 
@@ -25,11 +25,11 @@
 msgid "Accesslog"
 msgstr ""
 
-#: src/components/admin/usermanagement/Usermanagement.vue:71
+#: src/components/admin/usermanagement/Usermanagement.vue:72
 msgid "Add User"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:37
+#: src/components/admin/importschedule/Importschedule.vue:38
 msgid "Author"
 msgstr ""
 
@@ -37,7 +37,18 @@
 msgid "back to login"
 msgstr ""
 
+#: src/components/admin/Importqueue.vue:137
+#: src/components/admin/Systemconfiguration.vue:131
+#: src/components/admin/Systemconfiguration.vue:146
+#: src/components/admin/Systemconfiguration.vue:165
+#: src/components/admin/Systemconfiguration.vue:182
+#: src/components/admin/usermanagement/Userdetail.vue:291
+#: src/components/admin/usermanagement/Userdetail.vue:363
+#: src/components/admin/usermanagement/Usermanagement.vue:266
+#: src/components/admin/usermanagement/Usermanagement.vue:274
+#: src/components/admin/usermanagement/Usermanagement.vue:300
 #: src/components/map/Search.vue:231
+#: src/components/map/contextbox/Bottlenecks.vue:221
 #: src/components/map/contextbox/ImportSoundingresults.vue:194
 #: src/components/map/contextbox/ImportSoundingresults.vue:233
 #: src/components/map/contextbox/ImportSoundingresults.vue:264
@@ -49,11 +60,11 @@
 msgid "Bottleneck"
 msgstr ""
 
-#: src/components/admin/Systemconfiguration.vue:15
+#: src/components/admin/Systemconfiguration.vue:17
 msgid "Bottleneck Areas fill-color"
 msgstr ""
 
-#: src/components/admin/Systemconfiguration.vue:9
+#: src/components/admin/Systemconfiguration.vue:11
 msgid "Bottleneck Areas stroke-color"
 msgstr ""
 
@@ -92,10 +103,6 @@
 msgid "Confirm"
 msgstr ""
 
-#: src/components/map/Identify.vue:52
-msgid "contributors."
-msgstr ""
-
 #: src/components/map/fairway/Profiles.vue:340
 msgid "Coordinates copied to clipboard!"
 msgstr ""
@@ -121,7 +128,7 @@
 msgid "Download Meta.json"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:43
+#: src/components/admin/importschedule/Importschedule.vue:44
 msgid "Email"
 msgstr ""
 
@@ -129,7 +136,7 @@
 msgid "Email address"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:48
+#: src/components/admin/Importqueue.vue:49
 msgid "Enqueued"
 msgstr ""
 
@@ -149,11 +156,15 @@
 msgid "Enter username"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:372
+msgid "Error while saving user"
+msgstr ""
+
 #: src/components/admin/Logs.vue:26
 msgid "Errorlog"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:31
+#: src/components/admin/Importqueue.vue:32
 msgid "Failed"
 msgstr ""
 
@@ -169,7 +180,7 @@
 msgid "Identified"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:31
+#: src/components/admin/importschedule/Importschedule.vue:32
 #: src/components/map/contextbox/ImportSoundingresults.vue:256
 msgid "Import"
 msgstr ""
@@ -186,20 +197,24 @@
 msgid "Imported"
 msgstr ""
 
-#: src/components/Sidebar.vue:58 src/components/admin/Importqueue.vue:6
+#: src/components/Sidebar.vue:58 src/components/admin/Importqueue.vue:7
 msgid "Importqueue"
 msgstr ""
 
 #: src/components/Sidebar.vue:62
-#: src/components/admin/importschedule/Importschedule.vue:6
+#: src/components/admin/importschedule/Importschedule.vue:7
 msgid "Importschedule"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:340
+msgid "invalid email"
+msgstr ""
+
 #: src/components/map/fairway/Profiles.vue:374
 msgid "Invalid input"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:51
+#: src/components/admin/Importqueue.vue:52
 msgid "Kind"
 msgstr ""
 
@@ -252,7 +267,11 @@
 msgid "Name"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:69
+#: src/components/admin/importschedule/Importscheduledetail.vue:4
+msgid "New import"
+msgstr ""
+
+#: src/components/admin/importschedule/Importschedule.vue:70
 msgid "New Import"
 msgstr ""
 
@@ -265,7 +284,7 @@
 msgid "No results."
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:66
+#: src/components/admin/importschedule/Importschedule.vue:67
 msgid "No schedules"
 msgstr ""
 
@@ -273,14 +292,43 @@
 msgid "Open in new window"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:224
+msgid "password"
+msgstr ""
+
+#: src/components/admin/usermanagement/Userdetail.vue:222
+msgid "Password"
+msgstr ""
+
+#: src/components/admin/usermanagement/Userdetail.vue:225
+msgid "password again"
+msgstr ""
+
 #: src/components/Login.vue:142
 msgid "Password reset requested!"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:34
+#: src/components/admin/usermanagement/Userdetail.vue:333
+#: src/components/admin/usermanagement/Userdetail.vue:334
+msgid "Password should at least be 8 char long including 1 digit and 1 special char like $"
+msgstr ""
+
+#: src/components/admin/usermanagement/Userdetail.vue:329
+msgid "Passwords do not match!"
+msgstr ""
+
+#: src/components/admin/Importqueue.vue:35
 msgid "Pending"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:318
+msgid "Please choose a country"
+msgstr ""
+
+#: src/components/admin/usermanagement/Userdetail.vue:323
+msgid "Please choose a role"
+msgstr ""
+
 #: src/components/map/contextbox/ImportSoundingresults.vue:71
 msgid "Please enter a date"
 msgstr ""
@@ -327,14 +375,18 @@
 msgid "Projection"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:72 src/components/admin/Logs.vue:40
+#: src/components/admin/Importqueue.vue:73 src/components/admin/Logs.vue:40
 msgid "Refresh"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:37
+#: src/components/admin/Importqueue.vue:38
 msgid "Rejected"
 msgstr ""
 
+#: src/components/admin/usermanagement/Userdetail.vue:223
+msgid "Repeat Password"
+msgstr ""
+
 #: src/components/Login.vue:55
 msgid "Request password reset!"
 msgstr ""
@@ -347,7 +399,7 @@
 msgid "Saved cross profiles"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:40
+#: src/components/admin/importschedule/Importschedule.vue:41
 msgid "Schedule"
 msgstr ""
 
@@ -355,7 +407,7 @@
 msgid "Select Bottleneck"
 msgstr ""
 
-#: src/components/admin/Systemconfiguration.vue:21
+#: src/components/admin/Systemconfiguration.vue:23
 msgid "Send"
 msgstr ""
 
@@ -363,15 +415,18 @@
 msgid "Send testmail"
 msgstr ""
 
-#: src/components/map/Identify.vue:50
-msgid "Some data"
+#: src/components/map/Identify.vue:51
+msgid ""
+"Some data ©\n"
+"      <a href=\"https://www.openstreetmap.org/copyright\">%{ name }</a>\n"
+"      <span>contributors.</span>"
 msgstr ""
 
 #: src/components/map/fairway/Profiles.vue:37
 msgid "Sounding Result"
 msgstr ""
 
-#: src/components/map/Identify.vue:45
+#: src/components/map/Identify.vue:46
 msgid "source-code"
 msgstr ""
 
@@ -392,7 +447,7 @@
 msgid "Starting import for "
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:57
+#: src/components/admin/Importqueue.vue:58
 msgid "State"
 msgstr ""
 
@@ -404,7 +459,7 @@
 msgid "Success"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:28
+#: src/components/admin/Importqueue.vue:29
 msgid "Successful"
 msgstr ""
 
@@ -416,15 +471,21 @@
 msgid "Systemadministration"
 msgstr ""
 
-#: src/components/admin/Systemconfiguration.vue:4
+#: src/components/admin/Systemconfiguration.vue:6
 msgid "Systemconfiguration"
 msgstr ""
 
 #: src/components/map/Identify.vue:37
-msgid "This app uses"
+msgid ""
+"This app uses\n"
+"        <i>gemma</i>, which is Free Software under\n"
+"        <br>\n"
+"        %{ license }\n"
+"        without warranty, see docs for details.\n"
+"      </br>"
 msgstr ""
 
-#: src/components/admin/importschedule/Importschedule.vue:34
+#: src/components/admin/importschedule/Importschedule.vue:35
 #: src/components/map/contextbox/Staging.vue:13
 msgid "Type"
 msgstr ""
@@ -433,7 +494,7 @@
 msgid "Upload"
 msgstr ""
 
-#: src/components/admin/Importqueue.vue:54
+#: src/components/admin/Importqueue.vue:55
 msgid "User"
 msgstr ""
 
@@ -443,7 +504,7 @@
 msgstr ""
 
 #: src/components/Sidebar.vue:44
-#: src/components/admin/usermanagement/Usermanagement.vue:8
+#: src/components/admin/usermanagement/Usermanagement.vue:9
 msgid "Users"
 msgstr ""
 
@@ -455,14 +516,6 @@
 msgid "Waterway User"
 msgstr ""
 
-#: src/components/map/Identify.vue:39
-msgid "which is Free Software under"
-msgstr ""
-
-#: src/components/map/Identify.vue:41
-msgid "without warranty, see docs for details."
-msgstr ""
-
 #: src/components/map/fairway/Profiles.vue:401
 #: src/components/map/fairway/Profiles.vue:402
 msgid "You can now select these coordinates from the \"Saved cross profiles\" menu to restore this cross profile."
--- a/client/yarn.lock	Mon Dec 03 13:08:24 2018 +0100
+++ b/client/yarn.lock	Tue Dec 04 09:55:31 2018 +0100
@@ -10,31 +10,31 @@
     "@babel/highlight" "^7.0.0"
 
 "@babel/core@^7.0.0":
-  version "7.1.2"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e"
-  integrity sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw==
+  version "7.1.6"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.6.tgz#3733cbee4317429bc87c62b29cf8587dba7baeb3"
+  integrity sha512-Hz6PJT6e44iUNpAn8AoyAs6B3bl60g7MJQaI0rZEar6ECzh6+srYO1xlIdssio34mPaUtAb1y+XlkkSJzok3yw==
   dependencies:
     "@babel/code-frame" "^7.0.0"
-    "@babel/generator" "^7.1.2"
-    "@babel/helpers" "^7.1.2"
-    "@babel/parser" "^7.1.2"
+    "@babel/generator" "^7.1.6"
+    "@babel/helpers" "^7.1.5"
+    "@babel/parser" "^7.1.6"
     "@babel/template" "^7.1.2"
-    "@babel/traverse" "^7.1.0"
-    "@babel/types" "^7.1.2"
+    "@babel/traverse" "^7.1.6"
+    "@babel/types" "^7.1.6"
     convert-source-map "^1.1.0"
-    debug "^3.1.0"
-    json5 "^0.5.0"
+    debug "^4.1.0"
+    json5 "^2.1.0"
     lodash "^4.17.10"
     resolve "^1.3.2"
     semver "^5.4.1"
     source-map "^0.5.0"
 
-"@babel/generator@^7.1.2", "@babel/generator@^7.1.3":
-  version "7.1.3"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673"
-  integrity sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ==
-  dependencies:
-    "@babel/types" "^7.1.3"
+"@babel/generator@^7.1.6":
+  version "7.1.6"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.6.tgz#001303cf87a5b9d093494a4bf251d7b5d03d3999"
+  integrity sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ==
+  dependencies:
+    "@babel/types" "^7.1.6"
     jsesc "^2.5.1"
     lodash "^4.17.10"
     source-map "^0.5.0"
@@ -195,14 +195,14 @@
     "@babel/traverse" "^7.1.0"
     "@babel/types" "^7.0.0"
 
-"@babel/helpers@^7.1.2":
-  version "7.1.2"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.2.tgz#ab752e8c35ef7d39987df4e8586c63b8846234b5"
-  integrity sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA==
+"@babel/helpers@^7.1.5":
+  version "7.1.5"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.5.tgz#68bfc1895d685f2b8f1995e788dbfe1f6ccb1996"
+  integrity sha512-2jkcdL02ywNBry1YNFAH/fViq4fXG0vdckHqeJk+75fpQ2OH+Az6076tX/M0835zA45E0Cqa6pV5Kiv9YOqjEg==
   dependencies:
     "@babel/template" "^7.1.2"
-    "@babel/traverse" "^7.1.0"
-    "@babel/types" "^7.1.2"
+    "@babel/traverse" "^7.1.5"
+    "@babel/types" "^7.1.5"
 
 "@babel/highlight@^7.0.0":
   version "7.0.0"
@@ -213,10 +213,10 @@
     esutils "^2.0.2"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.0.0", "@babel/parser@^7.1.2", "@babel/parser@^7.1.3":
-  version "7.1.3"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77"
-  integrity sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w==
+"@babel/parser@^7.0.0", "@babel/parser@^7.1.2", "@babel/parser@^7.1.6":
+  version "7.1.6"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.6.tgz#16e97aca1ec1062324a01c5a6a7d0df8dd189854"
+  integrity sha512-dWP6LJm9nKT6ALaa+bnL247GHHMWir3vSlZ2+IHgHgktZQx0L3Uvq2uAWcuzIe+fujRsYWBW2q622C5UvGK9iQ==
 
 "@babel/plugin-proposal-async-generator-functions@^7.1.0":
   version "7.1.0"
@@ -239,10 +239,10 @@
     "@babel/helper-replace-supers" "^7.1.0"
     "@babel/plugin-syntax-class-properties" "^7.0.0"
 
-"@babel/plugin-proposal-decorators@^7.0.0":
-  version "7.1.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.2.tgz#79829bd75fced6581ec6c7ab1930e8d738e892e7"
-  integrity sha512-YooynBO6PmBgHvAd0fl5e5Tq/a0pEC6RqF62ouafme8FzdIVH41Mz/u1dn8fFVm4jzEJ+g/MsOxouwybJPuP8Q==
+"@babel/plugin-proposal-decorators@^7.1.0":
+  version "7.1.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.6.tgz#460c31edbd01953efe45d491583b3ec31661d689"
+  integrity sha512-U42f8KhUbtlhUDyV/wK4Rq/wWh8vWyttYABckG/v0vVnMPvayOewZC/83CbVdmyP+UhEqI368FEQ7hHMfhBpQA==
   dependencies:
     "@babel/helper-plugin-utils" "^7.0.0"
     "@babel/helper-replace-supers" "^7.1.0"
@@ -361,10 +361,10 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-block-scoping@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz#1745075edffd7cdaf69fab2fb6f9694424b7e9bc"
-  integrity sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg==
+"@babel/plugin-transform-block-scoping@^7.1.5":
+  version "7.1.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.1.5.tgz#3e8e0bc9a5104519923302a24f748f72f2f61f37"
+  integrity sha512-jlYcDrz+5ayWC7mxgpn1Wj8zj0mmjCT2w0mPIMSwO926eXBRxpEgoN/uQVRBfjtr8ayjcmS+xk2G1jaP8JjMJQ==
   dependencies:
     "@babel/helper-plugin-utils" "^7.0.0"
     lodash "^4.17.10"
@@ -564,9 +564,9 @@
     regexpu-core "^4.1.3"
 
 "@babel/preset-env@^7.0.0":
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11"
-  integrity sha512-ZLVSynfAoDHB/34A17/JCZbyrzbQj59QC1Anyueb4Bwjh373nVPq5/HMph0z+tCmcDjXDe+DlKQq9ywQuvWrQg==
+  version "7.1.6"
+  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.6.tgz#a0bf4b96b6bfcf6e000afc5b72b4abe7cc13ae97"
+  integrity sha512-YIBfpJNQMBkb6MCkjz/A9J76SNCSuGVamOVBgoUkLzpJD/z8ghHi9I42LQ4pulVX68N/MmImz6ZTixt7Azgexw==
   dependencies:
     "@babel/helper-module-imports" "^7.0.0"
     "@babel/helper-plugin-utils" "^7.0.0"
@@ -581,7 +581,7 @@
     "@babel/plugin-transform-arrow-functions" "^7.0.0"
     "@babel/plugin-transform-async-to-generator" "^7.1.0"
     "@babel/plugin-transform-block-scoped-functions" "^7.0.0"
-    "@babel/plugin-transform-block-scoping" "^7.0.0"
+    "@babel/plugin-transform-block-scoping" "^7.1.5"
     "@babel/plugin-transform-classes" "^7.1.0"
     "@babel/plugin-transform-computed-properties" "^7.0.0"
     "@babel/plugin-transform-destructuring" "^7.0.0"
@@ -611,9 +611,9 @@
     semver "^5.3.0"
 
 "@babel/runtime@^7.0.0":
-  version "7.1.2"
-  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.2.tgz#81c89935f4647706fc54541145e6b4ecfef4b8e3"
-  integrity sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==
+  version "7.1.5"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.5.tgz#4170907641cf1f61508f563ece3725150cc6fe39"
+  integrity sha512-xKnPpXG/pvK1B90JkwwxSGii90rQGKtzcMt2gI5G6+M0REXaq6rOHsGC2ay6/d0Uje7zzvSzjEzfR3ENhFlrfA==
   dependencies:
     regenerator-runtime "^0.12.0"
 
@@ -626,25 +626,25 @@
     "@babel/parser" "^7.1.2"
     "@babel/types" "^7.1.2"
 
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0":
-  version "7.1.4"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.4.tgz#f4f83b93d649b4b2c91121a9087fa2fa949ec2b4"
-  integrity sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q==
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.1.6":
+  version "7.1.6"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c"
+  integrity sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==
   dependencies:
     "@babel/code-frame" "^7.0.0"
-    "@babel/generator" "^7.1.3"
+    "@babel/generator" "^7.1.6"
     "@babel/helper-function-name" "^7.1.0"
     "@babel/helper-split-export-declaration" "^7.0.0"
-    "@babel/parser" "^7.1.3"
-    "@babel/types" "^7.1.3"
-    debug "^3.1.0"
+    "@babel/parser" "^7.1.6"
+    "@babel/types" "^7.1.6"
+    debug "^4.1.0"
     globals "^11.1.0"
     lodash "^4.17.10"
 
-"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.3":
-  version "7.1.3"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d"
-  integrity sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA==
+"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.5", "@babel/types@^7.1.6":
+  version "7.1.6"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.6.tgz#0adb330c3a281348a190263aceb540e10f04bcce"
+  integrity sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w==
   dependencies:
     esutils "^2.0.2"
     lodash "^4.17.10"
@@ -705,7 +705,7 @@
     call-me-maybe "^1.0.1"
     glob-to-regexp "^0.3.0"
 
-"@nodelib/fs.stat@^1.0.1":
+"@nodelib/fs.stat@^1.1.2":
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
   integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
@@ -778,9 +778,9 @@
     "@types/babel-types" "*"
 
 "@types/node@*", "@types/node@^10.11.7":
-  version "10.12.2"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.2.tgz#d77f9faa027cadad9c912cd47f4f8b07b0fb0864"
-  integrity sha512-53ElVDSnZeFUUFIYzI8WLQ25IhWzb6vbddNp8UHlXQyU0ET2RhV5zg0NfubzU7iNMh5bBXb0htCzfvrSVNgzaQ==
+  version "10.12.11"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.11.tgz#715c476c99a5f6898a1ae61caf9825e43c03912e"
+  integrity sha512-3iIOhNiPGTdcUNVCv9e5G7GotfvJJe2pc9w2UgDXlUwnxSZ3RgcUocIU+xYm+rTU54jIKih998QE4dMOyMN1NQ==
 
 "@types/semver@^5.5.0":
   version "5.5.0"
@@ -797,13 +797,13 @@
   resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1"
   integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==
 
-"@vue/babel-preset-app@^3.1.0":
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-3.1.1.tgz#1bb6395c5ddc84bc8e993ace47151b0d95d382a7"
-  integrity sha512-YLswSHTCgmYjxm0ZJYK6+HfjdiTen2WmxQ8BWkeE+ZI7kOJlEkEMM7+RLmEvEKY8Z0lQharBkjNJdRfWt8D4SQ==
+"@vue/babel-preset-app@^3.2.0":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-3.2.0.tgz#a443acdbd34f66d7645db271d9ac58fbe4fe870d"
+  integrity sha512-yDPMhdeOnQ49EOsOnHXJZQ4aR+g+TZVkImUjRBN90MKv9V1C9HXxhU73Je6pWUQaJ0yugMr5jl058ns6Mx6mNA==
   dependencies:
     "@babel/plugin-proposal-class-properties" "^7.0.0"
-    "@babel/plugin-proposal-decorators" "^7.0.0"
+    "@babel/plugin-proposal-decorators" "^7.1.0"
     "@babel/plugin-syntax-dynamic-import" "^7.0.0"
     "@babel/plugin-syntax-jsx" "^7.0.0"
     "@babel/plugin-transform-runtime" "^7.0.0"
@@ -814,72 +814,72 @@
     babel-plugin-transform-vue-jsx "^4.0.1"
     core-js "^2.5.7"
 
-"@vue/cli-overlay@^3.1.0":
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-3.1.0.tgz#47db870055060c30189454919dbf9381be8695f2"
-  integrity sha512-id6FtCzfbYQ812vRP9AA5qelmQTfhYvYmU+AGm+eZmSbdk8eZqbUtiraFPa5JsqnPN8twUvpPLmvqmPHoK+VEw==
-
-"@vue/cli-plugin-babel@^3.1.1":
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-3.1.1.tgz#443441456ea1141b3a8070255034342dd47809e0"
-  integrity sha512-Wvaoru+9lYz+jAr2nqQrP8mX/0tq3doU4pJC41Ggtq3kUtTnnTf4MBl4SffN1qpW5eW6zFidQ0HjiAp1sfSmyg==
+"@vue/cli-overlay@^3.2.0":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-3.2.0.tgz#bb5d781914bb5af97d92410babbaa3720707b728"
+  integrity sha512-RKMSfgTtRs4VOXQhmbrNZJaCCheshebji9NcPNGyXzukCMBtoAbu3cG9HxizCSUA//oFFAdPP5BGeHvv0cpu/A==
+
+"@vue/cli-plugin-babel@^3.2.0":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-3.2.0.tgz#5548e052f07512156942f50dcf18948ad29be7ec"
+  integrity sha512-HRhwsUIZ9DZYH+cVS8O0Qfk2W43vKpl5/JcvCS8YWWmRjwZjjHtRDifnfQuLC3Q0cUMTcv4bv8vnPMtkAbvXKg==
   dependencies:
     "@babel/core" "^7.0.0"
-    "@vue/babel-preset-app" "^3.1.0"
+    "@vue/babel-preset-app" "^3.2.0"
     babel-loader "^8.0.4"
 
-"@vue/cli-plugin-e2e-nightwatch@^3.1.1":
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-e2e-nightwatch/-/cli-plugin-e2e-nightwatch-3.1.1.tgz#f01290a79e76e988d6b259383e37a3715ad10b0e"
-  integrity sha512-8VhABC7k3XQ0nE36oNLBWFHnx07j1z+81Lf3NUI778xAL373b61htifqr4r4Si2duWayOCkiuv4oy7uWKSmc4Q==
-  dependencies:
-    "@vue/cli-shared-utils" "^3.1.1"
-    chromedriver "^2.43.1"
+"@vue/cli-plugin-e2e-nightwatch@^3.2.0":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-e2e-nightwatch/-/cli-plugin-e2e-nightwatch-3.2.0.tgz#e90b650d63ce184d443c3c7287a91126b2e21bd7"
+  integrity sha512-WZYEFqvDX3pi4igKJv7+atYSZ6ZDWMHZbXD6cU0N2+uHyaULteMq79nW4jqyP9WANJRTtNSsAkMBkNV7bxdXJQ==
+  dependencies:
+    "@vue/cli-shared-utils" "^3.2.0"
+    chromedriver "^2.44.0"
     deepmerge "^2.2.1"
     execa "^1.0.0"
     nightwatch "^0.9.21"
-    selenium-server "^3.14.0"
-
-"@vue/cli-plugin-eslint@^3.1.4":
-  version "3.1.4"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.1.4.tgz#7cf1a4a4540db9210a5e418eae3c19e1eb302275"
-  integrity sha512-1ET67AfYEMb5Lesd8YC6X8WLdrt/Mqr9x/oQjrc6hIYInIThOVo6hkWZXgznru5A1lD1kw4GQWq/DCUKfw6v2g==
-  dependencies:
-    "@vue/cli-shared-utils" "^3.1.1"
+    selenium-server "^3.141.59"
+
+"@vue/cli-plugin-eslint@^3.2.1":
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.2.1.tgz#4dc353add93023363bf4c6b347e64472d1f2f432"
+  integrity sha512-Z/eQw18FjTypMMryNg8WCYJxEBmSAtnzukRWWNFwqNnh2zM/2J6yR4dYhsyjNtMEMUOnQsAsJnqgw45rLu8sJg==
+  dependencies:
+    "@vue/cli-shared-utils" "^3.2.0"
     babel-eslint "^10.0.1"
     eslint "^4.19.1"
     eslint-loader "^2.1.1"
     eslint-plugin-vue "^4.7.1"
     globby "^8.0.1"
 
-"@vue/cli-plugin-unit-jest@^3.1.1":
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-3.1.1.tgz#8ea47d0c953088c8f04eb8cecaac21227b1bc317"
-  integrity sha512-6019ikvxRhCK9hSs2mQJllS4DA0BV1yxSUKMbIad5z987uJL6hNZIJqfuzXdtvHOq5AVgcQsY+JH4WWtqShr7g==
-  dependencies:
-    "@vue/cli-shared-utils" "^3.1.1"
+"@vue/cli-plugin-unit-jest@^3.2.0":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-3.2.0.tgz#5f3d3d83b3cf2ea834af23d445f68a16387ace23"
+  integrity sha512-I3d2W7O1Gb7/jNzZJ8Vt7FEn2Az0WmjGPxEGQecPPhD4cKG6xas1eKoWngiNV1NMIJfTO99UN+PlmUUE7hxb1A==
+  dependencies:
+    "@vue/cli-shared-utils" "^3.2.0"
     babel-jest "^23.6.0"
     babel-plugin-transform-es2015-modules-commonjs "^6.26.2"
     jest "^23.6.0"
     jest-serializer-vue "^2.0.2"
     jest-transform-stub "^1.0.0"
-    vue-jest "^3.0.0"
-
-"@vue/cli-service@^3.1.2":
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-3.1.2.tgz#e3ca43cefd7c9b5fa5e148a8d1f667de9ddc2579"
-  integrity sha512-hJHXvtQ4+aynKn+wknSqM7RoEbg35yA5W9L74vvjOQDyU+nEf2uQHt/xNj5O/PwSxK5QBn80vWH8CrUSCBF0eg==
+    vue-jest "^3.0.1"
+
+"@vue/cli-service@^3.2.0":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-3.2.0.tgz#96e8ee7b33a911ab71710c126ab55cd64c2a4c51"
+  integrity sha512-HTiaz1IBXV/JCfrmyhHJvDOYpPTBK0uQAekSVRTt5AddCeOV68ktdUqHbDe3VPDfrWFA5x3d3kIHlJd6WK31mA==
   dependencies:
     "@intervolga/optimize-cssnano-plugin" "^1.0.5"
-    "@vue/cli-overlay" "^3.1.0"
-    "@vue/cli-shared-utils" "^3.1.1"
+    "@vue/cli-overlay" "^3.2.0"
+    "@vue/cli-shared-utils" "^3.2.0"
     "@vue/preload-webpack-plugin" "^1.1.0"
     "@vue/web-component-wrapper" "^1.2.0"
-    acorn "^6.0.2"
-    acorn-walk "^6.1.0"
+    acorn "^6.0.4"
+    acorn-walk "^6.1.1"
     address "^1.0.3"
     autoprefixer "^8.6.5"
-    cache-loader "1.2.2"
+    cache-loader "^1.2.5"
     case-sensitive-paths-webpack-plugin "^2.1.2"
     chalk "^2.4.1"
     clipboardy "^1.2.3"
@@ -891,7 +891,7 @@
     escape-string-regexp "^1.0.5"
     file-loader "^2.0.0"
     friendly-errors-webpack-plugin "^1.7.0"
-    fs-extra "^7.0.0"
+    fs-extra "^7.0.1"
     globby "^8.0.1"
     hash-sum "^1.0.2"
     html-webpack-plugin "^3.2.0"
@@ -899,7 +899,7 @@
     lodash.defaultsdeep "^4.6.0"
     lodash.mapvalues "^4.6.0"
     lodash.transform "^4.6.0"
-    mini-css-extract-plugin "^0.4.4"
+    mini-css-extract-plugin "^0.4.5"
     minimist "^1.2.0"
     ora "^3.0.0"
     portfinder "^1.0.19"
@@ -914,17 +914,17 @@
     thread-loader "^1.2.0"
     url-loader "^1.1.2"
     vue-loader "^15.4.2"
-    webpack "^4.23.1"
+    webpack "^4.26.1"
     webpack-bundle-analyzer "^3.0.3"
     webpack-chain "^4.11.0"
     webpack-dev-server "^3.1.10"
     webpack-merge "^4.1.4"
     yorkie "^2.0.0"
 
-"@vue/cli-shared-utils@^3.1.1":
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-3.1.1.tgz#ab8638c25318e5812b57877d7cfc65cd2af43740"
-  integrity sha512-r+R+5LI6IHHPI5tbOSDy5DpiY5O9eTy8LPr/QCPb5RIOg+Pg03VlElW4BL69hePXEHCQZZDsOzgItSmat6mBhg==
+"@vue/cli-shared-utils@^3.2.0":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-3.2.0.tgz#504037063c2a4a346dc35c9652bd3863da4816e7"
+  integrity sha512-FCX5ABFg5pWhomyXLpCaogJktMvjsS5d4Mn5BfvqcJxCvzOX6ze8ihFK3u//XMeM78dOFpHSjxnRSvHtkEwgsg==
   dependencies:
     chalk "^2.4.1"
     execa "^1.0.0"
@@ -969,25 +969,26 @@
     source-map "^0.5.6"
     vue-template-es2015-compiler "^1.6.0"
 
-"@vue/eslint-config-prettier@^4.0.0":
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-4.0.0.tgz#d408b6490a00864c79df69885ef9d82977312bdc"
-  integrity sha512-NVFubMdP8KPkWJy2Z4AdDI1payw4dt1n/IN2VTGWSZd8Wva4TtdibRWFDjBZs4eqeeZepThxg6PDV9242zEM9w==
-  dependencies:
-    eslint-config-prettier "^3.1.0"
+"@vue/eslint-config-prettier@^4.0.1":
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-4.0.1.tgz#a036d0d2193c5c836542b35a3a7c35c4e1c68c97"
+  integrity sha512-rJEDXPb61Hfgg8GllO3XXFP98bcIxdNNHSrNcxP/vBSukOolgOwQyZJ5f5z/c7ViPyh5/IDlC4qBnhx/0n+I4g==
+  dependencies:
+    eslint-config-prettier "^3.3.0"
     eslint-plugin-prettier "^3.0.0"
-    prettier "^1.14.3"
+    prettier "^1.15.2"
 
 "@vue/preload-webpack-plugin@^1.1.0":
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.0.tgz#d768dba004261c029b53a77c5ea2d5f9ee4f3cce"
   integrity sha512-rcn2KhSHESBFMPj5vc5X2pI9bcBNQQixvJXhD5gZ4rN2iym/uH2qfDSQfUS5+qwiz0a85TCkeUs6w6jxFDudbw==
 
-"@vue/test-utils@^1.0.0-beta.20":
-  version "1.0.0-beta.25"
-  resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.25.tgz#4703076de3076bac42cdd242cd53e6fb8752ed8c"
-  integrity sha512-mfvguEmEpAn0BuT4u+qm+0J1NTKgQS+ffUyWHY1QeSovIkJcy98fj1rO+PJgiZSEvGjjnDNX+qmofYFPLrofbA==
-  dependencies:
+"@vue/test-utils@^1.0.0-beta.26":
+  version "1.0.0-beta.26"
+  resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.26.tgz#1ae7e1dc2bef4f49f9dbfdfecad342d17d6c5c88"
+  integrity sha512-2bvTgdh4Rh9NqeIrH+rah6AjXUHYxFqLO+NoOMqWXYqSvk1PGgvI5o5sT6Pty4HklIReOZxWxsMpgnJFK9rW+A==
+  dependencies:
+    dom-event-types "^1.0.0"
     lodash "^4.17.4"
 
 "@vue/web-component-wrapper@^1.2.0":
@@ -1259,10 +1260,10 @@
     acorn-optional-catch-binding "^0.1.0"
     acorn-private-methods "^0.1.1"
 
-acorn-walk@^6.0.1, acorn-walk@^6.1.0:
-  version "6.1.0"
-  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.0.tgz#c957f4a1460da46af4a0388ce28b4c99355b0cbc"
-  integrity sha512-ugTb7Lq7u4GfWSqqpwE0bGyoBZNMTok/zDBXxfEG0QM50jNlGhIWjRC1pPN7bvV1anhF+bs+/gNcRw+o55Evbg==
+acorn-walk@^6.0.1, acorn-walk@^6.1.1:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913"
+  integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==
 
 acorn@^3.0.4, acorn@^3.1.0:
   version "3.3.0"
@@ -1279,7 +1280,7 @@
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
   integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
 
-acorn@^6.0.1, acorn@^6.0.2:
+acorn@^6.0.1, acorn@^6.0.4:
   version "6.0.4"
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754"
   integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==
@@ -1322,10 +1323,10 @@
     fast-json-stable-stringify "^2.0.0"
     json-schema-traverse "^0.3.0"
 
-ajv@^6.1.0:
-  version "6.5.5"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.5.tgz#cf97cdade71c6399a92c6d6c4177381291b781a1"
-  integrity sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==
+ajv@^6.1.0, ajv@^6.5.5:
+  version "6.6.1"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.1.tgz#6360f5ed0d80f232cc2b294c362d5dc2e538dd61"
+  integrity sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==
   dependencies:
     fast-deep-equal "^2.0.1"
     fast-json-stable-stringify "^2.0.0"
@@ -1476,9 +1477,9 @@
   integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
 
 array-flatten@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
-  integrity sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
+  integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
 
 array-map@~0.0.0:
   version "0.0.0"
@@ -1512,7 +1513,7 @@
   resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
   integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
 
-arrify@^1.0.0, arrify@^1.0.1:
+arrify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
   integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
@@ -1561,9 +1562,9 @@
   integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
 
 ast-types@0.x.x:
-  version "0.11.6"
-  resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.6.tgz#4e2266c2658829aef3b40cc33ad599c4e9eb89ef"
-  integrity sha512-nHiuV14upVGl7MWwFUYbzJ6YlfwWS084CU9EA8HajfYQjMSli5TQi3UTRygGF58LFWVkXxS1rbgRhROEqlQkXg==
+  version "0.11.7"
+  resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.7.tgz#f318bf44e339db6a320be0009ded64ec1471f46c"
+  integrity sha512-2mP3TwtkY/aTv5X3ZsMpNAbOnyoC/aMJwJSoaELPkHId0nSQgFcnU4dRW3isxiz7+zBexk0ym3WNVjMiQBnJSw==
 
 astral-regex@^1.0.0:
   version "1.0.0"
@@ -1925,9 +1926,9 @@
     inherits "~2.0.0"
 
 bluebird@^3.1.1, bluebird@^3.5.1:
-  version "3.5.2"
-  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.2.tgz#1be0908e054a751754549c270489c1505d4ab15a"
-  integrity sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==
+  version "3.5.3"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7"
+  integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==
 
 bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
   version "4.11.8"
@@ -2095,13 +2096,13 @@
     electron-to-chromium "^1.3.47"
 
 browserslist@^4.0.0, browserslist@^4.1.0:
-  version "4.3.4"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.4.tgz#4477b737db6a1b07077275b24791e680d4300425"
-  integrity sha512-u5iz+ijIMUlmV8blX82VGFrB9ecnUg5qEt55CMZ/YJEhha+d8qpBfOFuutJ6F/VKRXjZoD33b6uvarpPxcl3RA==
-  dependencies:
-    caniuse-lite "^1.0.30000899"
-    electron-to-chromium "^1.3.82"
-    node-releases "^1.0.1"
+  version "4.3.5"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.5.tgz#1a917678acc07b55606748ea1adf9846ea8920f7"
+  integrity sha512-z9ZhGc3d9e/sJ9dIx5NFXkKoaiQTnrvrMsN3R1fGb1tkWWNSz12UewJn9TNxGo1l7J23h0MRaPmk7jfeTZYs1w==
+  dependencies:
+    caniuse-lite "^1.0.30000912"
+    electron-to-chromium "^1.3.86"
+    node-releases "^1.0.5"
 
 bser@^2.0.0:
   version "2.0.0"
@@ -2203,10 +2204,10 @@
     union-value "^1.0.0"
     unset-value "^1.0.0"
 
-cache-loader@1.2.2:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.2.tgz#6d5c38ded959a09cc5d58190ab5af6f73bd353f5"
-  integrity sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==
+cache-loader@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.5.tgz#9ab15b0ae5f546f376083a695fc1a75f546cb266"
+  integrity sha512-enWKEQ4kO3YreDFd7AtVRjtJBmNiqh/X9hVDReu0C4qm8gsGmySkwuWtdc+N5O+vq5FzxL1mIZc30NyXCB7o/Q==
   dependencies:
     loader-utils "^1.1.0"
     mkdirp "^0.5.1"
@@ -2218,6 +2219,13 @@
   resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
   integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
 
+caller-callsite@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+  integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+  dependencies:
+    callsites "^2.0.0"
+
 caller-path@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
@@ -2225,6 +2233,13 @@
   dependencies:
     callsites "^0.2.0"
 
+caller-path@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+  integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+  dependencies:
+    caller-callsite "^2.0.0"
+
 callsites@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
@@ -2271,6 +2286,11 @@
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
   integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
 
+camelcase@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42"
+  integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==
+
 caniuse-api@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
@@ -2281,10 +2301,10 @@
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000864, caniuse-lite@^1.0.30000899:
-  version "1.0.30000906"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000906.tgz#7c44e498a2504f7a5db3b4f91285bbc821157a77"
-  integrity sha512-ME7JFX6h0402om/nC/8Lw+q23QvPe2ust9U0ntLmkX9F2zaGwq47fZkjlyHKirFBuq1EM+T/LXBcDdW4bvkCTA==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000864, caniuse-lite@^1.0.30000912:
+  version "1.0.30000913"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000913.tgz#560311ecf242eaf12159b720e64b11ebd759b5e4"
+  integrity sha512-PP7Ypc35XY1mNduHqweGNOp0qfNUCmaQauGOYDByvirlFjrzRyY72pBRx7jnBidOB8zclg00DAzsy2H475BouQ==
 
 capture-exit@^1.2.0:
   version "1.2.0"
@@ -2400,17 +2420,16 @@
   dependencies:
     tslib "^1.9.0"
 
-chromedriver@^2.43.1:
-  version "2.43.1"
-  resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-2.43.1.tgz#b5ee75857f012ab540e74638206c062a0a962044"
-  integrity sha512-AqUEHpS+IzYm7HkBwElzVGe26Rs7hQwBoUSA4l7ju6Uymr1l0EtYpYfA3mDBqvvFif80yYh7blR0gLsc7h6Qpw==
+chromedriver@^2.44.0:
+  version "2.44.1"
+  resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-2.44.1.tgz#bb4dd614cb92b9a816e499ebaa692500011f4a3e"
+  integrity sha512-IPM8XQzQYVNJ9Rfec5cy0aGbrZno5xUlDNLLuph9bjkTJVoi14zqjvtmRd8Dc1P5vTw0MwNQ5JD89zibXp/W5A==
   dependencies:
     del "^3.0.0"
     extract-zip "^1.6.7"
-    kew "^0.7.0"
     mkdirp "^0.5.1"
-    request "^2.87.0"
-    tcp-port-used "^1.0.0"
+    request "^2.88.0"
+    tcp-port-used "^1.0.1"
 
 ci-info@^1.5.0:
   version "1.6.0"
@@ -2625,11 +2644,6 @@
   dependencies:
     graceful-readlink ">= 1.0.0"
 
-commander@~2.13.0:
-  version "2.13.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
-  integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
-
 commondir@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -2675,16 +2689,16 @@
     readable-stream "^2.2.2"
     typedarray "^0.0.6"
 
-concurrently@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-4.0.1.tgz#f6310fbadf2f476dd95df952edb5c0ab789f672c"
-  integrity sha512-D8UI+mlI/bfvrA57SeKOht6sEpb01dKk+8Yee4fbnkk1Ue8r3S+JXoEdFZIpzQlXJGtnxo47Wvvg/kG4ba3U6Q==
+concurrently@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-4.1.0.tgz#17fdf067da71210685d9ea554423ef239da30d33"
+  integrity sha512-pwzXCE7qtOB346LyO9eFWpkFJVO3JQZ/qU/feGeaAHiX1M3Rw3zgXKc5cZ8vSH5DGygkjzLFDzA/pwoQDkRNGg==
   dependencies:
     chalk "^2.4.1"
     date-fns "^1.23.0"
     lodash "^4.17.10"
     read-pkg "^4.0.1"
-    rxjs "6.2.2"
+    rxjs "^6.3.3"
     spawn-command "^0.0.2-1"
     supports-color "^4.5.0"
     tree-kill "^1.1.0"
@@ -2825,10 +2839,11 @@
     require-from-string "^2.0.1"
 
 cosmiconfig@^5.0.0:
-  version "5.0.6"
-  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
-  integrity sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==
-  dependencies:
+  version "5.0.7"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04"
+  integrity sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==
+  dependencies:
+    import-fresh "^2.0.0"
     is-directory "^0.3.1"
     js-yaml "^3.9.0"
     parse-json "^4.0.0"
@@ -3220,9 +3235,9 @@
   integrity sha512-Z18Dprj96ExragQ0DeGi+SYPQ7pPfRMtUXtsg/ChVIKNBCzjO8XYJvRTC1usblx52lqge56V5ect+frYTQc8WQ==
 
 d3-geo@1:
-  version "1.11.1"
-  resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.11.1.tgz#3f35e582c0d29296618b02a8ade0fdffb2c0e63c"
-  integrity sha512-GsG7x9G9sykseLviOVSJ3h5yjw0ItLopOtuDQKUt1TRklEegCw5WAmnIpYYiCkSH/QgUMleAeE2xZK38Qb+1+Q==
+  version "1.11.3"
+  resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.11.3.tgz#5bb08388f45e4b281491faa72d3abd43215dbd1c"
+  integrity sha512-n30yN9qSKREvV2fxcrhmHUdXP9TNH7ZZj3C/qnaoU0cVf/Ea85+yT7HY7i8ySPwkwjCNYtmKqQFTvLFngfkItQ==
   dependencies:
     d3-array "1"
 
@@ -3448,7 +3463,7 @@
   dependencies:
     ms "^2.1.1"
 
-decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
+decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
   integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
@@ -3557,19 +3572,6 @@
     escodegen "1.x.x"
     esprima "3.x.x"
 
-del@^2.0.2:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
-  integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=
-  dependencies:
-    globby "^5.0.0"
-    is-path-cwd "^1.0.0"
-    is-path-in-cwd "^1.0.0"
-    object-assign "^4.0.1"
-    pify "^2.0.0"
-    pinkie-promise "^2.0.0"
-    rimraf "^2.2.8"
-
 del@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
@@ -3703,6 +3705,11 @@
   dependencies:
     utila "~0.4"
 
+dom-event-types@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.0.0.tgz#5830a0a29e1bf837fe50a70cd80a597232813cae"
+  integrity sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ==
+
 dom-serializer@0, dom-serializer@~0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
@@ -3851,10 +3858,10 @@
   resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0"
   integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==
 
-electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.82:
-  version "1.3.83"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz#74584eb0972bb6777811c5d68d988c722f5e6666"
-  integrity sha512-DqJoDarxq50dcHsOOlMLNoy+qQitlMNbYb6wwbE0oUw2veHdRkpNrhmngiUYKMErdJ8SJ48rpJsZTQgy5SoEAA==
+electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.86:
+  version "1.3.87"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.87.tgz#f0481ca84824752bced51673396e9a6c74fe5ec7"
+  integrity sha512-EV5FZ68Hu+n9fHVhOc9AcG3Lvf+E1YqR36ulJUpwaQTkf4LwdvBqmGIazaIrt4kt6J8Gw3Kv7r9F+PQjAkjWeA==
 
 elliptic@^6.0.0:
   version "6.4.1"
@@ -3963,10 +3970,10 @@
   optionalDependencies:
     source-map "~0.6.1"
 
-eslint-config-prettier@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.1.0.tgz#2c26d2cdcfa3a05f0642cd7e6e4ef3316cdabfa2"
-  integrity sha512-QYGfmzuc4q4J6XIhlp8vRKdI/fI0tQfQPy1dME3UOLprE+v4ssH/3W9LM2Q7h5qBcy5m0ehCrBDU2YF8q6OY8w==
+eslint-config-prettier@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.3.0.tgz#41afc8d3b852e757f06274ed6c44ca16f939a57d"
+  integrity sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==
   dependencies:
     get-stdin "^6.0.0"
 
@@ -4377,15 +4384,15 @@
   integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
 
 fast-glob@^2.0.2:
-  version "2.2.3"
-  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.3.tgz#d09d378e9ef6b0076a0fa1ba7519d9d4d9699c28"
-  integrity sha512-NiX+JXjnx43RzvVFwRWfPKo4U+1BrK5pJPsHQdKMlLoFHrrGktXglQhHliSihWAq+m1z6fHk3uwGHrtRbS9vLA==
+  version "2.2.4"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.4.tgz#e54f4b66d378040e0e4d6a68ec36bbc5b04363c0"
+  integrity sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g==
   dependencies:
     "@mrmlnc/readdir-enhanced" "^2.2.1"
-    "@nodelib/fs.stat" "^1.0.1"
+    "@nodelib/fs.stat" "^1.1.2"
     glob-parent "^3.1.0"
     is-glob "^4.0.0"
-    merge2 "^1.2.1"
+    merge2 "^1.2.3"
     micromatch "^3.1.10"
 
 fast-json-stable-stringify@^2.0.0:
@@ -4574,13 +4581,13 @@
     locate-path "^3.0.0"
 
 flat-cache@^1.2.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
-  integrity sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=
+  version "1.3.4"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f"
+  integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==
   dependencies:
     circular-json "^0.3.1"
-    del "^2.0.2"
     graceful-fs "^4.1.2"
+    rimraf "~2.6.2"
     write "^0.2.1"
 
 flush-write-stream@^1.0.0:
@@ -4592,9 +4599,9 @@
     readable-stream "^2.0.4"
 
 follow-redirects@^1.0.0, follow-redirects@^1.3.0:
-  version "1.5.9"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.9.tgz#c9ed9d748b814a39535716e531b9196a845d89c6"
-  integrity sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==
+  version "1.5.10"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
+  integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
   dependencies:
     debug "=3.1.0"
 
@@ -4675,10 +4682,10 @@
     inherits "^2.0.1"
     readable-stream "^2.0.0"
 
-fs-extra@^7.0.0:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6"
-  integrity sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==
+fs-extra@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+  integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
   dependencies:
     graceful-fs "^4.1.2"
     jsonfile "^4.0.0"
@@ -4885,32 +4892,20 @@
     path-is-absolute "^1.0.0"
 
 global-modules-path@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.0.tgz#b0e2bac6beac39745f7db5c59d26a36a0b94f7dc"
-  integrity sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.1.tgz#e541f4c800a1a8514a990477b267ac67525b9931"
+  integrity sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg==
 
 globals@^11.0.1, globals@^11.1.0:
-  version "11.8.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-11.8.0.tgz#c1ef45ee9bed6badf0663c5cb90e8d1adec1321d"
-  integrity sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==
+  version "11.9.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249"
+  integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==
 
 globals@^9.18.0:
   version "9.18.0"
   resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
   integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
 
-globby@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
-  integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=
-  dependencies:
-    array-union "^1.0.1"
-    arrify "^1.0.0"
-    glob "^7.0.3"
-    object-assign "^4.0.1"
-    pify "^2.0.0"
-    pinkie-promise "^2.0.0"
-
 globby@^6.1.0:
   version "6.1.0"
   resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
@@ -5013,11 +5008,11 @@
   integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
 
 har-validator@~5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29"
-  integrity sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==
-  dependencies:
-    ajv "^5.3.0"
+  version "5.1.3"
+  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
+  integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
+  dependencies:
+    ajv "^6.5.5"
     har-schema "^2.0.0"
 
 has-ansi@^2.0.0:
@@ -5104,9 +5099,9 @@
   integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=
 
 hash.js@^1.0.0, hash.js@^1.0.3:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812"
-  integrity sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==
+  version "1.1.7"
+  resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+  integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
   dependencies:
     inherits "^2.0.3"
     minimalistic-assert "^1.0.1"
@@ -5141,9 +5136,9 @@
   integrity sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==
 
 hoek@6.x.x:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.0.1.tgz#15ae90f8d30ad114e2feabe4967567014a783078"
-  integrity sha512-3PvUwBerLNVJiIVQdpkWF9F/M0ekgb2NPJWOhsE28RXSQPsY42YSnaJ8d1kZjcAz58TZ/Fk9Tw64xJsENFlJNw==
+  version "6.1.2"
+  resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.2.tgz#99e6d070561839de74ee427b61aa476bd6bddfd6"
+  integrity sha512-6qhh/wahGYZHFSFw12tBbJw5fsAhhwrrG/y3Cs0YMTv2WzMnL0oLPnQJjv1QJvEfylRSOFuP+xCu+tdx0tD16Q==
 
 home-or-tmp@^2.0.0:
   version "2.0.0"
@@ -5374,6 +5369,14 @@
   dependencies:
     import-from "^2.1.0"
 
+import-fresh@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+  integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+  dependencies:
+    caller-path "^2.0.0"
+    resolve-from "^3.0.0"
+
 import-from@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
@@ -6408,9 +6411,9 @@
   integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s=
 
 jsesc@^2.5.1:
-  version "2.5.1"
-  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe"
-  integrity sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+  integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
 
 jsesc@~0.5.0:
   version "0.5.0"
@@ -6457,6 +6460,13 @@
   resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
   integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
 
+json5@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
+  integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
+  dependencies:
+    minimist "^1.2.0"
+
 jsonfile@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@@ -6487,11 +6497,6 @@
     is-promise "^2.0.0"
     promise "^7.0.1"
 
-kew@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
-  integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=
-
 killable@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
@@ -6884,9 +6889,9 @@
   integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
 
 lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.3:
-  version "4.1.3"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c"
-  integrity sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
+  integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
   dependencies:
     pseudomap "^1.0.2"
     yallist "^2.1.2"
@@ -6911,9 +6916,9 @@
     tmpl "1.0.x"
 
 map-age-cleaner@^0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74"
-  integrity sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==
+  version "0.1.3"
+  resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
+  integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
   dependencies:
     p-defer "^1.0.0"
 
@@ -7022,7 +7027,7 @@
   dependencies:
     readable-stream "^2.0.1"
 
-merge2@^1.2.1:
+merge2@^1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5"
   integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==
@@ -7101,19 +7106,19 @@
   integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
 
 mime@^2.0.3, mime@^2.3.1:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369"
-  integrity sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6"
+  integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==
 
 mimic-fn@^1.0.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
   integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
 
-mini-css-extract-plugin@^0.4.4:
-  version "0.4.4"
-  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.4.tgz#c10410a004951bd3cedac1da69053940fccb625d"
-  integrity sha512-o+Jm+ocb0asEngdM6FsZWtZsRzA8koFUudIDwYUfl94M3PejPHG7Vopw5hN9V8WsMkSFpm3tZP3Fesz89EyrfQ==
+mini-css-extract-plugin@^0.4.5:
+  version "0.4.5"
+  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.5.tgz#c99e9e78d54f3fa775633aee5933aeaa4e80719a"
+  integrity sha512-dqBanNfktnp2hwL2YguV9Jh91PFX7gu7nRLs4TGsbAfAG6WOtlynFRYzwDwmmeSb5uIwHo9nx1ta0f7vAZVp2w==
   dependencies:
     loader-utils "^1.1.0"
     schema-utils "^1.0.0"
@@ -7484,10 +7489,10 @@
     semver "^5.3.0"
     tar "^4"
 
-node-releases@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.3.tgz#3414ed84595096459c251699bfcb47d88324a9e4"
-  integrity sha512-ZaZWMsbuDcetpHmYeKWPO6e63pSXLb50M7lJgCbcM2nC/nQC3daNifmtp5a2kp7EWwYfhuvH6zLPWkrF8IiDdw==
+node-releases@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.5.tgz#a641adcc968b039a27345d92ef10b093e5cbd41d"
+  integrity sha512-Ky7q0BO1BBkG/rQz6PkEZ59rwo+aSfhczHP1wwq8IowoVdN/FpiP7qp0XW0P2+BVCWe5fQUBozdbVd54q1RbCQ==
   dependencies:
     semver "^5.3.0"
 
@@ -7635,9 +7640,9 @@
     kind-of "^3.0.3"
 
 object-hash@^1.1.4:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2"
-  integrity sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df"
+  integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==
 
 object-keys@^1.0.11, object-keys@^1.0.12:
   version "1.0.12"
@@ -7699,10 +7704,10 @@
   resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
   integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
 
-ol@^5.0.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/ol/-/ol-5.2.0.tgz#5659ba9762def144deb8dcba97357aa5f8cc8a05"
-  integrity sha512-/sXlXKMT7W/4txYmEJiqZousQ5GScDoqVrltyQDl0himUD1oEV460bH74eD49AMm0OmQL9+TIn6DXKqOYzjTLw==
+ol@^5.3.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/ol/-/ol-5.3.0.tgz#106b870561fabb9b790b5869b3d93025cb03d389"
+  integrity sha512-UrOJGNI5XdYfE9n43RJdsMq25SjI4nIi5Kf0kxi+q6vEknzeRxM/wgYf8FMs7Ss3URuIbsKmetW9dVMOYB/DkQ==
   dependencies:
     pbf "3.1.0"
     pixelworks "1.1.0"
@@ -7930,9 +7935,9 @@
     thunkify "~2.1.1"
 
 pako@~1.0.5:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258"
-  integrity sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.7.tgz#2473439021b57f1516c82f58be7275ad8ef1bb27"
+  integrity sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==
 
 parallel-transform@^1.1.0:
   version "1.1.0"
@@ -8172,14 +8177,14 @@
   integrity sha512-Vy9eH1dRD9wHjYt/QqXcTz+RnX/zg53xK+KljFSX30PvdDMb2z+c6uDUeblUGqqJgz3QFsdlA0IJvHziPmWtQg==
 
 popper.js@^1.12.9:
-  version "1.14.4"
-  resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.4.tgz#8eec1d8ff02a5a3a152dd43414a15c7b79fd69b6"
-  integrity sha1-juwdj/AqWjoVLdQ0FKFce3n9abY=
+  version "1.14.6"
+  resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.6.tgz#ab20dd4edf9288b8b3b6531c47c361107b60b4b0"
+  integrity sha512-AGwHGQBKumlk/MDfrSOf0JHhJCImdDMcGNoqKmKkU+68GFazv3CQ6q9r7Ja1sKDZmYWTckY/uLyEznheTDycnA==
 
 portfinder@^1.0.19, portfinder@^1.0.9:
-  version "1.0.19"
-  resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.19.tgz#07e87914a55242dcda5b833d42f018d6875b595f"
-  integrity sha512-23aeQKW9KgHe6citUrG3r9HjeX6vls0h713TAa+CwTKZwNIr/pD2ApaxYF4Um3ZZyq4ar+Siv3+fhoHaIwSOSw==
+  version "1.0.20"
+  resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a"
+  integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==
   dependencies:
     async "^1.5.2"
     debug "^2.2.0"
@@ -8520,9 +8525,9 @@
     supports-color "^5.4.0"
 
 postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.5:
-  version "7.0.5"
-  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.5.tgz#70e6443e36a6d520b0fd4e7593fcca3635ee9f55"
-  integrity sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ==
+  version "7.0.6"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.6.tgz#6dcaa1e999cdd4a255dcd7d4d9547f4ca010cdc2"
+  integrity sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug==
   dependencies:
     chalk "^2.4.1"
     source-map "^0.6.1"
@@ -8550,10 +8555,10 @@
   resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281"
   integrity sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==
 
-prettier@^1.13.0, prettier@^1.14.3:
-  version "1.14.3"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895"
-  integrity sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg==
+prettier@^1.13.0, prettier@^1.15.2:
+  version "1.15.3"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.15.3.tgz#1feaac5bdd181237b54dbe65d874e02a1472786a"
+  integrity sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg==
 
 pretty-error@^2.0.2:
   version "2.1.1"
@@ -8607,9 +8612,9 @@
   integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
 
 progress@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31"
-  integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.2.tgz#db9476f916bcc9ebe8a04efb22b18b0740376c61"
+  integrity sha512-/OLz5F9beZUWwSHZDreXgap1XShX6W+DCHQCqwCF7uZ88s6uTlD2cR3JBE77SegCmNtb1Idst+NfmwcdU6KVhw==
 
 promise-inflight@^1.0.1:
   version "1.0.1"
@@ -8673,7 +8678,7 @@
   resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
   integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
 
-psl@^1.1.24:
+psl@^1.1.24, psl@^1.1.28:
   version "1.1.29"
   resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
   integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==
@@ -8825,7 +8830,7 @@
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
   integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
 
-punycode@2.x.x, punycode@^2.1.0:
+punycode@2.x.x, punycode@^2.1.0, punycode@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
@@ -8835,13 +8840,13 @@
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
   integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
 
-purgecss-webpack-plugin@^1.2.1:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/purgecss-webpack-plugin/-/purgecss-webpack-plugin-1.3.1.tgz#530d30d4f27fe5515d2844addda0799c6bee45d0"
-  integrity sha512-RdiVF9AN6QNzx3yIqg1uUI8PcoUOeSkgTa9BS8pMZYXirBHizpuFvAZN2pKpmV9UoJ0cbBJS4watKFrhO8Td3A==
+purgecss-webpack-plugin@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/purgecss-webpack-plugin/-/purgecss-webpack-plugin-1.4.0.tgz#accf6f8f41a7d48fe830da16a4c94d1ab884d6c0"
+  integrity sha512-kCVR8RvmtJ6IwzxMBNFmAucItyvY6db0Ui5DBmQHCe8GvY2ST03a26wFCU8XwfzN8gpKUGZPyuD3OtL+9WOT0w==
   dependencies:
     purgecss "^1.1.0"
-    webpack-sources "^1.2.0"
+    webpack-sources "^1.3.0"
 
 purgecss@^1.1.0:
   version "1.1.0"
@@ -8970,7 +8975,7 @@
     parse-json "^4.0.0"
     pify "^3.0.0"
 
-"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6:
+"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
   version "2.3.6"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
   integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
@@ -9309,7 +9314,7 @@
   dependencies:
     align-text "^0.1.1"
 
-rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
+rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2:
   version "2.6.2"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
   integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
@@ -9360,10 +9365,10 @@
   resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
   integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
 
-rxjs@6.2.2:
-  version "6.2.2"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.2.tgz#eb75fa3c186ff5289907d06483a77884586e1cf9"
-  integrity sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==
+rxjs@^6.3.3:
+  version "6.3.3"
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55"
+  integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==
   dependencies:
     tslib "^1.9.0"
 
@@ -9427,7 +9432,7 @@
   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
   integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
 
-schema-utils@^0.4.2, schema-utils@^0.4.4, schema-utils@^0.4.5:
+schema-utils@^0.4.2, schema-utils@^0.4.4:
   version "0.4.7"
   resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
   integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
@@ -9462,10 +9467,10 @@
   resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
   integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
 
-selenium-server@^3.14.0:
-  version "3.141.0"
-  resolved "https://registry.yarnpkg.com/selenium-server/-/selenium-server-3.141.0.tgz#20e550518a36a50d05f11741e6cdf6a0597c09c9"
-  integrity sha512-p58Zk2a1xNJumR5nm7vFXpd9U+hDrtwYdtM86qvVk3ZqGSEtCCjCgvdrVzPOYzJszZV4cY7pCBXKxMneLuHGGw==
+selenium-server@^3.141.59:
+  version "3.141.59"
+  resolved "https://registry.yarnpkg.com/selenium-server/-/selenium-server-3.141.59.tgz#cbefdf50aae636ee4c67b819532a8233ce3fd6b0"
+  integrity sha512-pL7T1YtAqOEXiBbTx0KdZMkE2U7PYucemd7i0nDLcxcR1APXYZlJfNr5hrvL3mZgwXb7AJEZPINzC6mDU3eP5g==
 
 selfsigned@^1.9.1:
   version "1.10.4"
@@ -9882,9 +9887,9 @@
   integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
 
 stack-utils@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620"
-  integrity sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
+  integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==
 
 stackframe@^1.0.4:
   version "1.0.4"
@@ -9996,10 +10001,10 @@
     es-abstract "^1.4.3"
     function-bind "^1.0.2"
 
-string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
-  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+string_decoder@^1.0.0, string_decoder@^1.1.1:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
+  integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==
   dependencies:
     safe-buffer "~5.1.0"
 
@@ -10008,6 +10013,13 @@
   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
   integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
 
+string_decoder@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+  dependencies:
+    safe-buffer "~5.1.0"
+
 strip-ansi@^3.0.0, strip-ansi@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
@@ -10136,9 +10148,9 @@
     string-width "^2.1.1"
 
 tapable@^1.0.0, tapable@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c"
-  integrity sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e"
+  integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==
 
 tar@^2.0.0:
   version "2.2.1"
@@ -10150,9 +10162,9 @@
     inherits "2"
 
 tar@^4:
-  version "4.4.7"
-  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.7.tgz#14df45023ffdcd0c233befa2fc01ebb76ee39e7c"
-  integrity sha512-mR3MzsCdN0IEWjZRuF/J9gaWHnTwOvzjqPTcvi1xXgfKTDQRp39gRETPQEfPByAdEOGmZfx1HrRsn8estaEvtA==
+  version "4.4.8"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d"
+  integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==
   dependencies:
     chownr "^1.1.1"
     fs-minipass "^1.2.5"
@@ -10162,7 +10174,7 @@
     safe-buffer "^5.1.2"
     yallist "^3.0.2"
 
-tcp-port-used@^1.0.0:
+tcp-port-used@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70"
   integrity sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q==
@@ -10185,9 +10197,9 @@
     worker-farm "^1.5.2"
 
 terser@^3.8.1:
-  version "3.10.11"
-  resolved "https://registry.yarnpkg.com/terser/-/terser-3.10.11.tgz#e063da74b194dde9faf0a561f3a438c549d2da3f"
-  integrity sha512-iruZ7j14oBbRYJC5cP0/vTU7YOWjN+J1ZskEGoF78tFzXdkK2hbCL/3TRZN8XB+MuvFhvOHMp7WkOCBO4VEL5g==
+  version "3.11.0"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-3.11.0.tgz#60782893e1f4d6788acc696351f40636d0e37af0"
+  integrity sha512-5iLMdhEPIq3zFWskpmbzmKwMQixKmTYwY3Ox9pjtSklBLnHiuQ0GKJLhL1HSYtyffHM3/lDIFBnb82m9D7ewwQ==
   dependencies:
     commander "~2.17.1"
     source-map "~0.6.1"
@@ -10224,11 +10236,11 @@
   integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=
 
 through2@^2.0.0:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
-  integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=
-  dependencies:
-    readable-stream "^2.1.5"
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+  integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+  dependencies:
+    readable-stream "~2.3.6"
     xtend "~4.0.1"
 
 through@^2.3.6:
@@ -10337,7 +10349,15 @@
   resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
   integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk=
 
-tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.4.3:
+tough-cookie@>=2.3.3, tough-cookie@^2.3.4:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+  integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
+  dependencies:
+    psl "^1.1.28"
+    punycode "^2.1.1"
+
+tough-cookie@~2.4.3:
   version "2.4.3"
   resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
   integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
@@ -10436,14 +10456,6 @@
   resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
   integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
 
-uglify-es@^3.3.4:
-  version "3.3.9"
-  resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
-  integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
-  dependencies:
-    commander "~2.13.0"
-    source-map "~0.6.1"
-
 uglify-js@3.4.x, uglify-js@^3.1.4:
   version "3.4.9"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
@@ -10467,20 +10479,6 @@
   resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
   integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc=
 
-uglifyjs-webpack-plugin@^1.2.4:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"
-  integrity sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==
-  dependencies:
-    cacache "^10.0.4"
-    find-cache-dir "^1.0.0"
-    schema-utils "^0.4.5"
-    serialize-javascript "^1.4.0"
-    source-map "^0.6.1"
-    uglify-es "^3.3.4"
-    webpack-sources "^1.1.0"
-    worker-farm "^1.5.2"
-
 unicode-canonical-property-names-ecmascript@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
@@ -10754,10 +10752,10 @@
   resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.1.tgz#b2d3d95402a811602380783ea4f566eb875569a2"
   integrity sha512-AA86yKZ5uOKz87/q1UpngEXhbRkaYg1b7HMMVRobNV1IVKqZe8oLIzo6iMocVwZXnYitlGwf2k4ZRLOZlS8oPQ==
 
-vue-jest@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-3.0.0.tgz#e5b0ad60c37bbeebe214124420de9eb911596cdc"
-  integrity sha512-naYRHx600YmwfUCoCUsbNlgQ6uk8L0Nn76bVZyMIJYOLlvS+f/1BqOX7ASXlYnNqNobYSC5AtWSlNzRBtYz/mw==
+vue-jest@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-3.0.1.tgz#127cded1a57cdfcf01fa8a10ce29579e2cb3a04d"
+  integrity sha512-otS+n341cTsp0pF7tuTu2x43b23x/+K0LZdAXV+ewKYIMZRqhuQaJTECWEt/cN/YZw2JC6hUM6xybdnOB4ZQ+g==
   dependencies:
     babel-plugin-transform-es2015-modules-commonjs "^6.26.0"
     chalk "^2.1.0"
@@ -10786,10 +10784,10 @@
   resolved "https://registry.yarnpkg.com/vue-resize/-/vue-resize-0.4.4.tgz#dee9b8dd1b189e7e3f6ec47f86c60694a241bb17"
   integrity sha512-Lb/cnE2N9Y42ZJPw8wpjkpuX5a9ReerWNGcQRcbNCwfCnkHG6++FurNNmLIdU8dcCTH4c5rtTPdxBqFoRMK2cQ==
 
-vue-router@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.1.tgz#d9b05ad9c7420ba0f626d6500d693e60092cc1e9"
-  integrity sha512-vLLoY452L+JBpALMP5UHum9+7nzR9PeIBCghU9ZtJ1eWm6ieUI8Zb/DI3MYxH32bxkjzYV1LRjNv4qr8d+uX/w==
+vue-router@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.2.tgz#dedc67afe6c4e2bc25682c8b1c2a8c0d7c7e56be"
+  integrity sha512-opKtsxjp9eOcFWdp6xLQPLmRGgfM932Tl56U9chYTnoWqKxQ8M20N7AkdEbM5beUh6wICoFGYugAX9vQjyJLFg==
 
 vue-snotify@^3.2.1:
   version "3.2.1"
@@ -10978,7 +10976,7 @@
   dependencies:
     lodash "^4.17.5"
 
-webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0:
+webpack-sources@^1.1.0, webpack-sources@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
   integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==
@@ -10986,10 +10984,10 @@
     source-list-map "^2.0.0"
     source-map "~0.6.1"
 
-webpack@^4.23.1:
-  version "4.25.1"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.25.1.tgz#4f459fbaea0f93440dc86c89f771bb3a837cfb6d"
-  integrity sha512-T0GU/3NRtO4tMfNzsvpdhUr8HnzA4LTdP2zd+e5zd6CdOH5vNKHnAlO+DvzccfhPdzqRrALOFcjYxx7K5DWmvA==
+webpack@^4.26.1:
+  version "4.26.1"
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.26.1.tgz#ff3a9283d363c07b3494dfa702d08f4f2ef6cb39"
+  integrity sha512-i2oOvEvuvLLSuSCkdVrknaxAhtUZ9g+nLSoHCWV0gDzqGX2DXaCrMmMUpbRsTSSLrUqAI56PoEiyMUZIZ1msug==
   dependencies:
     "@webassemblyjs/ast" "1.7.11"
     "@webassemblyjs/helper-module-context" "1.7.11"
@@ -11012,7 +11010,7 @@
     node-libs-browser "^2.0.0"
     schema-utils "^0.4.4"
     tapable "^1.1.0"
-    uglifyjs-webpack-plugin "^1.2.4"
+    terser-webpack-plugin "^1.1.0"
     watchpack "^1.5.0"
     webpack-sources "^1.3.0"
 
@@ -11037,9 +11035,9 @@
     iconv-lite "0.4.24"
 
 whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz#a3d58ef10b76009b042d03e25591ece89b88d171"
-  integrity sha512-5YSO1nMd5D1hY3WzAQV3PzZL83W3YeyR1yW9PcH26Weh1t+Vzh9B6XkDh7aXm83HBZ4nSMvkjvN2H2ySWIvBgw==
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
+  integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
 
 whatwg-url@^6.4.1:
   version "6.5.0"
@@ -11155,9 +11153,9 @@
     async-limiter "~1.0.0"
 
 ws@^6.0.0:
-  version "6.1.0"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.0.tgz#119a9dbf92c54e190ec18d10e871d55c95cf9373"
-  integrity sha512-H3dGVdGvW2H8bnYpIDc3u3LH8Wue3Qh+Zto6aXXFzvESkTVT6rAfKR6tR/+coaUvxs8yHtmNV0uioBF62ZGSTg==
+  version "6.1.2"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8"
+  integrity sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==
   dependencies:
     async-limiter "~1.0.0"
 
@@ -11197,9 +11195,9 @@
   integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
 
 yallist@^3.0.0, yallist@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
-  integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
+  integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
 
 yargs-parser@^10.1.0:
   version "10.1.0"
@@ -11208,6 +11206,14 @@
   dependencies:
     camelcase "^4.1.0"
 
+yargs-parser@^11.1.1:
+  version "11.1.1"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
+  integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
+  dependencies:
+    camelcase "^5.0.0"
+    decamelize "^1.2.0"
+
 yargs-parser@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
@@ -11222,7 +11228,7 @@
   dependencies:
     camelcase "^4.1.0"
 
-yargs@12.0.2, yargs@^12.0.1, yargs@^12.0.2:
+yargs@12.0.2:
   version "12.0.2"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc"
   integrity sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==
@@ -11258,6 +11264,24 @@
     y18n "^3.2.1"
     yargs-parser "^9.0.2"
 
+yargs@^12.0.1, yargs@^12.0.2:
+  version "12.0.5"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
+  integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
+  dependencies:
+    cliui "^4.0.0"
+    decamelize "^1.2.0"
+    find-up "^3.0.0"
+    get-caller-file "^1.0.1"
+    os-locale "^3.0.0"
+    require-directory "^2.1.1"
+    require-main-filename "^1.0.1"
+    set-blocking "^2.0.0"
+    string-width "^2.0.0"
+    which-module "^2.0.0"
+    y18n "^3.2.1 || ^4.0.0"
+    yargs-parser "^11.1.1"
+
 yargs@^7.0.0:
   version "7.1.0"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
--- a/pkg/geoserver/boot.go	Mon Dec 03 13:08:24 2018 +0100
+++ b/pkg/geoserver/boot.go	Tue Dec 04 09:55:31 2018 +0100
@@ -537,6 +537,8 @@
 	return nil
 }
 
+// PrepareGeoServer sets up the GeoServer to work together with the gemma server.
+// It sets up a workspace, a datastore and exposes the features and styles.
 func PrepareGeoServer() error {
 
 	if config.DBUser() == "" {
@@ -564,6 +566,8 @@
 	return nil
 }
 
+// ReconfigureStyle returns a function to update a style
+// in the GeoServer to be in sync with the database.
 func ReconfigureStyle(name string) {
 	Reconfigure(func() error {
 		var stls styles
--- a/pkg/geoserver/reconf.go	Mon Dec 03 13:08:24 2018 +0100
+++ b/pkg/geoserver/reconf.go	Tue Dec 04 09:55:31 2018 +0100
@@ -72,6 +72,10 @@
 	return err
 }
 
+// Reconfigure adds a function to a queue of functions to update
+// the GeoServer async. The functions are run again a number
+// of times if network errors apppear indicating that the
+// GeoServer is down.
 func Reconfigure(fn func() error) {
 	confQueueCond.L.Lock()
 	defer confQueueCond.L.Unlock()