From 255e6c470aea3de9d9312923af3ea4aa6d753288 Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Fri, 26 May 2017 10:10:05 +0200
Subject: [PATCH] [enh] #918 Add external module support through WebUI

---
 app/js/app.config.js                          |   4 +
 app/js/controllers/main/MainController.js     |  93 +--
 .../main/settings/tabs/ModulesController.js   |  70 +++
 app/js/lib/conf/i18n/en.json                  |  14 +
 app/js/lib/conf/routes.js                     |  28 +-
 app/js/services/webmin.js                     |   8 +
 app/styles/main.styl                          |  39 +-
 app/views/main/main.jade                      |   8 +-
 app/views/main/settings/settings.jade         |   3 +
 app/views/main/settings/tabs/modules.jade     |  41 ++
 cesium.js                                     |  50 --
 index.js                                      |  41 +-
 misc/duniterConfigToCesium.js                 |  24 -
 package.json                                  |   5 +-
 public/app.css                                |  25 +
 public/app.css.map                            |   2 +-
 public/app.js                                 | 400 +++++++++----
 public/app.js.map                             |   2 +-
 public/templates.js                           |  23 +-
 server/controller/webmin.js                   |  54 +-
 server/lib/routes.js                          |   6 +
 yarn.lock                                     | 530 ++++++++++++++++--
 22 files changed, 1132 insertions(+), 338 deletions(-)
 create mode 100644 app/js/controllers/main/settings/tabs/ModulesController.js
 create mode 100644 app/views/main/settings/tabs/modules.jade
 delete mode 100644 cesium.js
 delete mode 100644 misc/duniterConfigToCesium.js

diff --git a/app/js/app.config.js b/app/js/app.config.js
index 823ae41..ae5f6d8 100644
--- a/app/js/app.config.js
+++ b/app/js/app.config.js
@@ -1,4 +1,7 @@
 module.exports = () => {
+
+  window.uiModules = {}
+
   require('./services/webmin')(angular);
 
   const duniterApp = angular.module('duniterUIApp', [
@@ -86,6 +89,7 @@ module.exports = () => {
   homeControllers.controller('CPUController',              require('./controllers/main/settings/tabs/CPUController'));
   homeControllers.controller('CurrencyController',         require('./controllers/main/settings/tabs/CurrencyController'));
   homeControllers.controller('KeyController',              require('./controllers/main/settings/tabs/KeyController'));
+  homeControllers.controller('ModulesController',          require('./controllers/main/settings/tabs/ModulesController'));
   homeControllers.controller('GraphsController',           require('./controllers/main/graphs/GraphsController'));
   homeControllers.controller('GraphsBlockchainController', require('./controllers/main/graphs/GraphsBlockchainController'));
 };
diff --git a/app/js/controllers/main/MainController.js b/app/js/controllers/main/MainController.js
index 709d4e0..ce3fbd0 100644
--- a/app/js/controllers/main/MainController.js
+++ b/app/js/controllers/main/MainController.js
@@ -2,25 +2,20 @@
 
 var co = require('co');
 
-module.exports = ($scope, $state, $http, $timeout, $interval, Webmin, summary, UIUtils, Base58) => {
-
-  const local_host = summary.host.split(':')[0]; // We suppose IPv4 configuration
-  const local_port = summary.host.split(':')[1];
-  const local_sign_pk = Base58.decode(summary.pubkey);
-  const local_sign_sk = Base58.decode(summary.seckey);
-
-  const DEFAULT_CESIUM_SETTINGS = {
-    "useRelative": true,
-    "timeWarningExpire": 2592000,
-    "useLocalStorage": true,
-    "rememberMe": true,
-    "plugins": {},
-    "node": {
-      "host": local_host,
-      "port": local_port
-    },
-    "showUDHistory": true
-  };
+module.exports = ($scope, $state, $http, $timeout, $interval, Webmin, uiModules, summary, UIUtils) => {
+
+  $scope.externalMenus = []
+
+  for (let moduleName of uiModules) {
+    const module = window.uiModules[moduleName]
+    if (module) {
+      $scope.externalMenus.push({
+        menuOpen: () => module.menuOpen(summary),
+        menuIconClass: module.menuIconClass,
+        menuLabel: module.menuLabel
+      })
+    }
+  }
 
   $scope.notifications = {
     help: []
@@ -37,66 +32,6 @@ module.exports = ($scope, $state, $http, $timeout, $interval, Webmin, summary, U
 
   UIUtils.changeTitle(summary.version);
 
-  $scope.openWallet = () => {
-
-    let walletHeight = parseInt(localStorage.getItem('wallet_height')) || 1000;
-    let walletWidth = parseInt(localStorage.getItem('wallet_width')) || 1400;
-
-    openNewTab (window.location.origin + '/cesium/index.html', {
-      position: 'center',
-      height: walletHeight,
-      width: walletWidth,
-      show: false
-    }, function(win) {
-      let settingsStr = win.window.localStorage.getItem('CESIUM_SETTINGS');
-      let dataStr = win.window.localStorage.getItem('CESIUM_DATA');
-      let settings = (settingsStr && JSON.parse(settingsStr));
-      let data = (dataStr && JSON.parse(dataStr));
-      let keyPairOK = data && data.keypair && data.keypair.signPk && data.keypair.signSk && true;
-      if (keyPairOK) {
-        data.keypair.signPk.length = local_sign_pk.length;
-        data.keypair.signSk.length = local_sign_sk.length;
-        keyPairOK = Base58.encode(Array.from(data.keypair.signPk)) == summary.pubkey
-          && Base58.encode(Array.from(data.keypair.signSk)) == summary.seckey
-          && data.pubkey == summary.pubkey;
-      }
-      if (!data
-        || !keyPairOK
-        || settings.node.host != local_host
-        || settings.node.port != local_port) {
-        settings = settings || DEFAULT_CESIUM_SETTINGS;
-        data = data || {};
-        console.debug('Configuring Cesium...');
-        settings.node = {
-          "host": local_host,
-          "port": local_port
-        };
-        settings.plugins = {};
-        settings.rememberMe = true;
-        data.pubkey = summary.pubkey;
-        data.keypair = {
-          signPk: local_sign_pk,
-          signSk: local_sign_sk
-        };
-        win.window.localStorage.setItem('CESIUM_SETTINGS', JSON.stringify(settings));
-        win.window.localStorage.setItem('CESIUM_DATA', JSON.stringify(data));
-        win.on('closed', () => {
-          // Reopen the wallet
-          $timeout(() => $scope.openWallet(), 1);
-        });
-        win.close();
-      } else {
-        // Cesium is correctly configured for the network part
-        win.show();
-        win.on('closed', function() {
-          localStorage.setItem('wallet_height', win.window.innerHeight - 8); // Seems to always have 8 pixels more
-          localStorage.setItem('wallet_width', win.window.innerWidth - 16); // Seems to always have 16 pixels more
-          mainWindow.focus();
-        });
-      }
-    });
-  };
-
   let aboutWin;
 
   $scope.showAbout = () => {
diff --git a/app/js/controllers/main/settings/tabs/ModulesController.js b/app/js/controllers/main/settings/tabs/ModulesController.js
new file mode 100644
index 0000000..ec4a397
--- /dev/null
+++ b/app/js/controllers/main/settings/tabs/ModulesController.js
@@ -0,0 +1,70 @@
+"use strict";
+
+const co = require('co')
+
+module.exports = ($scope, $http, $state, $interval, $timeout, UIUtils, summary, Webmin, allModules, hasAccess) => {
+
+  let interval
+  $scope.hasAccess = hasAccess
+  $scope.module_to_install = ''
+  $scope.installing = false
+  $scope.initialLength = allModules.length
+
+  $scope.showWarning = () => $scope.warningShown = true
+  $scope.hideWarning = () => $scope.warningShown = false
+
+  $scope.modules = modulesTransform(allModules)
+
+  $scope.switchModule = (mod) => {
+    $scope.modules.map(m => m.disabled = true)
+    mod.installing = !mod.installing
+    Webmin.plugin.removePackage(mod.name)
+    $scope.checkModulesInstallation()
+  }
+
+  $scope.installModule = () => {
+    $scope.modules.map(m => m.disabled = true)
+    co(function*() {
+      const res = yield Webmin.plugin.addPackage($scope.module_to_install)
+      if (res.success) {
+        $scope.modules.push({
+          fullName: $scope.module_to_install,
+          disabled: true,
+          installing: true,
+          installed: true
+        })
+        $scope.installing = true
+        $scope.checkModulesInstallation()
+      } else {
+        $scope.modules = modulesTransform(allModules)
+        UIUtils.toast('settings.modules.already_install');
+      }
+    })
+  }
+
+  $scope.checkModulesInstallation = () => {
+    interval = $interval(() => {
+      Webmin.plugin.allModules()
+        .then(modules => {
+          if (modules.length !== $scope.initialLength) {
+            $scope.initialLength = modules.length
+            $scope.modules = modulesTransform(modules)
+            $scope.installing = false
+            $interval.cancel(interval)
+          }
+        })
+    }, 1500)
+  }
+
+  function modulesTransform(modules) {
+    return modules.map((m) => {
+      return {
+        name: m.name,
+        fullName: [m.name, m.version].join('@'),
+        disabled: !$scope.hasAccess,
+        installing: false,
+        installed: true
+      }
+    })
+  }
+};
diff --git a/app/js/lib/conf/i18n/en.json b/app/js/lib/conf/i18n/en.json
index 853fe76..851498b 100644
--- a/app/js/lib/conf/i18n/en.json
+++ b/app/js/lib/conf/i18n/en.json
@@ -149,6 +149,7 @@
   "settings.tabs.network": "Network",
   "settings.tabs.currency": "Currency",
   "settings.tabs.cpu": "CPU",
+  "settings.tabs.modules": "Modules",
   "settings.data.reset.title": "Reset this node",
   "settings.data.reset.message": "If you desire to reset this node's data and sync it again with the network, please select a node to sync against and validate.",
   "settings.data.reset.warning": "This process <strong>will not</strong> reset the node identity and network settings, which will be reused.",
@@ -187,6 +188,19 @@
   "settings.cpu.range": "% of CPU power core dedicated to proof-of-work :",
   "settings.cpu.power": "Core power:",
   "settings.cpu.saved": "CPU settings saved.",
+  "settings.modules.title": "Modules",
+  "settings.modules.message": "You can install extensions to your Duniter node to provide new features. These extensions are called <b>Duniter modules</b>.",
+  "settings.modules.no_access": "This instance does not have enough system rights to install new modules on disk.",
+  "settings.modules.install": "Install this module",
+  "settings.modules.already_install": "Module already installed",
+  "settings.modules.warning": "Please be <b>VERY CAREFUL</b> when choosing to install a module: you should have checked that this module is not a virus, nor wants to steal your informations.<br>A module has <i>a lot of power</i> and can likely access to any part of your computer in the limit of the user's access rights:<ul><li>- your node's keyring (in the computer's memory)</li><li>- your personal files (photos, unencrypted passwords, browser favorites, ...)</li><li>- your internet access</li><li>- your local network</li></ul>You could get informations about a module by looking on the Internet.",
+  "settings.modules.warning_light": "Please read this warning before installing a module!",
+  "settings.modules.warning_close": "Close this message",
+  "settings.modules.on": "On",
+  "settings.modules.off": "Off",
+  "settings.modules.installing": "Installation...",
+  "settings.modules.installing_warn": "Please <b>do not close Duniter</b> during this process!",
+  "settings.modules.uninstalling": "Removal...",
   "graphs.tabs.blockchain": "Blockchain",
   "graphs.tabs.currency": "Currency",
   "graphs.blockchain.range": "Graphs for the last X blocks: (please choose X value)",
diff --git a/app/js/lib/conf/routes.js b/app/js/lib/conf/routes.js
index dd86dcb..d3114f7 100644
--- a/app/js/lib/conf/routes.js
+++ b/app/js/lib/conf/routes.js
@@ -108,7 +108,19 @@ module.exports = (app) => {
       template: require('views/main/main'),
       resolve: {
         ws: (Webmin) => Webmin.ws(),
-        summary: (Webmin) => Webmin.summary()
+        summary: (Webmin) => Webmin.summary(),
+        uiModules: (Webmin) => co(function*() {
+          const modules = yield Webmin.plugin.uiModules()
+          for (let i = 0; i < modules.length; i++) {
+            const module = modules[i];
+            const injection = yield Webmin.plugin.uiGetMenuInjection(module)
+            let script   = document.createElement("script");
+            script.type  = "text/javascript";
+            script.text  = ";" +injection.menu
+            document.body.appendChild(script);
+          }
+          return modules
+        })
       },
       controller: 'MainController'
     }).
@@ -189,6 +201,20 @@ module.exports = (app) => {
       controller: 'CPUController'
     }).
 
+    state('main.settings.modules', {
+      url: '/modules',
+      template: require('views/main/settings/tabs/modules'),
+      resolve: {
+        summary: (Webmin) => Webmin.summary(),
+        hasAccess: (Webmin) => Webmin.plugin.checkAccess(),
+        allModules: (Webmin) => co(function*() {
+          const modules = yield Webmin.plugin.allModules()
+          return modules
+        })
+      },
+      controller: 'ModulesController'
+    }).
+
     state('main.settings.crypto', {
       url: '/crypto',
       template: require('views/main/settings/tabs/crypto'),
diff --git a/app/js/services/webmin.js b/app/js/services/webmin.js
index 2712a81..24a3730 100644
--- a/app/js/services/webmin.js
+++ b/app/js/services/webmin.js
@@ -175,6 +175,14 @@ module.exports = (angular) => {
           },
           currency: {
             parameters: getResource('/webmin/currency/parameters')
+          },
+          plugin: {
+            allModules: getResource('/webmin/plug/modules'),
+            uiModules: getResource('/webmin/plug/ui_modules'),
+            uiGetMenuInjection: (moduleName) => getResource('/webmin/plug/ui_modules/inject/' + moduleName)(),
+            checkAccess: getResource('/webmin/plug/check_access'),
+            addPackage: (pkg) => getResource('/webmin/plug/add/' + encodeURIComponent(pkg), null, 60000)(),
+            removePackage: (pkg) => getResource('/webmin/plug/rem/' + encodeURIComponent(pkg))()
           }
         }
       }
diff --git a/app/styles/main.styl b/app/styles/main.styl
index b35b56f..27926a1 100644
--- a/app/styles/main.styl
+++ b/app/styles/main.styl
@@ -324,4 +324,41 @@ blockquote.info
     margin-bottom 10px
 
 .upnp
-  line-height 76px
\ No newline at end of file
+  line-height 76px
+
+.modules
+
+  blockquote {
+    margin-bottom 5px
+  }
+
+.modules blockquote a {
+  font-weight: bold !important
+  text-transform: none !important
+  color: #dc6f1d !important
+}
+
+.modules blockquote a.close {
+  padding-top: 10px
+}
+
+.modules li.collection-item {
+  padding: 20px 20px
+}
+
+.modules li .installing {
+
+  margin-top: 30px !important
+  margin-bottom: 0 !important
+
+  h5 {
+    margin-left: 50px
+    margin-top: 0
+  }
+}
+
+.install_package
+
+  .input-field
+
+    margin-top 0
\ No newline at end of file
diff --git a/app/views/main/main.jade b/app/views/main/main.jade
index 5f34f64..1b33117 100644
--- a/app/views/main/main.jade
+++ b/app/views/main/main.jade
@@ -41,10 +41,10 @@ block content
             i.fa.fa-2x.fa-gear.left
             span {{ 'top.menu.settings' | translate }}
       ul.right
-        li
-          a.waves-effect.waves-light(ng-click="openWallet()")
-            i.fa.fa-2x.fa-suitcase.left
-            span {{ 'top.menu.wallet' | translate }}
+        li(ng-repeat="menu in externalMenus")
+          a.waves-effect.waves-light(ng-click="menu.menuOpen()")
+            i.fa.fa-2x.left(ng-class="menu.menuIconClass")
+            span {{ menu.menuLabel }}
         li: a.waves-effect.waves-light.dropdown-button(href="#!" data-activates="about" data-badge="{{ notifications.help.length }}"): i.material-icons info_outline
         li: a.waves-effect.waves-light.dropdown-button(href="#!" data-activates="serveractions"): i.material-icons more_vert
 
diff --git a/app/views/main/settings/settings.jade b/app/views/main/settings/settings.jade
index 3b3875e..c0a2dac 100644
--- a/app/views/main/settings/settings.jade
+++ b/app/views/main/settings/settings.jade
@@ -35,5 +35,8 @@ main.home-main.main-screen
           li.tab.col.s2: a(href="#main.settings.cpu")
             i.fa.fa-dashboard &nbsp;
             = " {{ 'settings.tabs.cpu' | translate }}"
+          li.tab.col.s2: a(href="#main.settings.modules")
+            i.fa.fa-cubes &nbsp;
+            = " {{ 'settings.tabs.modules' | translate }}"
 
   div.ui-scrollable(ui-view="")
diff --git a/app/views/main/settings/tabs/modules.jade b/app/views/main/settings/tabs/modules.jade
new file mode 100644
index 0000000..a290aa2
--- /dev/null
+++ b/app/views/main/settings/tabs/modules.jade
@@ -0,0 +1,41 @@
+.container.modules
+  .row
+    form.s12.center
+      .card
+        .card-action
+          i.fa.fa-cubes.fa-5x
+          h1.card-title(translate="settings.modules.title")
+          p(translate="settings.modules.message")
+
+          blockquote.left-align.orange.lighten-5(ng-if="!hasAccess" translate="settings.modules.no_access")
+
+          blockquote.left-align.orange.lighten-5(ng-if="hasAccess && !warningShown")
+            a.waves-effect.waves-light(href="" translate="settings.modules.warning_light" ng-click="showWarning()")
+          blockquote.left-align.orange.lighten-5(ng-if="hasAccess && warningShown")
+            div(translate="settings.modules.warning")
+            a.close.waves-effect.waves-light(href="" translate="settings.modules.warning_close" ng-click="hideWarning()")
+
+    ul.collection.with-header
+      li.collection-item(ng-repeat="mod in modules track by $index")
+        div
+          span {{ mod.fullName }}
+          .switch.secondary-content
+            label
+              span(translate="settings.modules.off")
+              input(type="checkbox" ng-model="mod.installed" ng-disabled="mod.disabled" ng-click="switchModule(mod)")
+              span.lever
+              span(translate="settings.modules.on")
+        div.installing(ng-if="mod.installing")
+          .left.preloader-wrapper.small.active
+            .spinner-layer.spinner-blue-only
+              .circle-clipper.left
+                .circle
+          h5(ng-if="mod.installed === true") {{ 'settings.modules.installing' | translate }}
+          h5(ng-if="mod.installed !== true") {{ 'settings.modules.uninstalling' | translate }}
+          blockquote.left-align.orange.lighten-5(translate='settings.modules.installing_warn')
+      li.collection-item.install_package
+          .input-field.col.s6
+            i.material-icons.prefix language
+            input(type="text" ng-model="module_to_install" placeholder="Package: module@version, git+https://github.com/user/package.git, ...")
+          .switch.secondary-content
+            button.btn.waves-effect(ng-click="installModule()" ng-disabled="installing") {{ 'settings.modules.install' | translate }}
diff --git a/cesium.js b/cesium.js
deleted file mode 100644
index 9c4efa5..0000000
--- a/cesium.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-
-const
-  request = require('request'),
-  fs = require('fs-extra'),
-  rm = require('rimraf'),
-  path = require('path'),
-  AdmZip = require('adm-zip'),
-  tmp = require('tmp');
-
-const CESIUM_VERSION = '0.12.5';
-const CESIUM_RELEASE = 'https://github.com/duniter/cesium/releases/download/v' + CESIUM_VERSION + '/cesium-v' + CESIUM_VERSION + '-web.zip';
-const OUTPUT_ZIP = tmp.fileSync().name;
-const EXTRACT_PATH = path.join(__dirname, './cesium');
-const EXTRACT_OVERWRITE = true;
-
-const outputStream = fs.createWriteStream(OUTPUT_ZIP);
-
-outputStream.on('close', () => {
-  console.log('Extracting Cesium to path %s...', EXTRACT_PATH);
-  const zip = new AdmZip(OUTPUT_ZIP);
-  zip.extractAllTo(EXTRACT_PATH, EXTRACT_OVERWRITE);
-
-  const cesiumSourceFolder = EXTRACT_PATH;
-  const cesiumPublicFolder = path.join(__dirname, 'public', 'cesium');
-  if (fs.existsSync(cesiumPublicFolder)) {
-    // Remove existing cesium installation
-    rm.sync(cesiumPublicFolder);
-  }
-
-  // Move extracted Cesium to destination folder
-  fs.renameSync(cesiumSourceFolder, cesiumPublicFolder);
-
-  // Configure Cesium
-  const cesiumConfigFile = path.join(__dirname, 'public', 'cesium', 'config.js');
-  let config = fs.readFileSync(cesiumConfigFile, 'utf8');
-  config = config.replace(/"plugins"(\n|.)*"version"/, '"plugins\": {},\n\t"version"');
-  config = config.replace(/"compatProtocol_0_80": true,/, '"compatProtocol_0_80": false,');
-  fs.writeFileSync(cesiumConfigFile, config);
-
-  process.exit(0);
-});
-
-console.log('Downloading file %s...', CESIUM_RELEASE);
-
-request({
-  followAllRedirects: true,
-  url: CESIUM_RELEASE
-}).pipe(outputStream);
-
diff --git a/index.js b/index.js
index 63bf664..e788089 100644
--- a/index.js
+++ b/index.js
@@ -1,6 +1,8 @@
 "use strict";
 
+const _ = require('underscore')
 const co = require('co');
+const fs = require('fs');
 const bodyParser = require('body-parser');
 const http    = require('http');
 const express = require('express');
@@ -75,7 +77,7 @@ module.exports = {
           }));
           app.use(bodyParser.json());
 
-          const wbmin = webminController(server, startServices, stopServices);
+          const wbmin = webminController(server, startServices, stopServices, listDuniterPlugins);
           const httpServer = http.createServer(app);
           httpServer.listen(PORT, HOTE);
           server.logger.info("Web administration accessible at following address: http://%s:%s", HOTE, PORT);
@@ -83,6 +85,14 @@ module.exports = {
           require('./server/lib/routes').webmin(wbmin, app);
           require('./server/lib/routes').webminWS(wbmin)(httpServer);
 
+          const uiDeps = listDuniterUIPlugins()
+          for (const dep of uiDeps) {
+            // Eventual HTTP routing
+            if (dep.required.duniterUI.route) {
+              dep.required.duniterUI.route(app)
+            }
+          }
+
           const currentBlock = yield server.dal.getCurrentBlockOrNull()
           if (currentBlock) {
             yield wbmin.startAllServices()
@@ -151,3 +161,32 @@ function stopDaemon(daemon) {
     resolve()
   }))
 }
+
+function listDuniterPlugins() {
+  return listPlugins(r => !!r.duniter || !!r.duniterUI)
+}
+
+function listDuniterUIPlugins() {
+  return listPlugins(r => !!r.duniterUI)
+}
+
+function listPlugins(conditionTest) {
+  const uiDependencies = []
+  const pathToPackageJSON = path.join(__dirname, './package.json')
+  const pkgJSON = JSON.parse(fs.readFileSync(pathToPackageJSON, 'utf8'))
+  const allDeps = _.extend(pkgJSON.dependencies || {}, pkgJSON.devDependencies || {})
+  const deps = Object.keys(allDeps)
+  for (const dep of deps) {
+    try {
+      const required = require(dep)
+      if (required && conditionTest(required)) {
+        uiDependencies.push({
+          name: dep,
+          version: allDeps[dep],
+          required
+        })
+      }
+    } catch (e) {}
+  }
+  return uiDependencies
+}
diff --git a/misc/duniterConfigToCesium.js b/misc/duniterConfigToCesium.js
deleted file mode 100644
index 21f7619..0000000
--- a/misc/duniterConfigToCesium.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var fs = require('fs');
-function getUserHome() {
-    return process.env.HOME || process.env.USERPROFILE;
-}
-
-try {
-
-    var duniterConf = JSON.parse(fs.readFileSync(getUserHome()+'/.config/duniter/duniter_default/conf.json', 'utf8'));
-    var host = duniterConf.remotehost;
-    if(!host) host = duniterConf.remoteipv4;
-    if(!host) host = duniterConf.remoteipv6;
-    var cesiumConf = {
-        "default": {
-            "node":{
-                "host":host,
-                "port":duniterConf.remoteport
-            }
-        }
-    };
-    fs.writeFileSync('cesium/app/config.json',JSON.stringify(cesiumConf));
-
-} catch (e) {
-    console.log('Not Duniter configuration found, skipping Cesium configuration.');
-}
diff --git a/package.json b/package.json
index 6df42e0..91f9150 100644
--- a/package.json
+++ b/package.json
@@ -3,11 +3,9 @@
   "version": "1.3.1",
   "main": "index.js",
   "scripts": {
-    "postinstall": "node cesium.js",
-    "build": "bower install && brunch build && node cesium.js",
+    "build": "bower install && brunch build",
     "b": "brunch build",
     "watch": "brunch watch",
-    "publicCesiumInstall": "git clone https://github.com/duniter/cesium.git && node misc/duniterConfigToCesium.js && cd cesium && npm install",
     "start": "cd cesium && npm start",
     "test": "mocha --growl tests/"
   },
@@ -60,6 +58,7 @@
     "brunch": "2.10.9",
     "core-util-is": "1.0.2",
     "css-brunch": "2.0.0",
+    "duniter": "1.3.x",
     "fb-flo-brunch": "1.7.22",
     "jade-brunch": "2.0.0",
     "javascript-brunch": "2.0.0",
diff --git a/public/app.css b/public/app.css
index 3e20add..822d605 100644
--- a/public/app.css
+++ b/public/app.css
@@ -13865,6 +13865,31 @@ blockquote.info {
 .upnp {
   line-height: 76px;
 }
+.modules blockquote {
+  margin-bottom: 5px;
+}
+.modules blockquote a {
+  font-weight: bold !important;
+  text-transform: none !important;
+  color: #dc6f1d !important;
+}
+.modules blockquote a.close {
+  padding-top: 10px;
+}
+.modules li.collection-item {
+  padding: 20px 20px;
+}
+.modules li .installing {
+  margin-top: 30px !important;
+  margin-bottom: 0 !important;
+}
+.modules li .installing h5 {
+  margin-left: 50px;
+  margin-top: 0;
+}
+.install_package .input-field {
+  margin-top: 0;
+}
 
 .mdi-navigation-menu {
   padding-left: 0.5rem;
diff --git a/public/app.css.map b/public/app.css.map
index d14890e..f59f9eb 100644
--- a/public/app.css.map
+++ b/public/app.css.map
@@ -1 +1 @@
-{"version":3,"sources":["app/css/font-awesome.css","app/css/material-icons.css","app/css/materialize.css","app/styles/badges.styl","app/styles/fa.styl","app/styles/main.styl","app/styles/menu.styl","app/styles/vendor.styl"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtiEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACx/VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1FA","file":"public/app.css","sourcesContent":["/*!\n *  Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('../font/font-awesome/fontawesome-webfont.eot?v=4.5.0');\n  src: url('../font/font-awesome/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'), url('../font/font-awesome/fontawesome-webfont.woff2?v=4.5.0') format('woff2'), url('../font/font-awesome/fontawesome-webfont.woff?v=4.5.0') format('woff'), url('../font/font-awesome/fontawesome-webfont.ttf?v=4.5.0') format('truetype'), url('../font/font-awesome/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n.fa-2x {\n  font-size: 2em;\n}\n.fa-3x {\n  font-size: 3em;\n}\n.fa-4x {\n  font-size: 4em;\n}\n.fa-5x {\n  font-size: 5em;\n}\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.fa-ul > li {\n  position: relative;\n}\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n.fa-pull-left {\n  float: left;\n}\n.fa-pull-right {\n  float: right;\n}\n.fa.fa-pull-left {\n  margin-right: .3em;\n}\n.fa.fa-pull-right {\n  margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n.fa.pull-left {\n  margin-right: .3em;\n}\n.fa.pull-right {\n  margin-left: .3em;\n}\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.fa-stack-1x {\n  line-height: inherit;\n}\n.fa-stack-2x {\n  font-size: 2em;\n}\n.fa-inverse {\n  color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n.fa-music:before {\n  content: \"\\f001\";\n}\n.fa-search:before {\n  content: \"\\f002\";\n}\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n.fa-heart:before {\n  content: \"\\f004\";\n}\n.fa-star:before {\n  content: \"\\f005\";\n}\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n.fa-user:before {\n  content: \"\\f007\";\n}\n.fa-film:before {\n  content: \"\\f008\";\n}\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n.fa-th:before {\n  content: \"\\f00a\";\n}\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n.fa-check:before {\n  content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n.fa-signal:before {\n  content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n.fa-home:before {\n  content: \"\\f015\";\n}\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n.fa-road:before {\n  content: \"\\f018\";\n}\n.fa-download:before {\n  content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n.fa-lock:before {\n  content: \"\\f023\";\n}\n.fa-flag:before {\n  content: \"\\f024\";\n}\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n.fa-book:before {\n  content: \"\\f02d\";\n}\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n.fa-print:before {\n  content: \"\\f02f\";\n}\n.fa-camera:before {\n  content: \"\\f030\";\n}\n.fa-font:before {\n  content: \"\\f031\";\n}\n.fa-bold:before {\n  content: \"\\f032\";\n}\n.fa-italic:before {\n  content: \"\\f033\";\n}\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n.fa-list:before {\n  content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n.fa-tint:before {\n  content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n.fa-play:before {\n  content: \"\\f04b\";\n}\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n.fa-eject:before {\n  content: \"\\f052\";\n}\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n.fa-expand:before {\n  content: \"\\f065\";\n}\n.fa-compress:before {\n  content: \"\\f066\";\n}\n.fa-plus:before {\n  content: \"\\f067\";\n}\n.fa-minus:before {\n  content: \"\\f068\";\n}\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n.fa-plane:before {\n  content: \"\\f072\";\n}\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n.fa-random:before {\n  content: \"\\f074\";\n}\n.fa-comment:before {\n  content: \"\\f075\";\n}\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n.fa-key:before {\n  content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n.fa-comments:before {\n  content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n.fa-upload:before {\n  content: \"\\f093\";\n}\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n.fa-phone:before {\n  content: \"\\f095\";\n}\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n.fa-github:before {\n  content: \"\\f09b\";\n}\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n.fa-circle:before {\n  content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n.fa-code:before {\n  content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n.fa-crop:before {\n  content: \"\\f125\";\n}\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n.fa-question:before {\n  content: \"\\f128\";\n}\n.fa-info:before {\n  content: \"\\f129\";\n}\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n.fa-shield:before {\n  content: \"\\f132\";\n}\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n.fa-file:before {\n  content: \"\\f15b\";\n}\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n.fa-xing:before {\n  content: \"\\f168\";\n}\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n.fa-adn:before {\n  content: \"\\f170\";\n}\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n.fa-apple:before {\n  content: \"\\f179\";\n}\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n.fa-android:before {\n  content: \"\\f17b\";\n}\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n.fa-trello:before {\n  content: \"\\f181\";\n}\n.fa-female:before {\n  content: \"\\f182\";\n}\n.fa-male:before {\n  content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n.fa-archive:before {\n  content: \"\\f187\";\n}\n.fa-bug:before {\n  content: \"\\f188\";\n}\n.fa-vk:before {\n  content: \"\\f189\";\n}\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n.fa-slack:before {\n  content: \"\\f198\";\n}\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n.fa-history:before {\n  content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n.fa-bus:before {\n  content: \"\\f207\";\n}\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n.fa-venus:before {\n  content: \"\\f221\";\n}\n.fa-mars:before {\n  content: \"\\f222\";\n}\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n.fa-genderless:before {\n  content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n.fa-server:before {\n  content: \"\\f233\";\n}\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n.fa-train:before {\n  content: \"\\f238\";\n}\n.fa-subway:before {\n  content: \"\\f239\";\n}\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n  content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n  content: \"\\f23c\";\n}\n.fa-opencart:before {\n  content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n  content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery-full:before {\n  content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n  content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n  content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n  content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n  content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n  content: \"\\f245\";\n}\n.fa-i-cursor:before {\n  content: \"\\f246\";\n}\n.fa-object-group:before {\n  content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n  content: \"\\f248\";\n}\n.fa-sticky-note:before {\n  content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n  content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n  content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n  content: \"\\f24c\";\n}\n.fa-clone:before {\n  content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n  content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n  content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n  content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n  content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n  content: \"\\f253\";\n}\n.fa-hourglass:before {\n  content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n  content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n  content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n  content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n  content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n  content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n  content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n  content: \"\\f25b\";\n}\n.fa-trademark:before {\n  content: \"\\f25c\";\n}\n.fa-registered:before {\n  content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n  content: \"\\f25e\";\n}\n.fa-gg:before {\n  content: \"\\f260\";\n}\n.fa-gg-circle:before {\n  content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n  content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n  content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\";\n}\n.fa-get-pocket:before {\n  content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n  content: \"\\f266\";\n}\n.fa-safari:before {\n  content: \"\\f267\";\n}\n.fa-chrome:before {\n  content: \"\\f268\";\n}\n.fa-firefox:before {\n  content: \"\\f269\";\n}\n.fa-opera:before {\n  content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n  content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n  content: \"\\f26c\";\n}\n.fa-contao:before {\n  content: \"\\f26d\";\n}\n.fa-500px:before {\n  content: \"\\f26e\";\n}\n.fa-amazon:before {\n  content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n  content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n  content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n  content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n  content: \"\\f274\";\n}\n.fa-industry:before {\n  content: \"\\f275\";\n}\n.fa-map-pin:before {\n  content: \"\\f276\";\n}\n.fa-map-signs:before {\n  content: \"\\f277\";\n}\n.fa-map-o:before {\n  content: \"\\f278\";\n}\n.fa-map:before {\n  content: \"\\f279\";\n}\n.fa-commenting:before {\n  content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n  content: \"\\f27b\";\n}\n.fa-houzz:before {\n  content: \"\\f27c\";\n}\n.fa-vimeo:before {\n  content: \"\\f27d\";\n}\n.fa-black-tie:before {\n  content: \"\\f27e\";\n}\n.fa-fonticons:before {\n  content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n  content: \"\\f281\";\n}\n.fa-edge:before {\n  content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n  content: \"\\f283\";\n}\n.fa-codiepie:before {\n  content: \"\\f284\";\n}\n.fa-modx:before {\n  content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n  content: \"\\f286\";\n}\n.fa-usb:before {\n  content: \"\\f287\";\n}\n.fa-product-hunt:before {\n  content: \"\\f288\";\n}\n.fa-mixcloud:before {\n  content: \"\\f289\";\n}\n.fa-scribd:before {\n  content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n  content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n  content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n  content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n  content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n  content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n  content: \"\\f291\";\n}\n.fa-hashtag:before {\n  content: \"\\f292\";\n}\n.fa-bluetooth:before {\n  content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n  content: \"\\f294\";\n}\n.fa-percent:before {\n  content: \"\\f295\";\n}\n","@font-face {\n    font-family: 'Material Icons';\n    font-style: normal;\n    font-weight: 400;\n    src: local('Material Icons'), local('MaterialIcons-Regular'), url(../font/material.woff2) format('woff2');\n}\n\n.material-icons {\n    font-family: 'Material Icons';\n    font-weight: normal;\n    font-style: normal;\n    font-size: 24px;\n    line-height: 1;\n    letter-spacing: normal;\n    text-transform: none;\n    display: inline-block;\n    word-wrap: normal;\n    -webkit-font-feature-settings: 'liga';\n    -webkit-font-smoothing: antialiased;\n}","/*!\n * Materialize v0.97.5 (http://materializecss.com)\n * Copyright 2014-2015 Materialize\n * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)\n */\n.materialize-red.lighten-5 {\n  background-color: #fdeaeb !important;\n}\n\n.materialize-red-text.text-lighten-5 {\n  color: #fdeaeb !important;\n}\n\n.materialize-red.lighten-4 {\n  background-color: #f8c1c3 !important;\n}\n\n.materialize-red-text.text-lighten-4 {\n  color: #f8c1c3 !important;\n}\n\n.materialize-red.lighten-3 {\n  background-color: #f3989b !important;\n}\n\n.materialize-red-text.text-lighten-3 {\n  color: #f3989b !important;\n}\n\n.materialize-red.lighten-2 {\n  background-color: #ee6e73 !important;\n}\n\n.materialize-red-text.text-lighten-2 {\n  color: #ee6e73 !important;\n}\n\n.materialize-red.lighten-1 {\n  background-color: #ea454b !important;\n}\n\n.materialize-red-text.text-lighten-1 {\n  color: #ea454b !important;\n}\n\n.materialize-red {\n  background-color: #e51c23 !important;\n}\n\n.materialize-red-text {\n  color: #e51c23 !important;\n}\n\n.materialize-red.darken-1 {\n  background-color: #d0181e !important;\n}\n\n.materialize-red-text.text-darken-1 {\n  color: #d0181e !important;\n}\n\n.materialize-red.darken-2 {\n  background-color: #b9151b !important;\n}\n\n.materialize-red-text.text-darken-2 {\n  color: #b9151b !important;\n}\n\n.materialize-red.darken-3 {\n  background-color: #a21318 !important;\n}\n\n.materialize-red-text.text-darken-3 {\n  color: #a21318 !important;\n}\n\n.materialize-red.darken-4 {\n  background-color: #8b1014 !important;\n}\n\n.materialize-red-text.text-darken-4 {\n  color: #8b1014 !important;\n}\n\n.red.lighten-5 {\n  background-color: #FFEBEE !important;\n}\n\n.red-text.text-lighten-5 {\n  color: #FFEBEE !important;\n}\n\n.red.lighten-4 {\n  background-color: #FFCDD2 !important;\n}\n\n.red-text.text-lighten-4 {\n  color: #FFCDD2 !important;\n}\n\n.red.lighten-3 {\n  background-color: #EF9A9A !important;\n}\n\n.red-text.text-lighten-3 {\n  color: #EF9A9A !important;\n}\n\n.red.lighten-2 {\n  background-color: #E57373 !important;\n}\n\n.red-text.text-lighten-2 {\n  color: #E57373 !important;\n}\n\n.red.lighten-1 {\n  background-color: #EF5350 !important;\n}\n\n.red-text.text-lighten-1 {\n  color: #EF5350 !important;\n}\n\n.red {\n  background-color: #F44336 !important;\n}\n\n.red-text {\n  color: #F44336 !important;\n}\n\n.red.darken-1 {\n  background-color: #E53935 !important;\n}\n\n.red-text.text-darken-1 {\n  color: #E53935 !important;\n}\n\n.red.darken-2 {\n  background-color: #D32F2F !important;\n}\n\n.red-text.text-darken-2 {\n  color: #D32F2F !important;\n}\n\n.red.darken-3 {\n  background-color: #C62828 !important;\n}\n\n.red-text.text-darken-3 {\n  color: #C62828 !important;\n}\n\n.red.darken-4 {\n  background-color: #B71C1C !important;\n}\n\n.red-text.text-darken-4 {\n  color: #B71C1C !important;\n}\n\n.red.accent-1 {\n  background-color: #FF8A80 !important;\n}\n\n.red-text.text-accent-1 {\n  color: #FF8A80 !important;\n}\n\n.red.accent-2 {\n  background-color: #FF5252 !important;\n}\n\n.red-text.text-accent-2 {\n  color: #FF5252 !important;\n}\n\n.red.accent-3 {\n  background-color: #FF1744 !important;\n}\n\n.red-text.text-accent-3 {\n  color: #FF1744 !important;\n}\n\n.red.accent-4 {\n  background-color: #D50000 !important;\n}\n\n.red-text.text-accent-4 {\n  color: #D50000 !important;\n}\n\n.pink.lighten-5 {\n  background-color: #fce4ec !important;\n}\n\n.pink-text.text-lighten-5 {\n  color: #fce4ec !important;\n}\n\n.pink.lighten-4 {\n  background-color: #f8bbd0 !important;\n}\n\n.pink-text.text-lighten-4 {\n  color: #f8bbd0 !important;\n}\n\n.pink.lighten-3 {\n  background-color: #f48fb1 !important;\n}\n\n.pink-text.text-lighten-3 {\n  color: #f48fb1 !important;\n}\n\n.pink.lighten-2 {\n  background-color: #f06292 !important;\n}\n\n.pink-text.text-lighten-2 {\n  color: #f06292 !important;\n}\n\n.pink.lighten-1 {\n  background-color: #ec407a !important;\n}\n\n.pink-text.text-lighten-1 {\n  color: #ec407a !important;\n}\n\n.pink {\n  background-color: #e91e63 !important;\n}\n\n.pink-text {\n  color: #e91e63 !important;\n}\n\n.pink.darken-1 {\n  background-color: #d81b60 !important;\n}\n\n.pink-text.text-darken-1 {\n  color: #d81b60 !important;\n}\n\n.pink.darken-2 {\n  background-color: #c2185b !important;\n}\n\n.pink-text.text-darken-2 {\n  color: #c2185b !important;\n}\n\n.pink.darken-3 {\n  background-color: #ad1457 !important;\n}\n\n.pink-text.text-darken-3 {\n  color: #ad1457 !important;\n}\n\n.pink.darken-4 {\n  background-color: #880e4f !important;\n}\n\n.pink-text.text-darken-4 {\n  color: #880e4f !important;\n}\n\n.pink.accent-1 {\n  background-color: #ff80ab !important;\n}\n\n.pink-text.text-accent-1 {\n  color: #ff80ab !important;\n}\n\n.pink.accent-2 {\n  background-color: #ff4081 !important;\n}\n\n.pink-text.text-accent-2 {\n  color: #ff4081 !important;\n}\n\n.pink.accent-3 {\n  background-color: #f50057 !important;\n}\n\n.pink-text.text-accent-3 {\n  color: #f50057 !important;\n}\n\n.pink.accent-4 {\n  background-color: #c51162 !important;\n}\n\n.pink-text.text-accent-4 {\n  color: #c51162 !important;\n}\n\n.purple.lighten-5 {\n  background-color: #f3e5f5 !important;\n}\n\n.purple-text.text-lighten-5 {\n  color: #f3e5f5 !important;\n}\n\n.purple.lighten-4 {\n  background-color: #e1bee7 !important;\n}\n\n.purple-text.text-lighten-4 {\n  color: #e1bee7 !important;\n}\n\n.purple.lighten-3 {\n  background-color: #ce93d8 !important;\n}\n\n.purple-text.text-lighten-3 {\n  color: #ce93d8 !important;\n}\n\n.purple.lighten-2 {\n  background-color: #ba68c8 !important;\n}\n\n.purple-text.text-lighten-2 {\n  color: #ba68c8 !important;\n}\n\n.purple.lighten-1 {\n  background-color: #ab47bc !important;\n}\n\n.purple-text.text-lighten-1 {\n  color: #ab47bc !important;\n}\n\n.purple {\n  background-color: #9c27b0 !important;\n}\n\n.purple-text {\n  color: #9c27b0 !important;\n}\n\n.purple.darken-1 {\n  background-color: #8e24aa !important;\n}\n\n.purple-text.text-darken-1 {\n  color: #8e24aa !important;\n}\n\n.purple.darken-2 {\n  background-color: #7b1fa2 !important;\n}\n\n.purple-text.text-darken-2 {\n  color: #7b1fa2 !important;\n}\n\n.purple.darken-3 {\n  background-color: #6a1b9a !important;\n}\n\n.purple-text.text-darken-3 {\n  color: #6a1b9a !important;\n}\n\n.purple.darken-4 {\n  background-color: #4a148c !important;\n}\n\n.purple-text.text-darken-4 {\n  color: #4a148c !important;\n}\n\n.purple.accent-1 {\n  background-color: #ea80fc !important;\n}\n\n.purple-text.text-accent-1 {\n  color: #ea80fc !important;\n}\n\n.purple.accent-2 {\n  background-color: #e040fb !important;\n}\n\n.purple-text.text-accent-2 {\n  color: #e040fb !important;\n}\n\n.purple.accent-3 {\n  background-color: #d500f9 !important;\n}\n\n.purple-text.text-accent-3 {\n  color: #d500f9 !important;\n}\n\n.purple.accent-4 {\n  background-color: #aa00ff !important;\n}\n\n.purple-text.text-accent-4 {\n  color: #aa00ff !important;\n}\n\n.deep-purple.lighten-5 {\n  background-color: #ede7f6 !important;\n}\n\n.deep-purple-text.text-lighten-5 {\n  color: #ede7f6 !important;\n}\n\n.deep-purple.lighten-4 {\n  background-color: #d1c4e9 !important;\n}\n\n.deep-purple-text.text-lighten-4 {\n  color: #d1c4e9 !important;\n}\n\n.deep-purple.lighten-3 {\n  background-color: #b39ddb !important;\n}\n\n.deep-purple-text.text-lighten-3 {\n  color: #b39ddb !important;\n}\n\n.deep-purple.lighten-2 {\n  background-color: #9575cd !important;\n}\n\n.deep-purple-text.text-lighten-2 {\n  color: #9575cd !important;\n}\n\n.deep-purple.lighten-1 {\n  background-color: #7e57c2 !important;\n}\n\n.deep-purple-text.text-lighten-1 {\n  color: #7e57c2 !important;\n}\n\n.deep-purple {\n  background-color: #673ab7 !important;\n}\n\n.deep-purple-text {\n  color: #673ab7 !important;\n}\n\n.deep-purple.darken-1 {\n  background-color: #5e35b1 !important;\n}\n\n.deep-purple-text.text-darken-1 {\n  color: #5e35b1 !important;\n}\n\n.deep-purple.darken-2 {\n  background-color: #512da8 !important;\n}\n\n.deep-purple-text.text-darken-2 {\n  color: #512da8 !important;\n}\n\n.deep-purple.darken-3 {\n  background-color: #4527a0 !important;\n}\n\n.deep-purple-text.text-darken-3 {\n  color: #4527a0 !important;\n}\n\n.deep-purple.darken-4 {\n  background-color: #311b92 !important;\n}\n\n.deep-purple-text.text-darken-4 {\n  color: #311b92 !important;\n}\n\n.deep-purple.accent-1 {\n  background-color: #b388ff !important;\n}\n\n.deep-purple-text.text-accent-1 {\n  color: #b388ff !important;\n}\n\n.deep-purple.accent-2 {\n  background-color: #7c4dff !important;\n}\n\n.deep-purple-text.text-accent-2 {\n  color: #7c4dff !important;\n}\n\n.deep-purple.accent-3 {\n  background-color: #651fff !important;\n}\n\n.deep-purple-text.text-accent-3 {\n  color: #651fff !important;\n}\n\n.deep-purple.accent-4 {\n  background-color: #6200ea !important;\n}\n\n.deep-purple-text.text-accent-4 {\n  color: #6200ea !important;\n}\n\n.indigo.lighten-5 {\n  background-color: #e8eaf6 !important;\n}\n\n.indigo-text.text-lighten-5 {\n  color: #e8eaf6 !important;\n}\n\n.indigo.lighten-4 {\n  background-color: #c5cae9 !important;\n}\n\n.indigo-text.text-lighten-4 {\n  color: #c5cae9 !important;\n}\n\n.indigo.lighten-3 {\n  background-color: #9fa8da !important;\n}\n\n.indigo-text.text-lighten-3 {\n  color: #9fa8da !important;\n}\n\n.indigo.lighten-2 {\n  background-color: #7986cb !important;\n}\n\n.indigo-text.text-lighten-2 {\n  color: #7986cb !important;\n}\n\n.indigo.lighten-1 {\n  background-color: #5c6bc0 !important;\n}\n\n.indigo-text.text-lighten-1 {\n  color: #5c6bc0 !important;\n}\n\n.indigo {\n  background-color: #3f51b5 !important;\n}\n\n.indigo-text {\n  color: #3f51b5 !important;\n}\n\n.indigo.darken-1 {\n  background-color: #3949ab !important;\n}\n\n.indigo-text.text-darken-1 {\n  color: #3949ab !important;\n}\n\n.indigo.darken-2 {\n  background-color: #303f9f !important;\n}\n\n.indigo-text.text-darken-2 {\n  color: #303f9f !important;\n}\n\n.indigo.darken-3 {\n  background-color: #283593 !important;\n}\n\n.indigo-text.text-darken-3 {\n  color: #283593 !important;\n}\n\n.indigo.darken-4 {\n  background-color: #1a237e !important;\n}\n\n.indigo-text.text-darken-4 {\n  color: #1a237e !important;\n}\n\n.indigo.accent-1 {\n  background-color: #8c9eff !important;\n}\n\n.indigo-text.text-accent-1 {\n  color: #8c9eff !important;\n}\n\n.indigo.accent-2 {\n  background-color: #536dfe !important;\n}\n\n.indigo-text.text-accent-2 {\n  color: #536dfe !important;\n}\n\n.indigo.accent-3 {\n  background-color: #3d5afe !important;\n}\n\n.indigo-text.text-accent-3 {\n  color: #3d5afe !important;\n}\n\n.indigo.accent-4 {\n  background-color: #304ffe !important;\n}\n\n.indigo-text.text-accent-4 {\n  color: #304ffe !important;\n}\n\n.blue.lighten-5 {\n  background-color: #E3F2FD !important;\n}\n\n.blue-text.text-lighten-5 {\n  color: #E3F2FD !important;\n}\n\n.blue.lighten-4 {\n  background-color: #BBDEFB !important;\n}\n\n.blue-text.text-lighten-4 {\n  color: #BBDEFB !important;\n}\n\n.blue.lighten-3 {\n  background-color: #90CAF9 !important;\n}\n\n.blue-text.text-lighten-3 {\n  color: #90CAF9 !important;\n}\n\n.blue.lighten-2 {\n  background-color: #64B5F6 !important;\n}\n\n.blue-text.text-lighten-2 {\n  color: #64B5F6 !important;\n}\n\n.blue.lighten-1 {\n  background-color: #42A5F5 !important;\n}\n\n.blue-text.text-lighten-1 {\n  color: #42A5F5 !important;\n}\n\n.blue {\n  background-color: #2196F3 !important;\n}\n\n.blue-text {\n  color: #2196F3 !important;\n}\n\n.blue.darken-1 {\n  background-color: #1E88E5 !important;\n}\n\n.blue-text.text-darken-1 {\n  color: #1E88E5 !important;\n}\n\n.blue.darken-2 {\n  background-color: #1976D2 !important;\n}\n\n.blue-text.text-darken-2 {\n  color: #1976D2 !important;\n}\n\n.blue.darken-3 {\n  background-color: #1565C0 !important;\n}\n\n.blue-text.text-darken-3 {\n  color: #1565C0 !important;\n}\n\n.blue.darken-4 {\n  background-color: #0D47A1 !important;\n}\n\n.blue-text.text-darken-4 {\n  color: #0D47A1 !important;\n}\n\n.blue.accent-1 {\n  background-color: #82B1FF !important;\n}\n\n.blue-text.text-accent-1 {\n  color: #82B1FF !important;\n}\n\n.blue.accent-2 {\n  background-color: #448AFF !important;\n}\n\n.blue-text.text-accent-2 {\n  color: #448AFF !important;\n}\n\n.blue.accent-3 {\n  background-color: #2979FF !important;\n}\n\n.blue-text.text-accent-3 {\n  color: #2979FF !important;\n}\n\n.blue.accent-4 {\n  background-color: #2962FF !important;\n}\n\n.blue-text.text-accent-4 {\n  color: #2962FF !important;\n}\n\n.light-blue.lighten-5 {\n  background-color: #e1f5fe !important;\n}\n\n.light-blue-text.text-lighten-5 {\n  color: #e1f5fe !important;\n}\n\n.light-blue.lighten-4 {\n  background-color: #b3e5fc !important;\n}\n\n.light-blue-text.text-lighten-4 {\n  color: #b3e5fc !important;\n}\n\n.light-blue.lighten-3 {\n  background-color: #81d4fa !important;\n}\n\n.light-blue-text.text-lighten-3 {\n  color: #81d4fa !important;\n}\n\n.light-blue.lighten-2 {\n  background-color: #4fc3f7 !important;\n}\n\n.light-blue-text.text-lighten-2 {\n  color: #4fc3f7 !important;\n}\n\n.light-blue.lighten-1 {\n  background-color: #29b6f6 !important;\n}\n\n.light-blue-text.text-lighten-1 {\n  color: #29b6f6 !important;\n}\n\n.light-blue {\n  background-color: #03a9f4 !important;\n}\n\n.light-blue-text {\n  color: #03a9f4 !important;\n}\n\n.light-blue.darken-1 {\n  background-color: #039be5 !important;\n}\n\n.light-blue-text.text-darken-1 {\n  color: #039be5 !important;\n}\n\n.light-blue.darken-2 {\n  background-color: #0288d1 !important;\n}\n\n.light-blue-text.text-darken-2 {\n  color: #0288d1 !important;\n}\n\n.light-blue.darken-3 {\n  background-color: #0277bd !important;\n}\n\n.light-blue-text.text-darken-3 {\n  color: #0277bd !important;\n}\n\n.light-blue.darken-4 {\n  background-color: #01579b !important;\n}\n\n.light-blue-text.text-darken-4 {\n  color: #01579b !important;\n}\n\n.light-blue.accent-1 {\n  background-color: #80d8ff !important;\n}\n\n.light-blue-text.text-accent-1 {\n  color: #80d8ff !important;\n}\n\n.light-blue.accent-2 {\n  background-color: #40c4ff !important;\n}\n\n.light-blue-text.text-accent-2 {\n  color: #40c4ff !important;\n}\n\n.light-blue.accent-3 {\n  background-color: #00b0ff !important;\n}\n\n.light-blue-text.text-accent-3 {\n  color: #00b0ff !important;\n}\n\n.light-blue.accent-4 {\n  background-color: #0091ea !important;\n}\n\n.light-blue-text.text-accent-4 {\n  color: #0091ea !important;\n}\n\n.cyan.lighten-5 {\n  background-color: #e0f7fa !important;\n}\n\n.cyan-text.text-lighten-5 {\n  color: #e0f7fa !important;\n}\n\n.cyan.lighten-4 {\n  background-color: #b2ebf2 !important;\n}\n\n.cyan-text.text-lighten-4 {\n  color: #b2ebf2 !important;\n}\n\n.cyan.lighten-3 {\n  background-color: #80deea !important;\n}\n\n.cyan-text.text-lighten-3 {\n  color: #80deea !important;\n}\n\n.cyan.lighten-2 {\n  background-color: #4dd0e1 !important;\n}\n\n.cyan-text.text-lighten-2 {\n  color: #4dd0e1 !important;\n}\n\n.cyan.lighten-1 {\n  background-color: #26c6da !important;\n}\n\n.cyan-text.text-lighten-1 {\n  color: #26c6da !important;\n}\n\n.cyan {\n  background-color: #00bcd4 !important;\n}\n\n.cyan-text {\n  color: #00bcd4 !important;\n}\n\n.cyan.darken-1 {\n  background-color: #00acc1 !important;\n}\n\n.cyan-text.text-darken-1 {\n  color: #00acc1 !important;\n}\n\n.cyan.darken-2 {\n  background-color: #0097a7 !important;\n}\n\n.cyan-text.text-darken-2 {\n  color: #0097a7 !important;\n}\n\n.cyan.darken-3 {\n  background-color: #00838f !important;\n}\n\n.cyan-text.text-darken-3 {\n  color: #00838f !important;\n}\n\n.cyan.darken-4 {\n  background-color: #006064 !important;\n}\n\n.cyan-text.text-darken-4 {\n  color: #006064 !important;\n}\n\n.cyan.accent-1 {\n  background-color: #84ffff !important;\n}\n\n.cyan-text.text-accent-1 {\n  color: #84ffff !important;\n}\n\n.cyan.accent-2 {\n  background-color: #18ffff !important;\n}\n\n.cyan-text.text-accent-2 {\n  color: #18ffff !important;\n}\n\n.cyan.accent-3 {\n  background-color: #00e5ff !important;\n}\n\n.cyan-text.text-accent-3 {\n  color: #00e5ff !important;\n}\n\n.cyan.accent-4 {\n  background-color: #00b8d4 !important;\n}\n\n.cyan-text.text-accent-4 {\n  color: #00b8d4 !important;\n}\n\n.teal.lighten-5 {\n  background-color: #e0f2f1 !important;\n}\n\n.teal-text.text-lighten-5 {\n  color: #e0f2f1 !important;\n}\n\n.teal.lighten-4 {\n  background-color: #b2dfdb !important;\n}\n\n.teal-text.text-lighten-4 {\n  color: #b2dfdb !important;\n}\n\n.teal.lighten-3 {\n  background-color: #80cbc4 !important;\n}\n\n.teal-text.text-lighten-3 {\n  color: #80cbc4 !important;\n}\n\n.teal.lighten-2 {\n  background-color: #4db6ac !important;\n}\n\n.teal-text.text-lighten-2 {\n  color: #4db6ac !important;\n}\n\n.teal.lighten-1 {\n  background-color: #26a69a !important;\n}\n\n.teal-text.text-lighten-1 {\n  color: #26a69a !important;\n}\n\n.teal {\n  background-color: #009688 !important;\n}\n\n.teal-text {\n  color: #009688 !important;\n}\n\n.teal.darken-1 {\n  background-color: #00897b !important;\n}\n\n.teal-text.text-darken-1 {\n  color: #00897b !important;\n}\n\n.teal.darken-2 {\n  background-color: #00796b !important;\n}\n\n.teal-text.text-darken-2 {\n  color: #00796b !important;\n}\n\n.teal.darken-3 {\n  background-color: #00695c !important;\n}\n\n.teal-text.text-darken-3 {\n  color: #00695c !important;\n}\n\n.teal.darken-4 {\n  background-color: #004d40 !important;\n}\n\n.teal-text.text-darken-4 {\n  color: #004d40 !important;\n}\n\n.teal.accent-1 {\n  background-color: #a7ffeb !important;\n}\n\n.teal-text.text-accent-1 {\n  color: #a7ffeb !important;\n}\n\n.teal.accent-2 {\n  background-color: #64ffda !important;\n}\n\n.teal-text.text-accent-2 {\n  color: #64ffda !important;\n}\n\n.teal.accent-3 {\n  background-color: #1de9b6 !important;\n}\n\n.teal-text.text-accent-3 {\n  color: #1de9b6 !important;\n}\n\n.teal.accent-4 {\n  background-color: #00bfa5 !important;\n}\n\n.teal-text.text-accent-4 {\n  color: #00bfa5 !important;\n}\n\n.green.lighten-5 {\n  background-color: #E8F5E9 !important;\n}\n\n.green-text.text-lighten-5 {\n  color: #E8F5E9 !important;\n}\n\n.green.lighten-4 {\n  background-color: #C8E6C9 !important;\n}\n\n.green-text.text-lighten-4 {\n  color: #C8E6C9 !important;\n}\n\n.green.lighten-3 {\n  background-color: #A5D6A7 !important;\n}\n\n.green-text.text-lighten-3 {\n  color: #A5D6A7 !important;\n}\n\n.green.lighten-2 {\n  background-color: #81C784 !important;\n}\n\n.green-text.text-lighten-2 {\n  color: #81C784 !important;\n}\n\n.green.lighten-1 {\n  background-color: #66BB6A !important;\n}\n\n.green-text.text-lighten-1 {\n  color: #66BB6A !important;\n}\n\n.green {\n  background-color: #4CAF50 !important;\n}\n\n.green-text {\n  color: #4CAF50 !important;\n}\n\n.green.darken-1 {\n  background-color: #43A047 !important;\n}\n\n.green-text.text-darken-1 {\n  color: #43A047 !important;\n}\n\n.green.darken-2 {\n  background-color: #388E3C !important;\n}\n\n.green-text.text-darken-2 {\n  color: #388E3C !important;\n}\n\n.green.darken-3 {\n  background-color: #2E7D32 !important;\n}\n\n.green-text.text-darken-3 {\n  color: #2E7D32 !important;\n}\n\n.green.darken-4 {\n  background-color: #1B5E20 !important;\n}\n\n.green-text.text-darken-4 {\n  color: #1B5E20 !important;\n}\n\n.green.accent-1 {\n  background-color: #B9F6CA !important;\n}\n\n.green-text.text-accent-1 {\n  color: #B9F6CA !important;\n}\n\n.green.accent-2 {\n  background-color: #69F0AE !important;\n}\n\n.green-text.text-accent-2 {\n  color: #69F0AE !important;\n}\n\n.green.accent-3 {\n  background-color: #00E676 !important;\n}\n\n.green-text.text-accent-3 {\n  color: #00E676 !important;\n}\n\n.green.accent-4 {\n  background-color: #00C853 !important;\n}\n\n.green-text.text-accent-4 {\n  color: #00C853 !important;\n}\n\n.light-green.lighten-5 {\n  background-color: #f1f8e9 !important;\n}\n\n.light-green-text.text-lighten-5 {\n  color: #f1f8e9 !important;\n}\n\n.light-green.lighten-4 {\n  background-color: #dcedc8 !important;\n}\n\n.light-green-text.text-lighten-4 {\n  color: #dcedc8 !important;\n}\n\n.light-green.lighten-3 {\n  background-color: #c5e1a5 !important;\n}\n\n.light-green-text.text-lighten-3 {\n  color: #c5e1a5 !important;\n}\n\n.light-green.lighten-2 {\n  background-color: #aed581 !important;\n}\n\n.light-green-text.text-lighten-2 {\n  color: #aed581 !important;\n}\n\n.light-green.lighten-1 {\n  background-color: #9ccc65 !important;\n}\n\n.light-green-text.text-lighten-1 {\n  color: #9ccc65 !important;\n}\n\n.light-green {\n  background-color: #8bc34a !important;\n}\n\n.light-green-text {\n  color: #8bc34a !important;\n}\n\n.light-green.darken-1 {\n  background-color: #7cb342 !important;\n}\n\n.light-green-text.text-darken-1 {\n  color: #7cb342 !important;\n}\n\n.light-green.darken-2 {\n  background-color: #689f38 !important;\n}\n\n.light-green-text.text-darken-2 {\n  color: #689f38 !important;\n}\n\n.light-green.darken-3 {\n  background-color: #558b2f !important;\n}\n\n.light-green-text.text-darken-3 {\n  color: #558b2f !important;\n}\n\n.light-green.darken-4 {\n  background-color: #33691e !important;\n}\n\n.light-green-text.text-darken-4 {\n  color: #33691e !important;\n}\n\n.light-green.accent-1 {\n  background-color: #ccff90 !important;\n}\n\n.light-green-text.text-accent-1 {\n  color: #ccff90 !important;\n}\n\n.light-green.accent-2 {\n  background-color: #b2ff59 !important;\n}\n\n.light-green-text.text-accent-2 {\n  color: #b2ff59 !important;\n}\n\n.light-green.accent-3 {\n  background-color: #76ff03 !important;\n}\n\n.light-green-text.text-accent-3 {\n  color: #76ff03 !important;\n}\n\n.light-green.accent-4 {\n  background-color: #64dd17 !important;\n}\n\n.light-green-text.text-accent-4 {\n  color: #64dd17 !important;\n}\n\n.lime.lighten-5 {\n  background-color: #f9fbe7 !important;\n}\n\n.lime-text.text-lighten-5 {\n  color: #f9fbe7 !important;\n}\n\n.lime.lighten-4 {\n  background-color: #f0f4c3 !important;\n}\n\n.lime-text.text-lighten-4 {\n  color: #f0f4c3 !important;\n}\n\n.lime.lighten-3 {\n  background-color: #e6ee9c !important;\n}\n\n.lime-text.text-lighten-3 {\n  color: #e6ee9c !important;\n}\n\n.lime.lighten-2 {\n  background-color: #dce775 !important;\n}\n\n.lime-text.text-lighten-2 {\n  color: #dce775 !important;\n}\n\n.lime.lighten-1 {\n  background-color: #d4e157 !important;\n}\n\n.lime-text.text-lighten-1 {\n  color: #d4e157 !important;\n}\n\n.lime {\n  background-color: #cddc39 !important;\n}\n\n.lime-text {\n  color: #cddc39 !important;\n}\n\n.lime.darken-1 {\n  background-color: #c0ca33 !important;\n}\n\n.lime-text.text-darken-1 {\n  color: #c0ca33 !important;\n}\n\n.lime.darken-2 {\n  background-color: #afb42b !important;\n}\n\n.lime-text.text-darken-2 {\n  color: #afb42b !important;\n}\n\n.lime.darken-3 {\n  background-color: #9e9d24 !important;\n}\n\n.lime-text.text-darken-3 {\n  color: #9e9d24 !important;\n}\n\n.lime.darken-4 {\n  background-color: #827717 !important;\n}\n\n.lime-text.text-darken-4 {\n  color: #827717 !important;\n}\n\n.lime.accent-1 {\n  background-color: #f4ff81 !important;\n}\n\n.lime-text.text-accent-1 {\n  color: #f4ff81 !important;\n}\n\n.lime.accent-2 {\n  background-color: #eeff41 !important;\n}\n\n.lime-text.text-accent-2 {\n  color: #eeff41 !important;\n}\n\n.lime.accent-3 {\n  background-color: #c6ff00 !important;\n}\n\n.lime-text.text-accent-3 {\n  color: #c6ff00 !important;\n}\n\n.lime.accent-4 {\n  background-color: #aeea00 !important;\n}\n\n.lime-text.text-accent-4 {\n  color: #aeea00 !important;\n}\n\n.yellow.lighten-5 {\n  background-color: #fffde7 !important;\n}\n\n.yellow-text.text-lighten-5 {\n  color: #fffde7 !important;\n}\n\n.yellow.lighten-4 {\n  background-color: #fff9c4 !important;\n}\n\n.yellow-text.text-lighten-4 {\n  color: #fff9c4 !important;\n}\n\n.yellow.lighten-3 {\n  background-color: #fff59d !important;\n}\n\n.yellow-text.text-lighten-3 {\n  color: #fff59d !important;\n}\n\n.yellow.lighten-2 {\n  background-color: #fff176 !important;\n}\n\n.yellow-text.text-lighten-2 {\n  color: #fff176 !important;\n}\n\n.yellow.lighten-1 {\n  background-color: #ffee58 !important;\n}\n\n.yellow-text.text-lighten-1 {\n  color: #ffee58 !important;\n}\n\n.yellow {\n  background-color: #ffeb3b !important;\n}\n\n.yellow-text {\n  color: #ffeb3b !important;\n}\n\n.yellow.darken-1 {\n  background-color: #fdd835 !important;\n}\n\n.yellow-text.text-darken-1 {\n  color: #fdd835 !important;\n}\n\n.yellow.darken-2 {\n  background-color: #fbc02d !important;\n}\n\n.yellow-text.text-darken-2 {\n  color: #fbc02d !important;\n}\n\n.yellow.darken-3 {\n  background-color: #f9a825 !important;\n}\n\n.yellow-text.text-darken-3 {\n  color: #f9a825 !important;\n}\n\n.yellow.darken-4 {\n  background-color: #f57f17 !important;\n}\n\n.yellow-text.text-darken-4 {\n  color: #f57f17 !important;\n}\n\n.yellow.accent-1 {\n  background-color: #ffff8d !important;\n}\n\n.yellow-text.text-accent-1 {\n  color: #ffff8d !important;\n}\n\n.yellow.accent-2 {\n  background-color: #ffff00 !important;\n}\n\n.yellow-text.text-accent-2 {\n  color: #ffff00 !important;\n}\n\n.yellow.accent-3 {\n  background-color: #ffea00 !important;\n}\n\n.yellow-text.text-accent-3 {\n  color: #ffea00 !important;\n}\n\n.yellow.accent-4 {\n  background-color: #ffd600 !important;\n}\n\n.yellow-text.text-accent-4 {\n  color: #ffd600 !important;\n}\n\n.amber.lighten-5 {\n  background-color: #fff8e1 !important;\n}\n\n.amber-text.text-lighten-5 {\n  color: #fff8e1 !important;\n}\n\n.amber.lighten-4 {\n  background-color: #ffecb3 !important;\n}\n\n.amber-text.text-lighten-4 {\n  color: #ffecb3 !important;\n}\n\n.amber.lighten-3 {\n  background-color: #ffe082 !important;\n}\n\n.amber-text.text-lighten-3 {\n  color: #ffe082 !important;\n}\n\n.amber.lighten-2 {\n  background-color: #ffd54f !important;\n}\n\n.amber-text.text-lighten-2 {\n  color: #ffd54f !important;\n}\n\n.amber.lighten-1 {\n  background-color: #ffca28 !important;\n}\n\n.amber-text.text-lighten-1 {\n  color: #ffca28 !important;\n}\n\n.amber {\n  background-color: #ffc107 !important;\n}\n\n.amber-text {\n  color: #ffc107 !important;\n}\n\n.amber.darken-1 {\n  background-color: #ffb300 !important;\n}\n\n.amber-text.text-darken-1 {\n  color: #ffb300 !important;\n}\n\n.amber.darken-2 {\n  background-color: #ffa000 !important;\n}\n\n.amber-text.text-darken-2 {\n  color: #ffa000 !important;\n}\n\n.amber.darken-3 {\n  background-color: #ff8f00 !important;\n}\n\n.amber-text.text-darken-3 {\n  color: #ff8f00 !important;\n}\n\n.amber.darken-4 {\n  background-color: #ff6f00 !important;\n}\n\n.amber-text.text-darken-4 {\n  color: #ff6f00 !important;\n}\n\n.amber.accent-1 {\n  background-color: #ffe57f !important;\n}\n\n.amber-text.text-accent-1 {\n  color: #ffe57f !important;\n}\n\n.amber.accent-2 {\n  background-color: #ffd740 !important;\n}\n\n.amber-text.text-accent-2 {\n  color: #ffd740 !important;\n}\n\n.amber.accent-3 {\n  background-color: #ffc400 !important;\n}\n\n.amber-text.text-accent-3 {\n  color: #ffc400 !important;\n}\n\n.amber.accent-4 {\n  background-color: #ffab00 !important;\n}\n\n.amber-text.text-accent-4 {\n  color: #ffab00 !important;\n}\n\n.orange.lighten-5 {\n  background-color: #fff3e0 !important;\n}\n\n.orange-text.text-lighten-5 {\n  color: #fff3e0 !important;\n}\n\n.orange.lighten-4 {\n  background-color: #ffe0b2 !important;\n}\n\n.orange-text.text-lighten-4 {\n  color: #ffe0b2 !important;\n}\n\n.orange.lighten-3 {\n  background-color: #ffcc80 !important;\n}\n\n.orange-text.text-lighten-3 {\n  color: #ffcc80 !important;\n}\n\n.orange.lighten-2 {\n  background-color: #ffb74d !important;\n}\n\n.orange-text.text-lighten-2 {\n  color: #ffb74d !important;\n}\n\n.orange.lighten-1 {\n  background-color: #ffa726 !important;\n}\n\n.orange-text.text-lighten-1 {\n  color: #ffa726 !important;\n}\n\n.orange {\n  background-color: #ff9800 !important;\n}\n\n.orange-text {\n  color: #ff9800 !important;\n}\n\n.orange.darken-1 {\n  background-color: #fb8c00 !important;\n}\n\n.orange-text.text-darken-1 {\n  color: #fb8c00 !important;\n}\n\n.orange.darken-2 {\n  background-color: #f57c00 !important;\n}\n\n.orange-text.text-darken-2 {\n  color: #f57c00 !important;\n}\n\n.orange.darken-3 {\n  background-color: #ef6c00 !important;\n}\n\n.orange-text.text-darken-3 {\n  color: #ef6c00 !important;\n}\n\n.orange.darken-4 {\n  background-color: #e65100 !important;\n}\n\n.orange-text.text-darken-4 {\n  color: #e65100 !important;\n}\n\n.orange.accent-1 {\n  background-color: #ffd180 !important;\n}\n\n.orange-text.text-accent-1 {\n  color: #ffd180 !important;\n}\n\n.orange.accent-2 {\n  background-color: #ffab40 !important;\n}\n\n.orange-text.text-accent-2 {\n  color: #ffab40 !important;\n}\n\n.orange.accent-3 {\n  background-color: #ff9100 !important;\n}\n\n.orange-text.text-accent-3 {\n  color: #ff9100 !important;\n}\n\n.orange.accent-4 {\n  background-color: #ff6d00 !important;\n}\n\n.orange-text.text-accent-4 {\n  color: #ff6d00 !important;\n}\n\n.deep-orange.lighten-5 {\n  background-color: #fbe9e7 !important;\n}\n\n.deep-orange-text.text-lighten-5 {\n  color: #fbe9e7 !important;\n}\n\n.deep-orange.lighten-4 {\n  background-color: #ffccbc !important;\n}\n\n.deep-orange-text.text-lighten-4 {\n  color: #ffccbc !important;\n}\n\n.deep-orange.lighten-3 {\n  background-color: #ffab91 !important;\n}\n\n.deep-orange-text.text-lighten-3 {\n  color: #ffab91 !important;\n}\n\n.deep-orange.lighten-2 {\n  background-color: #ff8a65 !important;\n}\n\n.deep-orange-text.text-lighten-2 {\n  color: #ff8a65 !important;\n}\n\n.deep-orange.lighten-1 {\n  background-color: #ff7043 !important;\n}\n\n.deep-orange-text.text-lighten-1 {\n  color: #ff7043 !important;\n}\n\n.deep-orange {\n  background-color: #ff5722 !important;\n}\n\n.deep-orange-text {\n  color: #ff5722 !important;\n}\n\n.deep-orange.darken-1 {\n  background-color: #f4511e !important;\n}\n\n.deep-orange-text.text-darken-1 {\n  color: #f4511e !important;\n}\n\n.deep-orange.darken-2 {\n  background-color: #e64a19 !important;\n}\n\n.deep-orange-text.text-darken-2 {\n  color: #e64a19 !important;\n}\n\n.deep-orange.darken-3 {\n  background-color: #d84315 !important;\n}\n\n.deep-orange-text.text-darken-3 {\n  color: #d84315 !important;\n}\n\n.deep-orange.darken-4 {\n  background-color: #bf360c !important;\n}\n\n.deep-orange-text.text-darken-4 {\n  color: #bf360c !important;\n}\n\n.deep-orange.accent-1 {\n  background-color: #ff9e80 !important;\n}\n\n.deep-orange-text.text-accent-1 {\n  color: #ff9e80 !important;\n}\n\n.deep-orange.accent-2 {\n  background-color: #ff6e40 !important;\n}\n\n.deep-orange-text.text-accent-2 {\n  color: #ff6e40 !important;\n}\n\n.deep-orange.accent-3 {\n  background-color: #ff3d00 !important;\n}\n\n.deep-orange-text.text-accent-3 {\n  color: #ff3d00 !important;\n}\n\n.deep-orange.accent-4 {\n  background-color: #dd2c00 !important;\n}\n\n.deep-orange-text.text-accent-4 {\n  color: #dd2c00 !important;\n}\n\n.brown.lighten-5 {\n  background-color: #efebe9 !important;\n}\n\n.brown-text.text-lighten-5 {\n  color: #efebe9 !important;\n}\n\n.brown.lighten-4 {\n  background-color: #d7ccc8 !important;\n}\n\n.brown-text.text-lighten-4 {\n  color: #d7ccc8 !important;\n}\n\n.brown.lighten-3 {\n  background-color: #bcaaa4 !important;\n}\n\n.brown-text.text-lighten-3 {\n  color: #bcaaa4 !important;\n}\n\n.brown.lighten-2 {\n  background-color: #a1887f !important;\n}\n\n.brown-text.text-lighten-2 {\n  color: #a1887f !important;\n}\n\n.brown.lighten-1 {\n  background-color: #8d6e63 !important;\n}\n\n.brown-text.text-lighten-1 {\n  color: #8d6e63 !important;\n}\n\n.brown {\n  background-color: #795548 !important;\n}\n\n.brown-text {\n  color: #795548 !important;\n}\n\n.brown.darken-1 {\n  background-color: #6d4c41 !important;\n}\n\n.brown-text.text-darken-1 {\n  color: #6d4c41 !important;\n}\n\n.brown.darken-2 {\n  background-color: #5d4037 !important;\n}\n\n.brown-text.text-darken-2 {\n  color: #5d4037 !important;\n}\n\n.brown.darken-3 {\n  background-color: #4e342e !important;\n}\n\n.brown-text.text-darken-3 {\n  color: #4e342e !important;\n}\n\n.brown.darken-4 {\n  background-color: #3e2723 !important;\n}\n\n.brown-text.text-darken-4 {\n  color: #3e2723 !important;\n}\n\n.blue-grey.lighten-5 {\n  background-color: #eceff1 !important;\n}\n\n.blue-grey-text.text-lighten-5 {\n  color: #eceff1 !important;\n}\n\n.blue-grey.lighten-4 {\n  background-color: #cfd8dc !important;\n}\n\n.blue-grey-text.text-lighten-4 {\n  color: #cfd8dc !important;\n}\n\n.blue-grey.lighten-3 {\n  background-color: #b0bec5 !important;\n}\n\n.blue-grey-text.text-lighten-3 {\n  color: #b0bec5 !important;\n}\n\n.blue-grey.lighten-2 {\n  background-color: #90a4ae !important;\n}\n\n.blue-grey-text.text-lighten-2 {\n  color: #90a4ae !important;\n}\n\n.blue-grey.lighten-1 {\n  background-color: #78909c !important;\n}\n\n.blue-grey-text.text-lighten-1 {\n  color: #78909c !important;\n}\n\n.blue-grey {\n  background-color: #607d8b !important;\n}\n\n.blue-grey-text {\n  color: #607d8b !important;\n}\n\n.blue-grey.darken-1 {\n  background-color: #546e7a !important;\n}\n\n.blue-grey-text.text-darken-1 {\n  color: #546e7a !important;\n}\n\n.blue-grey.darken-2 {\n  background-color: #455a64 !important;\n}\n\n.blue-grey-text.text-darken-2 {\n  color: #455a64 !important;\n}\n\n.blue-grey.darken-3 {\n  background-color: #37474f !important;\n}\n\n.blue-grey-text.text-darken-3 {\n  color: #37474f !important;\n}\n\n.blue-grey.darken-4 {\n  background-color: #263238 !important;\n}\n\n.blue-grey-text.text-darken-4 {\n  color: #263238 !important;\n}\n\n.grey.lighten-5 {\n  background-color: #fafafa !important;\n}\n\n.grey-text.text-lighten-5 {\n  color: #fafafa !important;\n}\n\n.grey.lighten-4 {\n  background-color: #f5f5f5 !important;\n}\n\n.grey-text.text-lighten-4 {\n  color: #f5f5f5 !important;\n}\n\n.grey.lighten-3 {\n  background-color: #eeeeee !important;\n}\n\n.grey-text.text-lighten-3 {\n  color: #eeeeee !important;\n}\n\n.grey.lighten-2 {\n  background-color: #e0e0e0 !important;\n}\n\n.grey-text.text-lighten-2 {\n  color: #e0e0e0 !important;\n}\n\n.grey.lighten-1 {\n  background-color: #bdbdbd !important;\n}\n\n.grey-text.text-lighten-1 {\n  color: #bdbdbd !important;\n}\n\n.grey {\n  background-color: #9e9e9e !important;\n}\n\n.grey-text {\n  color: #9e9e9e !important;\n}\n\n.grey.darken-1 {\n  background-color: #757575 !important;\n}\n\n.grey-text.text-darken-1 {\n  color: #757575 !important;\n}\n\n.grey.darken-2 {\n  background-color: #616161 !important;\n}\n\n.grey-text.text-darken-2 {\n  color: #616161 !important;\n}\n\n.grey.darken-3 {\n  background-color: #424242 !important;\n}\n\n.grey-text.text-darken-3 {\n  color: #424242 !important;\n}\n\n.grey.darken-4 {\n  background-color: #212121 !important;\n}\n\n.grey-text.text-darken-4 {\n  color: #212121 !important;\n}\n\n.shades.black {\n  background-color: #000000 !important;\n}\n\n.shades-text.text-black {\n  color: #000000 !important;\n}\n\n.shades.white {\n  background-color: #FFFFFF !important;\n}\n\n.shades-text.text-white {\n  color: #FFFFFF !important;\n}\n\n.shades.transparent {\n  background-color: transparent !important;\n}\n\n.shades-text.text-transparent {\n  color: transparent !important;\n}\n\n.black {\n  background-color: #000000 !important;\n}\n\n.black-text {\n  color: #000000 !important;\n}\n\n.white {\n  background-color: #FFFFFF !important;\n}\n\n.white-text {\n  color: #FFFFFF !important;\n}\n\n.transparent {\n  background-color: transparent !important;\n}\n\n.transparent-text {\n  color: transparent !important;\n}\n\n/*** Colors ***/\n/*** Badges ***/\n/*** Buttons ***/\n/*** Cards ***/\n/*** Collapsible ***/\n/*** Chips ***/\n/*** Date Picker ***/\n/*** Dropdown ***/\n/*** Fonts ***/\n/*** Forms ***/\n/*** Global ***/\n/*** Navbar ***/\n/*** SideNav ***/\n/*** Photo Slider ***/\n/*** Spinners | Loaders ***/\n/*** Tabs ***/\n/*** Tables ***/\n/*** Toasts ***/\n/*** Typography ***/\n/*** Collections ***/\n/* Progress Bar */\n/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\nhtml {\n  font-family: sans-serif;\n  /* 1 */\n  -ms-text-size-adjust: 100%;\n  /* 2 */\n  -webkit-text-size-adjust: 100%;\n  /* 2 */\n}\n\n/**\n * Remove default margin.\n */\nbody {\n  margin: 0;\n}\n\n/* HTML5 display definitions\n   ========================================================================== */\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  /* 1 */\n  vertical-align: baseline;\n  /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n  display: none;\n}\n\n/* Links\n   ========================================================================== */\n/**\n * Remove the gray background color from active links in IE 10.\n */\na {\n  background-color: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\na:active,\na:hover {\n  outline: 0;\n}\n\n/* Text-level semantics\n   ========================================================================== */\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\nb,\nstrong {\n  font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\ndfn {\n  font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n  font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n/* Embedded content\n   ========================================================================== */\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n  border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n/* Grouping content\n   ========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n  margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\npre {\n  overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n/* Forms\n   ========================================================================== */\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n/**\n * 1. Correct color not being inherited.\n *    Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit;\n  /* 1 */\n  font: inherit;\n  /* 2 */\n  margin: 0;\n  /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n  overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n  text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n */\n/* 1 */\nhtml input[type=\"button\"],\nbutton,\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  /* 2 */\n  cursor: pointer;\n  /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\ninput {\n  line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box;\n  /* 1 */\n  padding: 0;\n  /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome\n *    (include `-moz` to future-proof).\n */\ninput[type=\"search\"] {\n  -webkit-appearance: textfield;\n  /* 1 */\n  /* 2 */\n  box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n  border: 0;\n  /* 1 */\n  padding: 0;\n  /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n  overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n  font-weight: bold;\n}\n\n/* Tables\n   ========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n\nhtml {\n  box-sizing: border-box;\n}\n\n*, *:before, *:after {\n  box-sizing: inherit;\n}\n\nul {\n  list-style-type: none;\n}\n\na {\n  color: #039be5;\n  text-decoration: none;\n  -webkit-tap-highlight-color: transparent;\n}\n\n.valign-wrapper {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n      -ms-flex-align: center;\n          align-items: center;\n}\n\n.valign-wrapper .valign {\n  display: block;\n}\n\nul {\n  padding: 0;\n}\n\nul li {\n  list-style-type: none;\n}\n\n.clearfix {\n  clear: both;\n}\n\n.z-depth-0 {\n  box-shadow: none !important;\n}\n\n.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav {\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n}\n\n.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover {\n  box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n}\n\n.z-depth-2 {\n  box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n.z-depth-3 {\n  box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);\n}\n\n.z-depth-4, .modal {\n  box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21);\n}\n\n.z-depth-5 {\n  box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22);\n}\n\n.hoverable {\n  transition: box-shadow .25s;\n  box-shadow: 0;\n}\n\n.hoverable:hover {\n  transition: box-shadow .25s;\n  box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n.divider {\n  height: 1px;\n  overflow: hidden;\n  background-color: #e0e0e0;\n}\n\nblockquote {\n  margin: 20px 0;\n  padding-left: 1.5rem;\n  border-left: 5px solid #ee6e73;\n}\n\ni {\n  line-height: inherit;\n}\n\ni.left {\n  float: left;\n  margin-right: 15px;\n}\n\ni.right {\n  float: right;\n  margin-left: 15px;\n}\n\ni.tiny {\n  font-size: 1rem;\n}\n\ni.small {\n  font-size: 2rem;\n}\n\ni.medium {\n  font-size: 4rem;\n}\n\ni.large {\n  font-size: 6rem;\n}\n\nimg.responsive-img,\nvideo.responsive-video {\n  max-width: 100%;\n  height: auto;\n}\n\n.pagination li {\n  display: inline-block;\n  font-size: 1.2rem;\n  padding: 0 10px;\n  line-height: 30px;\n  border-radius: 2px;\n  text-align: center;\n}\n\n.pagination li a {\n  color: #444;\n}\n\n.pagination li.active a {\n  color: #fff;\n}\n\n.pagination li.active {\n  background-color: #ee6e73;\n}\n\n.pagination li.disabled a {\n  cursor: default;\n  color: #999;\n}\n\n.pagination li i {\n  font-size: 2.2rem;\n  vertical-align: middle;\n}\n\n.pagination li.pages ul li {\n  display: inline-block;\n  float: none;\n}\n\n@media only screen and (max-width: 992px) {\n  .pagination {\n    width: 100%;\n  }\n  .pagination li.prev,\n  .pagination li.next {\n    width: 10%;\n  }\n  .pagination li.pages {\n    width: 80%;\n    overflow: hidden;\n    white-space: nowrap;\n  }\n}\n\n.breadcrumb {\n  font-size: 18px;\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.breadcrumb i,\n.breadcrumb [class^=\"mdi-\"], .breadcrumb [class*=\"mdi-\"],\n.breadcrumb i.material-icons {\n  display: inline-block;\n  float: left;\n  font-size: 24px;\n}\n\n.breadcrumb:before {\n  content: '\\E5CC';\n  color: rgba(255, 255, 255, 0.7);\n  vertical-align: top;\n  display: inline-block;\n  font-family: 'Material Icons';\n  font-weight: normal;\n  font-style: normal;\n  font-size: 25px;\n  margin: 0 10px 0 8px;\n  -webkit-font-smoothing: antialiased;\n}\n\n.breadcrumb:first-child:before {\n  display: none;\n}\n\n.breadcrumb:last-child {\n  color: #fff;\n}\n\n.parallax-container {\n  position: relative;\n  overflow: hidden;\n  height: 500px;\n}\n\n.parallax {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  z-index: -1;\n}\n\n.parallax img {\n  display: none;\n  position: absolute;\n  left: 50%;\n  bottom: 0;\n  min-width: 100%;\n  min-height: 100%;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n  -webkit-transform: translateX(-50%);\n          transform: translateX(-50%);\n}\n\n.pin-top, .pin-bottom {\n  position: relative;\n}\n\n.pinned {\n  position: fixed !important;\n}\n\n/*********************\n  Transition Classes\n**********************/\nul.staggered-list li {\n  opacity: 0;\n}\n\n.fade-in {\n  opacity: 0;\n  -webkit-transform-origin: 0 50%;\n          transform-origin: 0 50%;\n}\n\n/*********************\n  Media Query Classes\n**********************/\n@media only screen and (max-width: 600px) {\n  .hide-on-small-only, .hide-on-small-and-down {\n    display: none !important;\n  }\n}\n\n@media only screen and (max-width: 992px) {\n  .hide-on-med-and-down {\n    display: none !important;\n  }\n}\n\n@media only screen and (min-width: 601px) {\n  .hide-on-med-and-up {\n    display: none !important;\n  }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n  .hide-on-med-only {\n    display: none !important;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  .hide-on-large-only {\n    display: none !important;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  .show-on-large {\n    display: block !important;\n  }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n  .show-on-medium {\n    display: block !important;\n  }\n}\n\n@media only screen and (max-width: 600px) {\n  .show-on-small {\n    display: block !important;\n  }\n}\n\n@media only screen and (min-width: 601px) {\n  .show-on-medium-and-up {\n    display: block !important;\n  }\n}\n\n@media only screen and (max-width: 992px) {\n  .show-on-medium-and-down {\n    display: block !important;\n  }\n}\n\n@media only screen and (max-width: 600px) {\n  .center-on-small-only {\n    text-align: center;\n  }\n}\n\nfooter.page-footer {\n  margin-top: 20px;\n  padding-top: 20px;\n  background-color: #ee6e73;\n}\n\nfooter.page-footer .footer-copyright {\n  overflow: hidden;\n  height: 50px;\n  line-height: 50px;\n  color: rgba(255, 255, 255, 0.8);\n  background-color: rgba(51, 51, 51, 0.08);\n}\n\ntable, th, td {\n  border: none;\n}\n\ntable {\n  width: 100%;\n  display: table;\n}\n\ntable.bordered > thead > tr,\ntable.bordered > tbody > tr {\n  border-bottom: 1px solid #d0d0d0;\n}\n\ntable.striped > tbody > tr:nth-child(odd) {\n  background-color: #f2f2f2;\n}\n\ntable.striped > tbody > tr > td {\n  border-radius: 0px;\n}\n\ntable.highlight > tbody > tr {\n  transition: background-color .25s ease;\n}\n\ntable.highlight > tbody > tr:hover {\n  background-color: #f2f2f2;\n}\n\ntable.centered thead tr th, table.centered tbody tr td {\n  text-align: center;\n}\n\nthead {\n  border-bottom: 1px solid #d0d0d0;\n}\n\ntd, th {\n  padding: 15px 5px;\n  display: table-cell;\n  text-align: left;\n  vertical-align: middle;\n  border-radius: 2px;\n}\n\n@media only screen and (max-width: 992px) {\n  table.responsive-table {\n    width: 100%;\n    border-collapse: collapse;\n    border-spacing: 0;\n    display: block;\n    position: relative;\n    /* sort out borders */\n  }\n  table.responsive-table th,\n  table.responsive-table td {\n    margin: 0;\n    vertical-align: top;\n  }\n  table.responsive-table th {\n    text-align: left;\n  }\n  table.responsive-table thead {\n    display: block;\n    float: left;\n  }\n  table.responsive-table thead tr {\n    display: block;\n    padding: 0 10px 0 0;\n  }\n  table.responsive-table thead tr th::before {\n    content: \"\\00a0\";\n  }\n  table.responsive-table tbody {\n    display: block;\n    width: auto;\n    position: relative;\n    overflow-x: auto;\n    white-space: nowrap;\n  }\n  table.responsive-table tbody tr {\n    display: inline-block;\n    vertical-align: top;\n  }\n  table.responsive-table th {\n    display: block;\n    text-align: right;\n  }\n  table.responsive-table td {\n    display: block;\n    min-height: 1.25em;\n    text-align: left;\n  }\n  table.responsive-table tr {\n    padding: 0 10px;\n  }\n  table.responsive-table thead {\n    border: 0;\n    border-right: 1px solid #d0d0d0;\n  }\n  table.responsive-table.bordered th {\n    border-bottom: 0;\n    border-left: 0;\n  }\n  table.responsive-table.bordered td {\n    border-left: 0;\n    border-right: 0;\n    border-bottom: 0;\n  }\n  table.responsive-table.bordered tr {\n    border: 0;\n  }\n  table.responsive-table.bordered tbody tr {\n    border-right: 1px solid #d0d0d0;\n  }\n}\n\n.collection {\n  margin: 0.5rem 0 1rem 0;\n  border: 1px solid #e0e0e0;\n  border-radius: 2px;\n  overflow: hidden;\n  position: relative;\n}\n\n.collection .collection-item {\n  background-color: #fff;\n  line-height: 1.5rem;\n  padding: 10px 20px;\n  margin: 0;\n  border-bottom: 1px solid #e0e0e0;\n}\n\n.collection .collection-item.avatar {\n  min-height: 84px;\n  padding-left: 72px;\n  position: relative;\n}\n\n.collection .collection-item.avatar .circle {\n  position: absolute;\n  width: 42px;\n  height: 42px;\n  overflow: hidden;\n  left: 15px;\n  display: inline-block;\n  vertical-align: middle;\n}\n\n.collection .collection-item.avatar i.circle {\n  font-size: 18px;\n  line-height: 42px;\n  color: #fff;\n  background-color: #999;\n  text-align: center;\n}\n\n.collection .collection-item.avatar .title {\n  font-size: 16px;\n}\n\n.collection .collection-item.avatar p {\n  margin: 0;\n}\n\n.collection .collection-item.avatar .secondary-content {\n  position: absolute;\n  top: 16px;\n  right: 16px;\n}\n\n.collection .collection-item:last-child {\n  border-bottom: none;\n}\n\n.collection .collection-item.active {\n  background-color: #26a69a;\n  color: #eafaf9;\n}\n\n.collection .collection-item.active .secondary-content {\n  color: #fff;\n}\n\n.collection a.collection-item {\n  display: block;\n  transition: .25s;\n  color: #26a69a;\n}\n\n.collection a.collection-item:not(.active):hover {\n  background-color: #ddd;\n}\n\n.collection.with-header .collection-header {\n  background-color: #fff;\n  border-bottom: 1px solid #e0e0e0;\n  padding: 10px 20px;\n}\n\n.collection.with-header .collection-item {\n  padding-left: 30px;\n}\n\n.collection.with-header .collection-item.avatar {\n  padding-left: 72px;\n}\n\n.secondary-content {\n  float: right;\n  color: #26a69a;\n}\n\n.collapsible .collection {\n  margin: 0;\n  border: none;\n}\n\nspan.badge {\n  min-width: 3rem;\n  padding: 0 6px;\n  text-align: center;\n  font-size: 1rem;\n  line-height: inherit;\n  color: #757575;\n  position: absolute;\n  right: 15px;\n  box-sizing: border-box;\n}\n\nspan.badge.new {\n  font-weight: 300;\n  font-size: 0.8rem;\n  color: #fff;\n  background-color: #26a69a;\n  border-radius: 2px;\n}\n\nspan.badge.new:after {\n  content: \" new\";\n}\n\nnav ul a span.badge {\n  position: static;\n  margin-left: 4px;\n  line-height: 0;\n}\n\n.video-container {\n  position: relative;\n  padding-bottom: 56.25%;\n  height: 0;\n  overflow: hidden;\n}\n\n.video-container iframe, .video-container object, .video-container embed {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n\n.progress {\n  position: relative;\n  height: 4px;\n  display: block;\n  width: 100%;\n  background-color: #acece6;\n  border-radius: 2px;\n  margin: 0.5rem 0 1rem 0;\n  overflow: hidden;\n}\n\n.progress .determinate {\n  position: absolute;\n  background-color: inherit;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  background-color: #26a69a;\n  transition: width .3s linear;\n}\n\n.progress .indeterminate {\n  background-color: #26a69a;\n}\n\n.progress .indeterminate:before {\n  content: '';\n  position: absolute;\n  background-color: inherit;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  will-change: left, right;\n  -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n          animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n}\n\n.progress .indeterminate:after {\n  content: '';\n  position: absolute;\n  background-color: inherit;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  will-change: left, right;\n  -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\n          animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\n  -webkit-animation-delay: 1.15s;\n          animation-delay: 1.15s;\n}\n\n@-webkit-keyframes indeterminate {\n  0% {\n    left: -35%;\n    right: 100%;\n  }\n  60% {\n    left: 100%;\n    right: -90%;\n  }\n  100% {\n    left: 100%;\n    right: -90%;\n  }\n}\n\n@keyframes indeterminate {\n  0% {\n    left: -35%;\n    right: 100%;\n  }\n  60% {\n    left: 100%;\n    right: -90%;\n  }\n  100% {\n    left: 100%;\n    right: -90%;\n  }\n}\n\n@-webkit-keyframes indeterminate-short {\n  0% {\n    left: -200%;\n    right: 100%;\n  }\n  60% {\n    left: 107%;\n    right: -8%;\n  }\n  100% {\n    left: 107%;\n    right: -8%;\n  }\n}\n\n@keyframes indeterminate-short {\n  0% {\n    left: -200%;\n    right: 100%;\n  }\n  60% {\n    left: 107%;\n    right: -8%;\n  }\n  100% {\n    left: 107%;\n    right: -8%;\n  }\n}\n\n/*******************\n  Utility Classes\n*******************/\n.hide {\n  display: none !important;\n}\n\n.left-align {\n  text-align: left;\n}\n\n.right-align {\n  text-align: right;\n}\n\n.center, .center-align {\n  text-align: center;\n}\n\n.left {\n  float: left !important;\n}\n\n.right {\n  float: right !important;\n}\n\n.no-select, input[type=range], input[type=range] + .thumb {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.circle {\n  border-radius: 50%;\n}\n\n.center-block {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.truncate {\n  display: block;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.no-padding {\n  padding: 0 !important;\n}\n\n/* This is needed for some mobile phones to display the Google Icon font properly */\n.material-icons {\n  text-rendering: optimizeLegibility;\n  -webkit-font-feature-settings: 'liga';\n     -moz-font-feature-settings: 'liga';\n          font-feature-settings: 'liga';\n}\n\n@font-face {\n  font-family: \"Material-Design-Icons\";\n  src: url(\"../font/material-design-icons/Material-Design-Icons.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/material-design-icons/Material-Design-Icons.woff2\") format(\"woff2\"), url(\"../font/material-design-icons/Material-Design-Icons.woff\") format(\"woff\"), url(\"../font/material-design-icons/Material-Design-Icons.ttf\") format(\"truetype\"), url(\"../font/material-design-icons/Material-Design-Icons.svg#Material-Design-Icons\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n\n[class^=\"mdi-\"], [class*=\"mdi-\"] {\n  speak: none;\n  display: inline-block;\n  font-family: \"Material-Design-Icons\";\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  /* Better Font Rendering =========== */\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-transform: translate(0, 0);\n          transform: translate(0, 0);\n}\n\n[class^=\"mdi-\"]:before, [class*=\"mdi-\"]:before {\n  display: inline-block;\n  speak: none;\n  text-decoration: inherit;\n}\n\n[class^=\"mdi-\"].pull-left, [class*=\"mdi-\"].pull-left {\n  margin-right: .3em;\n}\n\n[class^=\"mdi-\"].pull-right, [class*=\"mdi-\"].pull-right {\n  margin-left: .3em;\n}\n\n[class^=\"mdi-\"].mdi-lg:before, [class^=\"mdi-\"].mdi-lg:after, [class*=\"mdi-\"].mdi-lg:before, [class*=\"mdi-\"].mdi-lg:after {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n\n[class^=\"mdi-\"].mdi-2x:before, [class^=\"mdi-\"].mdi-2x:after, [class*=\"mdi-\"].mdi-2x:before, [class*=\"mdi-\"].mdi-2x:after {\n  font-size: 2em;\n}\n\n[class^=\"mdi-\"].mdi-3x:before, [class^=\"mdi-\"].mdi-3x:after, [class*=\"mdi-\"].mdi-3x:before, [class*=\"mdi-\"].mdi-3x:after {\n  font-size: 3em;\n}\n\n[class^=\"mdi-\"].mdi-4x:before, [class^=\"mdi-\"].mdi-4x:after, [class*=\"mdi-\"].mdi-4x:before, [class*=\"mdi-\"].mdi-4x:after {\n  font-size: 4em;\n}\n\n[class^=\"mdi-\"].mdi-5x:before, [class^=\"mdi-\"].mdi-5x:after, [class*=\"mdi-\"].mdi-5x:before, [class*=\"mdi-\"].mdi-5x:after {\n  font-size: 5em;\n}\n\n[class^=\"mdi-device-signal-cellular-\"]:after,\n[class^=\"mdi-device-battery-\"]:after,\n[class^=\"mdi-device-battery-charging-\"]:after,\n[class^=\"mdi-device-signal-cellular-connected-no-internet-\"]:after,\n[class^=\"mdi-device-signal-wifi-\"]:after,\n[class^=\"mdi-device-signal-wifi-statusbar-not-connected\"]:after,\n.mdi-device-network-wifi:after {\n  opacity: .3;\n  position: absolute;\n  left: 0;\n  top: 0;\n  z-index: 1;\n  display: inline-block;\n  speak: none;\n  text-decoration: inherit;\n}\n\n[class^=\"mdi-device-signal-cellular-\"]:after {\n  content: \"\\e758\";\n}\n\n[class^=\"mdi-device-battery-\"]:after {\n  content: \"\\e735\";\n}\n\n[class^=\"mdi-device-battery-charging-\"]:after {\n  content: \"\\e733\";\n}\n\n[class^=\"mdi-device-signal-cellular-connected-no-internet-\"]:after {\n  content: \"\\e75d\";\n}\n\n[class^=\"mdi-device-signal-wifi-\"]:after, .mdi-device-network-wifi:after {\n  content: \"\\e765\";\n}\n\n[class^=\"mdi-device-signal-wifi-statusbasr-not-connected\"]:after {\n  content: \"\\e8f7\";\n}\n\n.mdi-device-signal-cellular-off:after, .mdi-device-signal-cellular-null:after, .mdi-device-signal-cellular-no-sim:after, .mdi-device-signal-wifi-off:after, .mdi-device-signal-wifi-4-bar:after, .mdi-device-signal-cellular-4-bar:after, .mdi-device-battery-alert:after, .mdi-device-signal-cellular-connected-no-internet-4-bar:after, .mdi-device-battery-std:after, .mdi-device-battery-full .mdi-device-battery-unknown:after {\n  content: \"\";\n}\n\n.mdi-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n\n.mdi-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n\n.mdi-ul > li {\n  position: relative;\n}\n\n.mdi-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n\n.mdi-li.mdi-lg {\n  left: -1.85714286em;\n}\n\n.mdi-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n\n.mdi-spin {\n  -webkit-animation: mdi-spin 2s infinite linear;\n  animation: mdi-spin 2s infinite linear;\n  -webkit-transform-origin: 50% 50%;\n  transform-origin: 50% 50%;\n}\n\n.mdi-pulse {\n  -webkit-animation: mdi-spin 1s steps(8) infinite;\n  animation: mdi-spin 1s steps(8) infinite;\n  -webkit-transform-origin: 50% 50%;\n  transform-origin: 50% 50%;\n}\n\n@-webkit-keyframes mdi-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n\n@keyframes mdi-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n\n.mdi-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n.mdi-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n\n.mdi-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n\n.mdi-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n\n.mdi-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n\n:root .mdi-rotate-90,\n:root .mdi-rotate-180,\n:root .mdi-rotate-270,\n:root .mdi-flip-horizontal,\n:root .mdi-flip-vertical {\n  -webkit-filter: none;\n          filter: none;\n}\n\n.mdi-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n\n.mdi-stack-1x,\n.mdi-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n\n.mdi-stack-1x {\n  line-height: inherit;\n}\n\n.mdi-stack-2x {\n  font-size: 2em;\n}\n\n.mdi-inverse {\n  color: #ffffff;\n}\n\n/* Start Icons */\n.mdi-action-3d-rotation:before {\n  content: \"\\e600\";\n}\n\n.mdi-action-accessibility:before {\n  content: \"\\e601\";\n}\n\n.mdi-action-account-balance-wallet:before {\n  content: \"\\e602\";\n}\n\n.mdi-action-account-balance:before {\n  content: \"\\e603\";\n}\n\n.mdi-action-account-box:before {\n  content: \"\\e604\";\n}\n\n.mdi-action-account-child:before {\n  content: \"\\e605\";\n}\n\n.mdi-action-account-circle:before {\n  content: \"\\e606\";\n}\n\n.mdi-action-add-shopping-cart:before {\n  content: \"\\e607\";\n}\n\n.mdi-action-alarm-add:before {\n  content: \"\\e608\";\n}\n\n.mdi-action-alarm-off:before {\n  content: \"\\e609\";\n}\n\n.mdi-action-alarm-on:before {\n  content: \"\\e60a\";\n}\n\n.mdi-action-alarm:before {\n  content: \"\\e60b\";\n}\n\n.mdi-action-android:before {\n  content: \"\\e60c\";\n}\n\n.mdi-action-announcement:before {\n  content: \"\\e60d\";\n}\n\n.mdi-action-aspect-ratio:before {\n  content: \"\\e60e\";\n}\n\n.mdi-action-assessment:before {\n  content: \"\\e60f\";\n}\n\n.mdi-action-assignment-ind:before {\n  content: \"\\e610\";\n}\n\n.mdi-action-assignment-late:before {\n  content: \"\\e611\";\n}\n\n.mdi-action-assignment-return:before {\n  content: \"\\e612\";\n}\n\n.mdi-action-assignment-returned:before {\n  content: \"\\e613\";\n}\n\n.mdi-action-assignment-turned-in:before {\n  content: \"\\e614\";\n}\n\n.mdi-action-assignment:before {\n  content: \"\\e615\";\n}\n\n.mdi-action-autorenew:before {\n  content: \"\\e616\";\n}\n\n.mdi-action-backup:before {\n  content: \"\\e617\";\n}\n\n.mdi-action-book:before {\n  content: \"\\e618\";\n}\n\n.mdi-action-bookmark-outline:before {\n  content: \"\\e619\";\n}\n\n.mdi-action-bookmark:before {\n  content: \"\\e61a\";\n}\n\n.mdi-action-bug-report:before {\n  content: \"\\e61b\";\n}\n\n.mdi-action-cached:before {\n  content: \"\\e61c\";\n}\n\n.mdi-action-check-circle:before {\n  content: \"\\e61d\";\n}\n\n.mdi-action-class:before {\n  content: \"\\e61e\";\n}\n\n.mdi-action-credit-card:before {\n  content: \"\\e61f\";\n}\n\n.mdi-action-dashboard:before {\n  content: \"\\e620\";\n}\n\n.mdi-action-delete:before {\n  content: \"\\e621\";\n}\n\n.mdi-action-description:before {\n  content: \"\\e622\";\n}\n\n.mdi-action-dns:before {\n  content: \"\\e623\";\n}\n\n.mdi-action-done-all:before {\n  content: \"\\e624\";\n}\n\n.mdi-action-done:before {\n  content: \"\\e625\";\n}\n\n.mdi-action-event:before {\n  content: \"\\e626\";\n}\n\n.mdi-action-exit-to-app:before {\n  content: \"\\e627\";\n}\n\n.mdi-action-explore:before {\n  content: \"\\e628\";\n}\n\n.mdi-action-extension:before {\n  content: \"\\e629\";\n}\n\n.mdi-action-face-unlock:before {\n  content: \"\\e62a\";\n}\n\n.mdi-action-favorite-outline:before {\n  content: \"\\e62b\";\n}\n\n.mdi-action-favorite:before {\n  content: \"\\e62c\";\n}\n\n.mdi-action-find-in-page:before {\n  content: \"\\e62d\";\n}\n\n.mdi-action-find-replace:before {\n  content: \"\\e62e\";\n}\n\n.mdi-action-flip-to-back:before {\n  content: \"\\e62f\";\n}\n\n.mdi-action-flip-to-front:before {\n  content: \"\\e630\";\n}\n\n.mdi-action-get-app:before {\n  content: \"\\e631\";\n}\n\n.mdi-action-grade:before {\n  content: \"\\e632\";\n}\n\n.mdi-action-group-work:before {\n  content: \"\\e633\";\n}\n\n.mdi-action-help:before {\n  content: \"\\e634\";\n}\n\n.mdi-action-highlight-remove:before {\n  content: \"\\e635\";\n}\n\n.mdi-action-history:before {\n  content: \"\\e636\";\n}\n\n.mdi-action-home:before {\n  content: \"\\e637\";\n}\n\n.mdi-action-https:before {\n  content: \"\\e638\";\n}\n\n.mdi-action-info-outline:before {\n  content: \"\\e639\";\n}\n\n.mdi-action-info:before {\n  content: \"\\e63a\";\n}\n\n.mdi-action-input:before {\n  content: \"\\e63b\";\n}\n\n.mdi-action-invert-colors:before {\n  content: \"\\e63c\";\n}\n\n.mdi-action-label-outline:before {\n  content: \"\\e63d\";\n}\n\n.mdi-action-label:before {\n  content: \"\\e63e\";\n}\n\n.mdi-action-language:before {\n  content: \"\\e63f\";\n}\n\n.mdi-action-launch:before {\n  content: \"\\e640\";\n}\n\n.mdi-action-list:before {\n  content: \"\\e641\";\n}\n\n.mdi-action-lock-open:before {\n  content: \"\\e642\";\n}\n\n.mdi-action-lock-outline:before {\n  content: \"\\e643\";\n}\n\n.mdi-action-lock:before {\n  content: \"\\e644\";\n}\n\n.mdi-action-loyalty:before {\n  content: \"\\e645\";\n}\n\n.mdi-action-markunread-mailbox:before {\n  content: \"\\e646\";\n}\n\n.mdi-action-note-add:before {\n  content: \"\\e647\";\n}\n\n.mdi-action-open-in-browser:before {\n  content: \"\\e648\";\n}\n\n.mdi-action-open-in-new:before {\n  content: \"\\e649\";\n}\n\n.mdi-action-open-with:before {\n  content: \"\\e64a\";\n}\n\n.mdi-action-pageview:before {\n  content: \"\\e64b\";\n}\n\n.mdi-action-payment:before {\n  content: \"\\e64c\";\n}\n\n.mdi-action-perm-camera-mic:before {\n  content: \"\\e64d\";\n}\n\n.mdi-action-perm-contact-cal:before {\n  content: \"\\e64e\";\n}\n\n.mdi-action-perm-data-setting:before {\n  content: \"\\e64f\";\n}\n\n.mdi-action-perm-device-info:before {\n  content: \"\\e650\";\n}\n\n.mdi-action-perm-identity:before {\n  content: \"\\e651\";\n}\n\n.mdi-action-perm-media:before {\n  content: \"\\e652\";\n}\n\n.mdi-action-perm-phone-msg:before {\n  content: \"\\e653\";\n}\n\n.mdi-action-perm-scan-wifi:before {\n  content: \"\\e654\";\n}\n\n.mdi-action-picture-in-picture:before {\n  content: \"\\e655\";\n}\n\n.mdi-action-polymer:before {\n  content: \"\\e656\";\n}\n\n.mdi-action-print:before {\n  content: \"\\e657\";\n}\n\n.mdi-action-query-builder:before {\n  content: \"\\e658\";\n}\n\n.mdi-action-question-answer:before {\n  content: \"\\e659\";\n}\n\n.mdi-action-receipt:before {\n  content: \"\\e65a\";\n}\n\n.mdi-action-redeem:before {\n  content: \"\\e65b\";\n}\n\n.mdi-action-reorder:before {\n  content: \"\\e65c\";\n}\n\n.mdi-action-report-problem:before {\n  content: \"\\e65d\";\n}\n\n.mdi-action-restore:before {\n  content: \"\\e65e\";\n}\n\n.mdi-action-room:before {\n  content: \"\\e65f\";\n}\n\n.mdi-action-schedule:before {\n  content: \"\\e660\";\n}\n\n.mdi-action-search:before {\n  content: \"\\e661\";\n}\n\n.mdi-action-settings-applications:before {\n  content: \"\\e662\";\n}\n\n.mdi-action-settings-backup-restore:before {\n  content: \"\\e663\";\n}\n\n.mdi-action-settings-bluetooth:before {\n  content: \"\\e664\";\n}\n\n.mdi-action-settings-cell:before {\n  content: \"\\e665\";\n}\n\n.mdi-action-settings-display:before {\n  content: \"\\e666\";\n}\n\n.mdi-action-settings-ethernet:before {\n  content: \"\\e667\";\n}\n\n.mdi-action-settings-input-antenna:before {\n  content: \"\\e668\";\n}\n\n.mdi-action-settings-input-component:before {\n  content: \"\\e669\";\n}\n\n.mdi-action-settings-input-composite:before {\n  content: \"\\e66a\";\n}\n\n.mdi-action-settings-input-hdmi:before {\n  content: \"\\e66b\";\n}\n\n.mdi-action-settings-input-svideo:before {\n  content: \"\\e66c\";\n}\n\n.mdi-action-settings-overscan:before {\n  content: \"\\e66d\";\n}\n\n.mdi-action-settings-phone:before {\n  content: \"\\e66e\";\n}\n\n.mdi-action-settings-power:before {\n  content: \"\\e66f\";\n}\n\n.mdi-action-settings-remote:before {\n  content: \"\\e670\";\n}\n\n.mdi-action-settings-voice:before {\n  content: \"\\e671\";\n}\n\n.mdi-action-settings:before {\n  content: \"\\e672\";\n}\n\n.mdi-action-shop-two:before {\n  content: \"\\e673\";\n}\n\n.mdi-action-shop:before {\n  content: \"\\e674\";\n}\n\n.mdi-action-shopping-basket:before {\n  content: \"\\e675\";\n}\n\n.mdi-action-shopping-cart:before {\n  content: \"\\e676\";\n}\n\n.mdi-action-speaker-notes:before {\n  content: \"\\e677\";\n}\n\n.mdi-action-spellcheck:before {\n  content: \"\\e678\";\n}\n\n.mdi-action-star-rate:before {\n  content: \"\\e679\";\n}\n\n.mdi-action-stars:before {\n  content: \"\\e67a\";\n}\n\n.mdi-action-store:before {\n  content: \"\\e67b\";\n}\n\n.mdi-action-subject:before {\n  content: \"\\e67c\";\n}\n\n.mdi-action-supervisor-account:before {\n  content: \"\\e67d\";\n}\n\n.mdi-action-swap-horiz:before {\n  content: \"\\e67e\";\n}\n\n.mdi-action-swap-vert-circle:before {\n  content: \"\\e67f\";\n}\n\n.mdi-action-swap-vert:before {\n  content: \"\\e680\";\n}\n\n.mdi-action-system-update-tv:before {\n  content: \"\\e681\";\n}\n\n.mdi-action-tab-unselected:before {\n  content: \"\\e682\";\n}\n\n.mdi-action-tab:before {\n  content: \"\\e683\";\n}\n\n.mdi-action-theaters:before {\n  content: \"\\e684\";\n}\n\n.mdi-action-thumb-down:before {\n  content: \"\\e685\";\n}\n\n.mdi-action-thumb-up:before {\n  content: \"\\e686\";\n}\n\n.mdi-action-thumbs-up-down:before {\n  content: \"\\e687\";\n}\n\n.mdi-action-toc:before {\n  content: \"\\e688\";\n}\n\n.mdi-action-today:before {\n  content: \"\\e689\";\n}\n\n.mdi-action-track-changes:before {\n  content: \"\\e68a\";\n}\n\n.mdi-action-translate:before {\n  content: \"\\e68b\";\n}\n\n.mdi-action-trending-down:before {\n  content: \"\\e68c\";\n}\n\n.mdi-action-trending-neutral:before {\n  content: \"\\e68d\";\n}\n\n.mdi-action-trending-up:before {\n  content: \"\\e68e\";\n}\n\n.mdi-action-turned-in-not:before {\n  content: \"\\e68f\";\n}\n\n.mdi-action-turned-in:before {\n  content: \"\\e690\";\n}\n\n.mdi-action-verified-user:before {\n  content: \"\\e691\";\n}\n\n.mdi-action-view-agenda:before {\n  content: \"\\e692\";\n}\n\n.mdi-action-view-array:before {\n  content: \"\\e693\";\n}\n\n.mdi-action-view-carousel:before {\n  content: \"\\e694\";\n}\n\n.mdi-action-view-column:before {\n  content: \"\\e695\";\n}\n\n.mdi-action-view-day:before {\n  content: \"\\e696\";\n}\n\n.mdi-action-view-headline:before {\n  content: \"\\e697\";\n}\n\n.mdi-action-view-list:before {\n  content: \"\\e698\";\n}\n\n.mdi-action-view-module:before {\n  content: \"\\e699\";\n}\n\n.mdi-action-view-quilt:before {\n  content: \"\\e69a\";\n}\n\n.mdi-action-view-stream:before {\n  content: \"\\e69b\";\n}\n\n.mdi-action-view-week:before {\n  content: \"\\e69c\";\n}\n\n.mdi-action-visibility-off:before {\n  content: \"\\e69d\";\n}\n\n.mdi-action-visibility:before {\n  content: \"\\e69e\";\n}\n\n.mdi-action-wallet-giftcard:before {\n  content: \"\\e69f\";\n}\n\n.mdi-action-wallet-membership:before {\n  content: \"\\e6a0\";\n}\n\n.mdi-action-wallet-travel:before {\n  content: \"\\e6a1\";\n}\n\n.mdi-action-work:before {\n  content: \"\\e6a2\";\n}\n\n.mdi-alert-error:before {\n  content: \"\\e6a3\";\n}\n\n.mdi-alert-warning:before {\n  content: \"\\e6a4\";\n}\n\n.mdi-av-album:before {\n  content: \"\\e6a5\";\n}\n\n.mdi-av-closed-caption:before {\n  content: \"\\e6a6\";\n}\n\n.mdi-av-equalizer:before {\n  content: \"\\e6a7\";\n}\n\n.mdi-av-explicit:before {\n  content: \"\\e6a8\";\n}\n\n.mdi-av-fast-forward:before {\n  content: \"\\e6a9\";\n}\n\n.mdi-av-fast-rewind:before {\n  content: \"\\e6aa\";\n}\n\n.mdi-av-games:before {\n  content: \"\\e6ab\";\n}\n\n.mdi-av-hearing:before {\n  content: \"\\e6ac\";\n}\n\n.mdi-av-high-quality:before {\n  content: \"\\e6ad\";\n}\n\n.mdi-av-loop:before {\n  content: \"\\e6ae\";\n}\n\n.mdi-av-mic-none:before {\n  content: \"\\e6af\";\n}\n\n.mdi-av-mic-off:before {\n  content: \"\\e6b0\";\n}\n\n.mdi-av-mic:before {\n  content: \"\\e6b1\";\n}\n\n.mdi-av-movie:before {\n  content: \"\\e6b2\";\n}\n\n.mdi-av-my-library-add:before {\n  content: \"\\e6b3\";\n}\n\n.mdi-av-my-library-books:before {\n  content: \"\\e6b4\";\n}\n\n.mdi-av-my-library-music:before {\n  content: \"\\e6b5\";\n}\n\n.mdi-av-new-releases:before {\n  content: \"\\e6b6\";\n}\n\n.mdi-av-not-interested:before {\n  content: \"\\e6b7\";\n}\n\n.mdi-av-pause-circle-fill:before {\n  content: \"\\e6b8\";\n}\n\n.mdi-av-pause-circle-outline:before {\n  content: \"\\e6b9\";\n}\n\n.mdi-av-pause:before {\n  content: \"\\e6ba\";\n}\n\n.mdi-av-play-arrow:before {\n  content: \"\\e6bb\";\n}\n\n.mdi-av-play-circle-fill:before {\n  content: \"\\e6bc\";\n}\n\n.mdi-av-play-circle-outline:before {\n  content: \"\\e6bd\";\n}\n\n.mdi-av-play-shopping-bag:before {\n  content: \"\\e6be\";\n}\n\n.mdi-av-playlist-add:before {\n  content: \"\\e6bf\";\n}\n\n.mdi-av-queue-music:before {\n  content: \"\\e6c0\";\n}\n\n.mdi-av-queue:before {\n  content: \"\\e6c1\";\n}\n\n.mdi-av-radio:before {\n  content: \"\\e6c2\";\n}\n\n.mdi-av-recent-actors:before {\n  content: \"\\e6c3\";\n}\n\n.mdi-av-repeat-one:before {\n  content: \"\\e6c4\";\n}\n\n.mdi-av-repeat:before {\n  content: \"\\e6c5\";\n}\n\n.mdi-av-replay:before {\n  content: \"\\e6c6\";\n}\n\n.mdi-av-shuffle:before {\n  content: \"\\e6c7\";\n}\n\n.mdi-av-skip-next:before {\n  content: \"\\e6c8\";\n}\n\n.mdi-av-skip-previous:before {\n  content: \"\\e6c9\";\n}\n\n.mdi-av-snooze:before {\n  content: \"\\e6ca\";\n}\n\n.mdi-av-stop:before {\n  content: \"\\e6cb\";\n}\n\n.mdi-av-subtitles:before {\n  content: \"\\e6cc\";\n}\n\n.mdi-av-surround-sound:before {\n  content: \"\\e6cd\";\n}\n\n.mdi-av-timer:before {\n  content: \"\\e6ce\";\n}\n\n.mdi-av-video-collection:before {\n  content: \"\\e6cf\";\n}\n\n.mdi-av-videocam-off:before {\n  content: \"\\e6d0\";\n}\n\n.mdi-av-videocam:before {\n  content: \"\\e6d1\";\n}\n\n.mdi-av-volume-down:before {\n  content: \"\\e6d2\";\n}\n\n.mdi-av-volume-mute:before {\n  content: \"\\e6d3\";\n}\n\n.mdi-av-volume-off:before {\n  content: \"\\e6d4\";\n}\n\n.mdi-av-volume-up:before {\n  content: \"\\e6d5\";\n}\n\n.mdi-av-web:before {\n  content: \"\\e6d6\";\n}\n\n.mdi-communication-business:before {\n  content: \"\\e6d7\";\n}\n\n.mdi-communication-call-end:before {\n  content: \"\\e6d8\";\n}\n\n.mdi-communication-call-made:before {\n  content: \"\\e6d9\";\n}\n\n.mdi-communication-call-merge:before {\n  content: \"\\e6da\";\n}\n\n.mdi-communication-call-missed:before {\n  content: \"\\e6db\";\n}\n\n.mdi-communication-call-received:before {\n  content: \"\\e6dc\";\n}\n\n.mdi-communication-call-split:before {\n  content: \"\\e6dd\";\n}\n\n.mdi-communication-call:before {\n  content: \"\\e6de\";\n}\n\n.mdi-communication-chat:before {\n  content: \"\\e6df\";\n}\n\n.mdi-communication-clear-all:before {\n  content: \"\\e6e0\";\n}\n\n.mdi-communication-comment:before {\n  content: \"\\e6e1\";\n}\n\n.mdi-communication-contacts:before {\n  content: \"\\e6e2\";\n}\n\n.mdi-communication-dialer-sip:before {\n  content: \"\\e6e3\";\n}\n\n.mdi-communication-dialpad:before {\n  content: \"\\e6e4\";\n}\n\n.mdi-communication-dnd-on:before {\n  content: \"\\e6e5\";\n}\n\n.mdi-communication-email:before {\n  content: \"\\e6e6\";\n}\n\n.mdi-communication-forum:before {\n  content: \"\\e6e7\";\n}\n\n.mdi-communication-import-export:before {\n  content: \"\\e6e8\";\n}\n\n.mdi-communication-invert-colors-off:before {\n  content: \"\\e6e9\";\n}\n\n.mdi-communication-invert-colors-on:before {\n  content: \"\\e6ea\";\n}\n\n.mdi-communication-live-help:before {\n  content: \"\\e6eb\";\n}\n\n.mdi-communication-location-off:before {\n  content: \"\\e6ec\";\n}\n\n.mdi-communication-location-on:before {\n  content: \"\\e6ed\";\n}\n\n.mdi-communication-message:before {\n  content: \"\\e6ee\";\n}\n\n.mdi-communication-messenger:before {\n  content: \"\\e6ef\";\n}\n\n.mdi-communication-no-sim:before {\n  content: \"\\e6f0\";\n}\n\n.mdi-communication-phone:before {\n  content: \"\\e6f1\";\n}\n\n.mdi-communication-portable-wifi-off:before {\n  content: \"\\e6f2\";\n}\n\n.mdi-communication-quick-contacts-dialer:before {\n  content: \"\\e6f3\";\n}\n\n.mdi-communication-quick-contacts-mail:before {\n  content: \"\\e6f4\";\n}\n\n.mdi-communication-ring-volume:before {\n  content: \"\\e6f5\";\n}\n\n.mdi-communication-stay-current-landscape:before {\n  content: \"\\e6f6\";\n}\n\n.mdi-communication-stay-current-portrait:before {\n  content: \"\\e6f7\";\n}\n\n.mdi-communication-stay-primary-landscape:before {\n  content: \"\\e6f8\";\n}\n\n.mdi-communication-stay-primary-portrait:before {\n  content: \"\\e6f9\";\n}\n\n.mdi-communication-swap-calls:before {\n  content: \"\\e6fa\";\n}\n\n.mdi-communication-textsms:before {\n  content: \"\\e6fb\";\n}\n\n.mdi-communication-voicemail:before {\n  content: \"\\e6fc\";\n}\n\n.mdi-communication-vpn-key:before {\n  content: \"\\e6fd\";\n}\n\n.mdi-content-add-box:before {\n  content: \"\\e6fe\";\n}\n\n.mdi-content-add-circle-outline:before {\n  content: \"\\e6ff\";\n}\n\n.mdi-content-add-circle:before {\n  content: \"\\e700\";\n}\n\n.mdi-content-add:before {\n  content: \"\\e701\";\n}\n\n.mdi-content-archive:before {\n  content: \"\\e702\";\n}\n\n.mdi-content-backspace:before {\n  content: \"\\e703\";\n}\n\n.mdi-content-block:before {\n  content: \"\\e704\";\n}\n\n.mdi-content-clear:before {\n  content: \"\\e705\";\n}\n\n.mdi-content-content-copy:before {\n  content: \"\\e706\";\n}\n\n.mdi-content-content-cut:before {\n  content: \"\\e707\";\n}\n\n.mdi-content-content-paste:before {\n  content: \"\\e708\";\n}\n\n.mdi-content-create:before {\n  content: \"\\e709\";\n}\n\n.mdi-content-drafts:before {\n  content: \"\\e70a\";\n}\n\n.mdi-content-filter-list:before {\n  content: \"\\e70b\";\n}\n\n.mdi-content-flag:before {\n  content: \"\\e70c\";\n}\n\n.mdi-content-forward:before {\n  content: \"\\e70d\";\n}\n\n.mdi-content-gesture:before {\n  content: \"\\e70e\";\n}\n\n.mdi-content-inbox:before {\n  content: \"\\e70f\";\n}\n\n.mdi-content-link:before {\n  content: \"\\e710\";\n}\n\n.mdi-content-mail:before {\n  content: \"\\e711\";\n}\n\n.mdi-content-markunread:before {\n  content: \"\\e712\";\n}\n\n.mdi-content-redo:before {\n  content: \"\\e713\";\n}\n\n.mdi-content-remove-circle-outline:before {\n  content: \"\\e714\";\n}\n\n.mdi-content-remove-circle:before {\n  content: \"\\e715\";\n}\n\n.mdi-content-remove:before {\n  content: \"\\e716\";\n}\n\n.mdi-content-reply-all:before {\n  content: \"\\e717\";\n}\n\n.mdi-content-reply:before {\n  content: \"\\e718\";\n}\n\n.mdi-content-report:before {\n  content: \"\\e719\";\n}\n\n.mdi-content-save:before {\n  content: \"\\e71a\";\n}\n\n.mdi-content-select-all:before {\n  content: \"\\e71b\";\n}\n\n.mdi-content-send:before {\n  content: \"\\e71c\";\n}\n\n.mdi-content-sort:before {\n  content: \"\\e71d\";\n}\n\n.mdi-content-text-format:before {\n  content: \"\\e71e\";\n}\n\n.mdi-content-undo:before {\n  content: \"\\e71f\";\n}\n\n.mdi-editor-attach-file:before {\n  content: \"\\e776\";\n}\n\n.mdi-editor-attach-money:before {\n  content: \"\\e777\";\n}\n\n.mdi-editor-border-all:before {\n  content: \"\\e778\";\n}\n\n.mdi-editor-border-bottom:before {\n  content: \"\\e779\";\n}\n\n.mdi-editor-border-clear:before {\n  content: \"\\e77a\";\n}\n\n.mdi-editor-border-color:before {\n  content: \"\\e77b\";\n}\n\n.mdi-editor-border-horizontal:before {\n  content: \"\\e77c\";\n}\n\n.mdi-editor-border-inner:before {\n  content: \"\\e77d\";\n}\n\n.mdi-editor-border-left:before {\n  content: \"\\e77e\";\n}\n\n.mdi-editor-border-outer:before {\n  content: \"\\e77f\";\n}\n\n.mdi-editor-border-right:before {\n  content: \"\\e780\";\n}\n\n.mdi-editor-border-style:before {\n  content: \"\\e781\";\n}\n\n.mdi-editor-border-top:before {\n  content: \"\\e782\";\n}\n\n.mdi-editor-border-vertical:before {\n  content: \"\\e783\";\n}\n\n.mdi-editor-format-align-center:before {\n  content: \"\\e784\";\n}\n\n.mdi-editor-format-align-justify:before {\n  content: \"\\e785\";\n}\n\n.mdi-editor-format-align-left:before {\n  content: \"\\e786\";\n}\n\n.mdi-editor-format-align-right:before {\n  content: \"\\e787\";\n}\n\n.mdi-editor-format-bold:before {\n  content: \"\\e788\";\n}\n\n.mdi-editor-format-clear:before {\n  content: \"\\e789\";\n}\n\n.mdi-editor-format-color-fill:before {\n  content: \"\\e78a\";\n}\n\n.mdi-editor-format-color-reset:before {\n  content: \"\\e78b\";\n}\n\n.mdi-editor-format-color-text:before {\n  content: \"\\e78c\";\n}\n\n.mdi-editor-format-indent-decrease:before {\n  content: \"\\e78d\";\n}\n\n.mdi-editor-format-indent-increase:before {\n  content: \"\\e78e\";\n}\n\n.mdi-editor-format-italic:before {\n  content: \"\\e78f\";\n}\n\n.mdi-editor-format-line-spacing:before {\n  content: \"\\e790\";\n}\n\n.mdi-editor-format-list-bulleted:before {\n  content: \"\\e791\";\n}\n\n.mdi-editor-format-list-numbered:before {\n  content: \"\\e792\";\n}\n\n.mdi-editor-format-paint:before {\n  content: \"\\e793\";\n}\n\n.mdi-editor-format-quote:before {\n  content: \"\\e794\";\n}\n\n.mdi-editor-format-size:before {\n  content: \"\\e795\";\n}\n\n.mdi-editor-format-strikethrough:before {\n  content: \"\\e796\";\n}\n\n.mdi-editor-format-textdirection-l-to-r:before {\n  content: \"\\e797\";\n}\n\n.mdi-editor-format-textdirection-r-to-l:before {\n  content: \"\\e798\";\n}\n\n.mdi-editor-format-underline:before {\n  content: \"\\e799\";\n}\n\n.mdi-editor-functions:before {\n  content: \"\\e79a\";\n}\n\n.mdi-editor-insert-chart:before {\n  content: \"\\e79b\";\n}\n\n.mdi-editor-insert-comment:before {\n  content: \"\\e79c\";\n}\n\n.mdi-editor-insert-drive-file:before {\n  content: \"\\e79d\";\n}\n\n.mdi-editor-insert-emoticon:before {\n  content: \"\\e79e\";\n}\n\n.mdi-editor-insert-invitation:before {\n  content: \"\\e79f\";\n}\n\n.mdi-editor-insert-link:before {\n  content: \"\\e7a0\";\n}\n\n.mdi-editor-insert-photo:before {\n  content: \"\\e7a1\";\n}\n\n.mdi-editor-merge-type:before {\n  content: \"\\e7a2\";\n}\n\n.mdi-editor-mode-comment:before {\n  content: \"\\e7a3\";\n}\n\n.mdi-editor-mode-edit:before {\n  content: \"\\e7a4\";\n}\n\n.mdi-editor-publish:before {\n  content: \"\\e7a5\";\n}\n\n.mdi-editor-vertical-align-bottom:before {\n  content: \"\\e7a6\";\n}\n\n.mdi-editor-vertical-align-center:before {\n  content: \"\\e7a7\";\n}\n\n.mdi-editor-vertical-align-top:before {\n  content: \"\\e7a8\";\n}\n\n.mdi-editor-wrap-text:before {\n  content: \"\\e7a9\";\n}\n\n.mdi-file-attachment:before {\n  content: \"\\e7aa\";\n}\n\n.mdi-file-cloud-circle:before {\n  content: \"\\e7ab\";\n}\n\n.mdi-file-cloud-done:before {\n  content: \"\\e7ac\";\n}\n\n.mdi-file-cloud-download:before {\n  content: \"\\e7ad\";\n}\n\n.mdi-file-cloud-off:before {\n  content: \"\\e7ae\";\n}\n\n.mdi-file-cloud-queue:before {\n  content: \"\\e7af\";\n}\n\n.mdi-file-cloud-upload:before {\n  content: \"\\e7b0\";\n}\n\n.mdi-file-cloud:before {\n  content: \"\\e7b1\";\n}\n\n.mdi-file-file-download:before {\n  content: \"\\e7b2\";\n}\n\n.mdi-file-file-upload:before {\n  content: \"\\e7b3\";\n}\n\n.mdi-file-folder-open:before {\n  content: \"\\e7b4\";\n}\n\n.mdi-file-folder-shared:before {\n  content: \"\\e7b5\";\n}\n\n.mdi-file-folder:before {\n  content: \"\\e7b6\";\n}\n\n.mdi-device-access-alarm:before {\n  content: \"\\e720\";\n}\n\n.mdi-device-access-alarms:before {\n  content: \"\\e721\";\n}\n\n.mdi-device-access-time:before {\n  content: \"\\e722\";\n}\n\n.mdi-device-add-alarm:before {\n  content: \"\\e723\";\n}\n\n.mdi-device-airplanemode-off:before {\n  content: \"\\e724\";\n}\n\n.mdi-device-airplanemode-on:before {\n  content: \"\\e725\";\n}\n\n.mdi-device-battery-20:before {\n  content: \"\\e726\";\n}\n\n.mdi-device-battery-30:before {\n  content: \"\\e727\";\n}\n\n.mdi-device-battery-50:before {\n  content: \"\\e728\";\n}\n\n.mdi-device-battery-60:before {\n  content: \"\\e729\";\n}\n\n.mdi-device-battery-80:before {\n  content: \"\\e72a\";\n}\n\n.mdi-device-battery-90:before {\n  content: \"\\e72b\";\n}\n\n.mdi-device-battery-alert:before {\n  content: \"\\e72c\";\n}\n\n.mdi-device-battery-charging-20:before {\n  content: \"\\e72d\";\n}\n\n.mdi-device-battery-charging-30:before {\n  content: \"\\e72e\";\n}\n\n.mdi-device-battery-charging-50:before {\n  content: \"\\e72f\";\n}\n\n.mdi-device-battery-charging-60:before {\n  content: \"\\e730\";\n}\n\n.mdi-device-battery-charging-80:before {\n  content: \"\\e731\";\n}\n\n.mdi-device-battery-charging-90:before {\n  content: \"\\e732\";\n}\n\n.mdi-device-battery-charging-full:before {\n  content: \"\\e733\";\n}\n\n.mdi-device-battery-full:before {\n  content: \"\\e734\";\n}\n\n.mdi-device-battery-std:before {\n  content: \"\\e735\";\n}\n\n.mdi-device-battery-unknown:before {\n  content: \"\\e736\";\n}\n\n.mdi-device-bluetooth-connected:before {\n  content: \"\\e737\";\n}\n\n.mdi-device-bluetooth-disabled:before {\n  content: \"\\e738\";\n}\n\n.mdi-device-bluetooth-searching:before {\n  content: \"\\e739\";\n}\n\n.mdi-device-bluetooth:before {\n  content: \"\\e73a\";\n}\n\n.mdi-device-brightness-auto:before {\n  content: \"\\e73b\";\n}\n\n.mdi-device-brightness-high:before {\n  content: \"\\e73c\";\n}\n\n.mdi-device-brightness-low:before {\n  content: \"\\e73d\";\n}\n\n.mdi-device-brightness-medium:before {\n  content: \"\\e73e\";\n}\n\n.mdi-device-data-usage:before {\n  content: \"\\e73f\";\n}\n\n.mdi-device-developer-mode:before {\n  content: \"\\e740\";\n}\n\n.mdi-device-devices:before {\n  content: \"\\e741\";\n}\n\n.mdi-device-dvr:before {\n  content: \"\\e742\";\n}\n\n.mdi-device-gps-fixed:before {\n  content: \"\\e743\";\n}\n\n.mdi-device-gps-not-fixed:before {\n  content: \"\\e744\";\n}\n\n.mdi-device-gps-off:before {\n  content: \"\\e745\";\n}\n\n.mdi-device-location-disabled:before {\n  content: \"\\e746\";\n}\n\n.mdi-device-location-searching:before {\n  content: \"\\e747\";\n}\n\n.mdi-device-multitrack-audio:before {\n  content: \"\\e748\";\n}\n\n.mdi-device-network-cell:before {\n  content: \"\\e749\";\n}\n\n.mdi-device-network-wifi:before {\n  content: \"\\e74a\";\n}\n\n.mdi-device-nfc:before {\n  content: \"\\e74b\";\n}\n\n.mdi-device-now-wallpaper:before {\n  content: \"\\e74c\";\n}\n\n.mdi-device-now-widgets:before {\n  content: \"\\e74d\";\n}\n\n.mdi-device-screen-lock-landscape:before {\n  content: \"\\e74e\";\n}\n\n.mdi-device-screen-lock-portrait:before {\n  content: \"\\e74f\";\n}\n\n.mdi-device-screen-lock-rotation:before {\n  content: \"\\e750\";\n}\n\n.mdi-device-screen-rotation:before {\n  content: \"\\e751\";\n}\n\n.mdi-device-sd-storage:before {\n  content: \"\\e752\";\n}\n\n.mdi-device-settings-system-daydream:before {\n  content: \"\\e753\";\n}\n\n.mdi-device-signal-cellular-0-bar:before {\n  content: \"\\e754\";\n}\n\n.mdi-device-signal-cellular-1-bar:before {\n  content: \"\\e755\";\n}\n\n.mdi-device-signal-cellular-2-bar:before {\n  content: \"\\e756\";\n}\n\n.mdi-device-signal-cellular-3-bar:before {\n  content: \"\\e757\";\n}\n\n.mdi-device-signal-cellular-4-bar:before {\n  content: \"\\e758\";\n}\n\n.mdi-signal-wifi-statusbar-connected-no-internet-after:before {\n  content: \"\\e8f6\";\n}\n\n.mdi-device-signal-cellular-connected-no-internet-0-bar:before {\n  content: \"\\e759\";\n}\n\n.mdi-device-signal-cellular-connected-no-internet-1-bar:before {\n  content: \"\\e75a\";\n}\n\n.mdi-device-signal-cellular-connected-no-internet-2-bar:before {\n  content: \"\\e75b\";\n}\n\n.mdi-device-signal-cellular-connected-no-internet-3-bar:before {\n  content: \"\\e75c\";\n}\n\n.mdi-device-signal-cellular-connected-no-internet-4-bar:before {\n  content: \"\\e75d\";\n}\n\n.mdi-device-signal-cellular-no-sim:before {\n  content: \"\\e75e\";\n}\n\n.mdi-device-signal-cellular-null:before {\n  content: \"\\e75f\";\n}\n\n.mdi-device-signal-cellular-off:before {\n  content: \"\\e760\";\n}\n\n.mdi-device-signal-wifi-0-bar:before {\n  content: \"\\e761\";\n}\n\n.mdi-device-signal-wifi-1-bar:before {\n  content: \"\\e762\";\n}\n\n.mdi-device-signal-wifi-2-bar:before {\n  content: \"\\e763\";\n}\n\n.mdi-device-signal-wifi-3-bar:before {\n  content: \"\\e764\";\n}\n\n.mdi-device-signal-wifi-4-bar:before {\n  content: \"\\e765\";\n}\n\n.mdi-device-signal-wifi-off:before {\n  content: \"\\e766\";\n}\n\n.mdi-device-signal-wifi-statusbar-1-bar:before {\n  content: \"\\e767\";\n}\n\n.mdi-device-signal-wifi-statusbar-2-bar:before {\n  content: \"\\e768\";\n}\n\n.mdi-device-signal-wifi-statusbar-3-bar:before {\n  content: \"\\e769\";\n}\n\n.mdi-device-signal-wifi-statusbar-4-bar:before {\n  content: \"\\e76a\";\n}\n\n.mdi-device-signal-wifi-statusbar-connected-no-internet-:before {\n  content: \"\\e76b\";\n}\n\n.mdi-device-signal-wifi-statusbar-connected-no-internet:before {\n  content: \"\\e76f\";\n}\n\n.mdi-device-signal-wifi-statusbar-connected-no-internet-2:before {\n  content: \"\\e76c\";\n}\n\n.mdi-device-signal-wifi-statusbar-connected-no-internet-3:before {\n  content: \"\\e76d\";\n}\n\n.mdi-device-signal-wifi-statusbar-connected-no-internet-4:before {\n  content: \"\\e76e\";\n}\n\n.mdi-signal-wifi-statusbar-not-connected-after:before {\n  content: \"\\e8f7\";\n}\n\n.mdi-device-signal-wifi-statusbar-not-connected:before {\n  content: \"\\e770\";\n}\n\n.mdi-device-signal-wifi-statusbar-null:before {\n  content: \"\\e771\";\n}\n\n.mdi-device-storage:before {\n  content: \"\\e772\";\n}\n\n.mdi-device-usb:before {\n  content: \"\\e773\";\n}\n\n.mdi-device-wifi-lock:before {\n  content: \"\\e774\";\n}\n\n.mdi-device-wifi-tethering:before {\n  content: \"\\e775\";\n}\n\n.mdi-hardware-cast-connected:before {\n  content: \"\\e7b7\";\n}\n\n.mdi-hardware-cast:before {\n  content: \"\\e7b8\";\n}\n\n.mdi-hardware-computer:before {\n  content: \"\\e7b9\";\n}\n\n.mdi-hardware-desktop-mac:before {\n  content: \"\\e7ba\";\n}\n\n.mdi-hardware-desktop-windows:before {\n  content: \"\\e7bb\";\n}\n\n.mdi-hardware-dock:before {\n  content: \"\\e7bc\";\n}\n\n.mdi-hardware-gamepad:before {\n  content: \"\\e7bd\";\n}\n\n.mdi-hardware-headset-mic:before {\n  content: \"\\e7be\";\n}\n\n.mdi-hardware-headset:before {\n  content: \"\\e7bf\";\n}\n\n.mdi-hardware-keyboard-alt:before {\n  content: \"\\e7c0\";\n}\n\n.mdi-hardware-keyboard-arrow-down:before {\n  content: \"\\e7c1\";\n}\n\n.mdi-hardware-keyboard-arrow-left:before {\n  content: \"\\e7c2\";\n}\n\n.mdi-hardware-keyboard-arrow-right:before {\n  content: \"\\e7c3\";\n}\n\n.mdi-hardware-keyboard-arrow-up:before {\n  content: \"\\e7c4\";\n}\n\n.mdi-hardware-keyboard-backspace:before {\n  content: \"\\e7c5\";\n}\n\n.mdi-hardware-keyboard-capslock:before {\n  content: \"\\e7c6\";\n}\n\n.mdi-hardware-keyboard-control:before {\n  content: \"\\e7c7\";\n}\n\n.mdi-hardware-keyboard-hide:before {\n  content: \"\\e7c8\";\n}\n\n.mdi-hardware-keyboard-return:before {\n  content: \"\\e7c9\";\n}\n\n.mdi-hardware-keyboard-tab:before {\n  content: \"\\e7ca\";\n}\n\n.mdi-hardware-keyboard-voice:before {\n  content: \"\\e7cb\";\n}\n\n.mdi-hardware-keyboard:before {\n  content: \"\\e7cc\";\n}\n\n.mdi-hardware-laptop-chromebook:before {\n  content: \"\\e7cd\";\n}\n\n.mdi-hardware-laptop-mac:before {\n  content: \"\\e7ce\";\n}\n\n.mdi-hardware-laptop-windows:before {\n  content: \"\\e7cf\";\n}\n\n.mdi-hardware-laptop:before {\n  content: \"\\e7d0\";\n}\n\n.mdi-hardware-memory:before {\n  content: \"\\e7d1\";\n}\n\n.mdi-hardware-mouse:before {\n  content: \"\\e7d2\";\n}\n\n.mdi-hardware-phone-android:before {\n  content: \"\\e7d3\";\n}\n\n.mdi-hardware-phone-iphone:before {\n  content: \"\\e7d4\";\n}\n\n.mdi-hardware-phonelink-off:before {\n  content: \"\\e7d5\";\n}\n\n.mdi-hardware-phonelink:before {\n  content: \"\\e7d6\";\n}\n\n.mdi-hardware-security:before {\n  content: \"\\e7d7\";\n}\n\n.mdi-hardware-sim-card:before {\n  content: \"\\e7d8\";\n}\n\n.mdi-hardware-smartphone:before {\n  content: \"\\e7d9\";\n}\n\n.mdi-hardware-speaker:before {\n  content: \"\\e7da\";\n}\n\n.mdi-hardware-tablet-android:before {\n  content: \"\\e7db\";\n}\n\n.mdi-hardware-tablet-mac:before {\n  content: \"\\e7dc\";\n}\n\n.mdi-hardware-tablet:before {\n  content: \"\\e7dd\";\n}\n\n.mdi-hardware-tv:before {\n  content: \"\\e7de\";\n}\n\n.mdi-hardware-watch:before {\n  content: \"\\e7df\";\n}\n\n.mdi-image-add-to-photos:before {\n  content: \"\\e7e0\";\n}\n\n.mdi-image-adjust:before {\n  content: \"\\e7e1\";\n}\n\n.mdi-image-assistant-photo:before {\n  content: \"\\e7e2\";\n}\n\n.mdi-image-audiotrack:before {\n  content: \"\\e7e3\";\n}\n\n.mdi-image-blur-circular:before {\n  content: \"\\e7e4\";\n}\n\n.mdi-image-blur-linear:before {\n  content: \"\\e7e5\";\n}\n\n.mdi-image-blur-off:before {\n  content: \"\\e7e6\";\n}\n\n.mdi-image-blur-on:before {\n  content: \"\\e7e7\";\n}\n\n.mdi-image-brightness-1:before {\n  content: \"\\e7e8\";\n}\n\n.mdi-image-brightness-2:before {\n  content: \"\\e7e9\";\n}\n\n.mdi-image-brightness-3:before {\n  content: \"\\e7ea\";\n}\n\n.mdi-image-brightness-4:before {\n  content: \"\\e7eb\";\n}\n\n.mdi-image-brightness-5:before {\n  content: \"\\e7ec\";\n}\n\n.mdi-image-brightness-6:before {\n  content: \"\\e7ed\";\n}\n\n.mdi-image-brightness-7:before {\n  content: \"\\e7ee\";\n}\n\n.mdi-image-brush:before {\n  content: \"\\e7ef\";\n}\n\n.mdi-image-camera-alt:before {\n  content: \"\\e7f0\";\n}\n\n.mdi-image-camera-front:before {\n  content: \"\\e7f1\";\n}\n\n.mdi-image-camera-rear:before {\n  content: \"\\e7f2\";\n}\n\n.mdi-image-camera-roll:before {\n  content: \"\\e7f3\";\n}\n\n.mdi-image-camera:before {\n  content: \"\\e7f4\";\n}\n\n.mdi-image-center-focus-strong:before {\n  content: \"\\e7f5\";\n}\n\n.mdi-image-center-focus-weak:before {\n  content: \"\\e7f6\";\n}\n\n.mdi-image-collections:before {\n  content: \"\\e7f7\";\n}\n\n.mdi-image-color-lens:before {\n  content: \"\\e7f8\";\n}\n\n.mdi-image-colorize:before {\n  content: \"\\e7f9\";\n}\n\n.mdi-image-compare:before {\n  content: \"\\e7fa\";\n}\n\n.mdi-image-control-point-duplicate:before {\n  content: \"\\e7fb\";\n}\n\n.mdi-image-control-point:before {\n  content: \"\\e7fc\";\n}\n\n.mdi-image-crop-3-2:before {\n  content: \"\\e7fd\";\n}\n\n.mdi-image-crop-5-4:before {\n  content: \"\\e7fe\";\n}\n\n.mdi-image-crop-7-5:before {\n  content: \"\\e7ff\";\n}\n\n.mdi-image-crop-16-9:before {\n  content: \"\\e800\";\n}\n\n.mdi-image-crop-din:before {\n  content: \"\\e801\";\n}\n\n.mdi-image-crop-free:before {\n  content: \"\\e802\";\n}\n\n.mdi-image-crop-landscape:before {\n  content: \"\\e803\";\n}\n\n.mdi-image-crop-original:before {\n  content: \"\\e804\";\n}\n\n.mdi-image-crop-portrait:before {\n  content: \"\\e805\";\n}\n\n.mdi-image-crop-square:before {\n  content: \"\\e806\";\n}\n\n.mdi-image-crop:before {\n  content: \"\\e807\";\n}\n\n.mdi-image-dehaze:before {\n  content: \"\\e808\";\n}\n\n.mdi-image-details:before {\n  content: \"\\e809\";\n}\n\n.mdi-image-edit:before {\n  content: \"\\e80a\";\n}\n\n.mdi-image-exposure-minus-1:before {\n  content: \"\\e80b\";\n}\n\n.mdi-image-exposure-minus-2:before {\n  content: \"\\e80c\";\n}\n\n.mdi-image-exposure-plus-1:before {\n  content: \"\\e80d\";\n}\n\n.mdi-image-exposure-plus-2:before {\n  content: \"\\e80e\";\n}\n\n.mdi-image-exposure-zero:before {\n  content: \"\\e80f\";\n}\n\n.mdi-image-exposure:before {\n  content: \"\\e810\";\n}\n\n.mdi-image-filter-1:before {\n  content: \"\\e811\";\n}\n\n.mdi-image-filter-2:before {\n  content: \"\\e812\";\n}\n\n.mdi-image-filter-3:before {\n  content: \"\\e813\";\n}\n\n.mdi-image-filter-4:before {\n  content: \"\\e814\";\n}\n\n.mdi-image-filter-5:before {\n  content: \"\\e815\";\n}\n\n.mdi-image-filter-6:before {\n  content: \"\\e816\";\n}\n\n.mdi-image-filter-7:before {\n  content: \"\\e817\";\n}\n\n.mdi-image-filter-8:before {\n  content: \"\\e818\";\n}\n\n.mdi-image-filter-9-plus:before {\n  content: \"\\e819\";\n}\n\n.mdi-image-filter-9:before {\n  content: \"\\e81a\";\n}\n\n.mdi-image-filter-b-and-w:before {\n  content: \"\\e81b\";\n}\n\n.mdi-image-filter-center-focus:before {\n  content: \"\\e81c\";\n}\n\n.mdi-image-filter-drama:before {\n  content: \"\\e81d\";\n}\n\n.mdi-image-filter-frames:before {\n  content: \"\\e81e\";\n}\n\n.mdi-image-filter-hdr:before {\n  content: \"\\e81f\";\n}\n\n.mdi-image-filter-none:before {\n  content: \"\\e820\";\n}\n\n.mdi-image-filter-tilt-shift:before {\n  content: \"\\e821\";\n}\n\n.mdi-image-filter-vintage:before {\n  content: \"\\e822\";\n}\n\n.mdi-image-filter:before {\n  content: \"\\e823\";\n}\n\n.mdi-image-flare:before {\n  content: \"\\e824\";\n}\n\n.mdi-image-flash-auto:before {\n  content: \"\\e825\";\n}\n\n.mdi-image-flash-off:before {\n  content: \"\\e826\";\n}\n\n.mdi-image-flash-on:before {\n  content: \"\\e827\";\n}\n\n.mdi-image-flip:before {\n  content: \"\\e828\";\n}\n\n.mdi-image-gradient:before {\n  content: \"\\e829\";\n}\n\n.mdi-image-grain:before {\n  content: \"\\e82a\";\n}\n\n.mdi-image-grid-off:before {\n  content: \"\\e82b\";\n}\n\n.mdi-image-grid-on:before {\n  content: \"\\e82c\";\n}\n\n.mdi-image-hdr-off:before {\n  content: \"\\e82d\";\n}\n\n.mdi-image-hdr-on:before {\n  content: \"\\e82e\";\n}\n\n.mdi-image-hdr-strong:before {\n  content: \"\\e82f\";\n}\n\n.mdi-image-hdr-weak:before {\n  content: \"\\e830\";\n}\n\n.mdi-image-healing:before {\n  content: \"\\e831\";\n}\n\n.mdi-image-image-aspect-ratio:before {\n  content: \"\\e832\";\n}\n\n.mdi-image-image:before {\n  content: \"\\e833\";\n}\n\n.mdi-image-iso:before {\n  content: \"\\e834\";\n}\n\n.mdi-image-landscape:before {\n  content: \"\\e835\";\n}\n\n.mdi-image-leak-add:before {\n  content: \"\\e836\";\n}\n\n.mdi-image-leak-remove:before {\n  content: \"\\e837\";\n}\n\n.mdi-image-lens:before {\n  content: \"\\e838\";\n}\n\n.mdi-image-looks-3:before {\n  content: \"\\e839\";\n}\n\n.mdi-image-looks-4:before {\n  content: \"\\e83a\";\n}\n\n.mdi-image-looks-5:before {\n  content: \"\\e83b\";\n}\n\n.mdi-image-looks-6:before {\n  content: \"\\e83c\";\n}\n\n.mdi-image-looks-one:before {\n  content: \"\\e83d\";\n}\n\n.mdi-image-looks-two:before {\n  content: \"\\e83e\";\n}\n\n.mdi-image-looks:before {\n  content: \"\\e83f\";\n}\n\n.mdi-image-loupe:before {\n  content: \"\\e840\";\n}\n\n.mdi-image-movie-creation:before {\n  content: \"\\e841\";\n}\n\n.mdi-image-nature-people:before {\n  content: \"\\e842\";\n}\n\n.mdi-image-nature:before {\n  content: \"\\e843\";\n}\n\n.mdi-image-navigate-before:before {\n  content: \"\\e844\";\n}\n\n.mdi-image-navigate-next:before {\n  content: \"\\e845\";\n}\n\n.mdi-image-palette:before {\n  content: \"\\e846\";\n}\n\n.mdi-image-panorama-fisheye:before {\n  content: \"\\e847\";\n}\n\n.mdi-image-panorama-horizontal:before {\n  content: \"\\e848\";\n}\n\n.mdi-image-panorama-vertical:before {\n  content: \"\\e849\";\n}\n\n.mdi-image-panorama-wide-angle:before {\n  content: \"\\e84a\";\n}\n\n.mdi-image-panorama:before {\n  content: \"\\e84b\";\n}\n\n.mdi-image-photo-album:before {\n  content: \"\\e84c\";\n}\n\n.mdi-image-photo-camera:before {\n  content: \"\\e84d\";\n}\n\n.mdi-image-photo-library:before {\n  content: \"\\e84e\";\n}\n\n.mdi-image-photo:before {\n  content: \"\\e84f\";\n}\n\n.mdi-image-portrait:before {\n  content: \"\\e850\";\n}\n\n.mdi-image-remove-red-eye:before {\n  content: \"\\e851\";\n}\n\n.mdi-image-rotate-left:before {\n  content: \"\\e852\";\n}\n\n.mdi-image-rotate-right:before {\n  content: \"\\e853\";\n}\n\n.mdi-image-slideshow:before {\n  content: \"\\e854\";\n}\n\n.mdi-image-straighten:before {\n  content: \"\\e855\";\n}\n\n.mdi-image-style:before {\n  content: \"\\e856\";\n}\n\n.mdi-image-switch-camera:before {\n  content: \"\\e857\";\n}\n\n.mdi-image-switch-video:before {\n  content: \"\\e858\";\n}\n\n.mdi-image-tag-faces:before {\n  content: \"\\e859\";\n}\n\n.mdi-image-texture:before {\n  content: \"\\e85a\";\n}\n\n.mdi-image-timelapse:before {\n  content: \"\\e85b\";\n}\n\n.mdi-image-timer-3:before {\n  content: \"\\e85c\";\n}\n\n.mdi-image-timer-10:before {\n  content: \"\\e85d\";\n}\n\n.mdi-image-timer-auto:before {\n  content: \"\\e85e\";\n}\n\n.mdi-image-timer-off:before {\n  content: \"\\e85f\";\n}\n\n.mdi-image-timer:before {\n  content: \"\\e860\";\n}\n\n.mdi-image-tonality:before {\n  content: \"\\e861\";\n}\n\n.mdi-image-transform:before {\n  content: \"\\e862\";\n}\n\n.mdi-image-tune:before {\n  content: \"\\e863\";\n}\n\n.mdi-image-wb-auto:before {\n  content: \"\\e864\";\n}\n\n.mdi-image-wb-cloudy:before {\n  content: \"\\e865\";\n}\n\n.mdi-image-wb-incandescent:before {\n  content: \"\\e866\";\n}\n\n.mdi-image-wb-irradescent:before {\n  content: \"\\e867\";\n}\n\n.mdi-image-wb-sunny:before {\n  content: \"\\e868\";\n}\n\n.mdi-maps-beenhere:before {\n  content: \"\\e869\";\n}\n\n.mdi-maps-directions-bike:before {\n  content: \"\\e86a\";\n}\n\n.mdi-maps-directions-bus:before {\n  content: \"\\e86b\";\n}\n\n.mdi-maps-directions-car:before {\n  content: \"\\e86c\";\n}\n\n.mdi-maps-directions-ferry:before {\n  content: \"\\e86d\";\n}\n\n.mdi-maps-directions-subway:before {\n  content: \"\\e86e\";\n}\n\n.mdi-maps-directions-train:before {\n  content: \"\\e86f\";\n}\n\n.mdi-maps-directions-transit:before {\n  content: \"\\e870\";\n}\n\n.mdi-maps-directions-walk:before {\n  content: \"\\e871\";\n}\n\n.mdi-maps-directions:before {\n  content: \"\\e872\";\n}\n\n.mdi-maps-flight:before {\n  content: \"\\e873\";\n}\n\n.mdi-maps-hotel:before {\n  content: \"\\e874\";\n}\n\n.mdi-maps-layers-clear:before {\n  content: \"\\e875\";\n}\n\n.mdi-maps-layers:before {\n  content: \"\\e876\";\n}\n\n.mdi-maps-local-airport:before {\n  content: \"\\e877\";\n}\n\n.mdi-maps-local-atm:before {\n  content: \"\\e878\";\n}\n\n.mdi-maps-local-attraction:before {\n  content: \"\\e879\";\n}\n\n.mdi-maps-local-bar:before {\n  content: \"\\e87a\";\n}\n\n.mdi-maps-local-cafe:before {\n  content: \"\\e87b\";\n}\n\n.mdi-maps-local-car-wash:before {\n  content: \"\\e87c\";\n}\n\n.mdi-maps-local-convenience-store:before {\n  content: \"\\e87d\";\n}\n\n.mdi-maps-local-drink:before {\n  content: \"\\e87e\";\n}\n\n.mdi-maps-local-florist:before {\n  content: \"\\e87f\";\n}\n\n.mdi-maps-local-gas-station:before {\n  content: \"\\e880\";\n}\n\n.mdi-maps-local-grocery-store:before {\n  content: \"\\e881\";\n}\n\n.mdi-maps-local-hospital:before {\n  content: \"\\e882\";\n}\n\n.mdi-maps-local-hotel:before {\n  content: \"\\e883\";\n}\n\n.mdi-maps-local-laundry-service:before {\n  content: \"\\e884\";\n}\n\n.mdi-maps-local-library:before {\n  content: \"\\e885\";\n}\n\n.mdi-maps-local-mall:before {\n  content: \"\\e886\";\n}\n\n.mdi-maps-local-movies:before {\n  content: \"\\e887\";\n}\n\n.mdi-maps-local-offer:before {\n  content: \"\\e888\";\n}\n\n.mdi-maps-local-parking:before {\n  content: \"\\e889\";\n}\n\n.mdi-maps-local-pharmacy:before {\n  content: \"\\e88a\";\n}\n\n.mdi-maps-local-phone:before {\n  content: \"\\e88b\";\n}\n\n.mdi-maps-local-pizza:before {\n  content: \"\\e88c\";\n}\n\n.mdi-maps-local-play:before {\n  content: \"\\e88d\";\n}\n\n.mdi-maps-local-post-office:before {\n  content: \"\\e88e\";\n}\n\n.mdi-maps-local-print-shop:before {\n  content: \"\\e88f\";\n}\n\n.mdi-maps-local-restaurant:before {\n  content: \"\\e890\";\n}\n\n.mdi-maps-local-see:before {\n  content: \"\\e891\";\n}\n\n.mdi-maps-local-shipping:before {\n  content: \"\\e892\";\n}\n\n.mdi-maps-local-taxi:before {\n  content: \"\\e893\";\n}\n\n.mdi-maps-location-history:before {\n  content: \"\\e894\";\n}\n\n.mdi-maps-map:before {\n  content: \"\\e895\";\n}\n\n.mdi-maps-my-location:before {\n  content: \"\\e896\";\n}\n\n.mdi-maps-navigation:before {\n  content: \"\\e897\";\n}\n\n.mdi-maps-pin-drop:before {\n  content: \"\\e898\";\n}\n\n.mdi-maps-place:before {\n  content: \"\\e899\";\n}\n\n.mdi-maps-rate-review:before {\n  content: \"\\e89a\";\n}\n\n.mdi-maps-restaurant-menu:before {\n  content: \"\\e89b\";\n}\n\n.mdi-maps-satellite:before {\n  content: \"\\e89c\";\n}\n\n.mdi-maps-store-mall-directory:before {\n  content: \"\\e89d\";\n}\n\n.mdi-maps-terrain:before {\n  content: \"\\e89e\";\n}\n\n.mdi-maps-traffic:before {\n  content: \"\\e89f\";\n}\n\n.mdi-navigation-apps:before {\n  content: \"\\e8a0\";\n}\n\n.mdi-navigation-arrow-back:before {\n  content: \"\\e8a1\";\n}\n\n.mdi-navigation-arrow-drop-down-circle:before {\n  content: \"\\e8a2\";\n}\n\n.mdi-navigation-arrow-drop-down:before {\n  content: \"\\e8a3\";\n}\n\n.mdi-navigation-arrow-drop-up:before {\n  content: \"\\e8a4\";\n}\n\n.mdi-navigation-arrow-forward:before {\n  content: \"\\e8a5\";\n}\n\n.mdi-navigation-cancel:before {\n  content: \"\\e8a6\";\n}\n\n.mdi-navigation-check:before {\n  content: \"\\e8a7\";\n}\n\n.mdi-navigation-chevron-left:before {\n  content: \"\\e8a8\";\n}\n\n.mdi-navigation-chevron-right:before {\n  content: \"\\e8a9\";\n}\n\n.mdi-navigation-close:before {\n  content: \"\\e8aa\";\n}\n\n.mdi-navigation-expand-less:before {\n  content: \"\\e8ab\";\n}\n\n.mdi-navigation-expand-more:before {\n  content: \"\\e8ac\";\n}\n\n.mdi-navigation-fullscreen-exit:before {\n  content: \"\\e8ad\";\n}\n\n.mdi-navigation-fullscreen:before {\n  content: \"\\e8ae\";\n}\n\n.mdi-navigation-menu:before {\n  content: \"\\e8af\";\n}\n\n.mdi-navigation-more-horiz:before {\n  content: \"\\e8b0\";\n}\n\n.mdi-navigation-more-vert:before {\n  content: \"\\e8b1\";\n}\n\n.mdi-navigation-refresh:before {\n  content: \"\\e8b2\";\n}\n\n.mdi-navigation-unfold-less:before {\n  content: \"\\e8b3\";\n}\n\n.mdi-navigation-unfold-more:before {\n  content: \"\\e8b4\";\n}\n\n.mdi-notification-adb:before {\n  content: \"\\e8b5\";\n}\n\n.mdi-notification-bluetooth-audio:before {\n  content: \"\\e8b6\";\n}\n\n.mdi-notification-disc-full:before {\n  content: \"\\e8b7\";\n}\n\n.mdi-notification-dnd-forwardslash:before {\n  content: \"\\e8b8\";\n}\n\n.mdi-notification-do-not-disturb:before {\n  content: \"\\e8b9\";\n}\n\n.mdi-notification-drive-eta:before {\n  content: \"\\e8ba\";\n}\n\n.mdi-notification-event-available:before {\n  content: \"\\e8bb\";\n}\n\n.mdi-notification-event-busy:before {\n  content: \"\\e8bc\";\n}\n\n.mdi-notification-event-note:before {\n  content: \"\\e8bd\";\n}\n\n.mdi-notification-folder-special:before {\n  content: \"\\e8be\";\n}\n\n.mdi-notification-mms:before {\n  content: \"\\e8bf\";\n}\n\n.mdi-notification-more:before {\n  content: \"\\e8c0\";\n}\n\n.mdi-notification-network-locked:before {\n  content: \"\\e8c1\";\n}\n\n.mdi-notification-phone-bluetooth-speaker:before {\n  content: \"\\e8c2\";\n}\n\n.mdi-notification-phone-forwarded:before {\n  content: \"\\e8c3\";\n}\n\n.mdi-notification-phone-in-talk:before {\n  content: \"\\e8c4\";\n}\n\n.mdi-notification-phone-locked:before {\n  content: \"\\e8c5\";\n}\n\n.mdi-notification-phone-missed:before {\n  content: \"\\e8c6\";\n}\n\n.mdi-notification-phone-paused:before {\n  content: \"\\e8c7\";\n}\n\n.mdi-notification-play-download:before {\n  content: \"\\e8c8\";\n}\n\n.mdi-notification-play-install:before {\n  content: \"\\e8c9\";\n}\n\n.mdi-notification-sd-card:before {\n  content: \"\\e8ca\";\n}\n\n.mdi-notification-sim-card-alert:before {\n  content: \"\\e8cb\";\n}\n\n.mdi-notification-sms-failed:before {\n  content: \"\\e8cc\";\n}\n\n.mdi-notification-sms:before {\n  content: \"\\e8cd\";\n}\n\n.mdi-notification-sync-disabled:before {\n  content: \"\\e8ce\";\n}\n\n.mdi-notification-sync-problem:before {\n  content: \"\\e8cf\";\n}\n\n.mdi-notification-sync:before {\n  content: \"\\e8d0\";\n}\n\n.mdi-notification-system-update:before {\n  content: \"\\e8d1\";\n}\n\n.mdi-notification-tap-and-play:before {\n  content: \"\\e8d2\";\n}\n\n.mdi-notification-time-to-leave:before {\n  content: \"\\e8d3\";\n}\n\n.mdi-notification-vibration:before {\n  content: \"\\e8d4\";\n}\n\n.mdi-notification-voice-chat:before {\n  content: \"\\e8d5\";\n}\n\n.mdi-notification-vpn-lock:before {\n  content: \"\\e8d6\";\n}\n\n.mdi-social-cake:before {\n  content: \"\\e8d7\";\n}\n\n.mdi-social-domain:before {\n  content: \"\\e8d8\";\n}\n\n.mdi-social-group-add:before {\n  content: \"\\e8d9\";\n}\n\n.mdi-social-group:before {\n  content: \"\\e8da\";\n}\n\n.mdi-social-location-city:before {\n  content: \"\\e8db\";\n}\n\n.mdi-social-mood:before {\n  content: \"\\e8dc\";\n}\n\n.mdi-social-notifications-none:before {\n  content: \"\\e8dd\";\n}\n\n.mdi-social-notifications-off:before {\n  content: \"\\e8de\";\n}\n\n.mdi-social-notifications-on:before {\n  content: \"\\e8df\";\n}\n\n.mdi-social-notifications-paused:before {\n  content: \"\\e8e0\";\n}\n\n.mdi-social-notifications:before {\n  content: \"\\e8e1\";\n}\n\n.mdi-social-pages:before {\n  content: \"\\e8e2\";\n}\n\n.mdi-social-party-mode:before {\n  content: \"\\e8e3\";\n}\n\n.mdi-social-people-outline:before {\n  content: \"\\e8e4\";\n}\n\n.mdi-social-people:before {\n  content: \"\\e8e5\";\n}\n\n.mdi-social-person-add:before {\n  content: \"\\e8e6\";\n}\n\n.mdi-social-person-outline:before {\n  content: \"\\e8e7\";\n}\n\n.mdi-social-person:before {\n  content: \"\\e8e8\";\n}\n\n.mdi-social-plus-one:before {\n  content: \"\\e8e9\";\n}\n\n.mdi-social-poll:before {\n  content: \"\\e8ea\";\n}\n\n.mdi-social-public:before {\n  content: \"\\e8eb\";\n}\n\n.mdi-social-school:before {\n  content: \"\\e8ec\";\n}\n\n.mdi-social-share:before {\n  content: \"\\e8ed\";\n}\n\n.mdi-social-whatshot:before {\n  content: \"\\e8ee\";\n}\n\n.mdi-toggle-check-box-outline-blank:before {\n  content: \"\\e8ef\";\n}\n\n.mdi-toggle-check-box:before {\n  content: \"\\e8f0\";\n}\n\n.mdi-toggle-radio-button-off:before {\n  content: \"\\e8f1\";\n}\n\n.mdi-toggle-radio-button-on:before {\n  content: \"\\e8f2\";\n}\n\n.mdi-toggle-star-half:before {\n  content: \"\\e8f3\";\n}\n\n.mdi-toggle-star-outline:before {\n  content: \"\\e8f4\";\n}\n\n.mdi-toggle-star:before {\n  content: \"\\e8f5\";\n}\n\n.container {\n  margin: 0 auto;\n  max-width: 1280px;\n  width: 90%;\n}\n\n@media only screen and (min-width: 601px) {\n  .container {\n    width: 85%;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  .container {\n    width: 70%;\n  }\n}\n\n.container .row {\n  margin-left: -0.75rem;\n  margin-right: -0.75rem;\n}\n\n.section {\n  padding-top: 1rem;\n  padding-bottom: 1rem;\n}\n\n.section.no-pad {\n  padding: 0;\n}\n\n.section.no-pad-bot {\n  padding-bottom: 0;\n}\n\n.section.no-pad-top {\n  padding-top: 0;\n}\n\n.row {\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 20px;\n}\n\n.row:after {\n  content: \"\";\n  display: table;\n  clear: both;\n}\n\n.row .col {\n  float: left;\n  box-sizing: border-box;\n  padding: 0 0.75rem;\n}\n\n.row .col[class*=\"push-\"], .row .col[class*=\"pull-\"] {\n  position: relative;\n}\n\n.row .col.s1 {\n  width: 8.3333333333%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s2 {\n  width: 16.6666666667%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s3 {\n  width: 25%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s4 {\n  width: 33.3333333333%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s5 {\n  width: 41.6666666667%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s6 {\n  width: 50%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s7 {\n  width: 58.3333333333%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s8 {\n  width: 66.6666666667%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s9 {\n  width: 75%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s10 {\n  width: 83.3333333333%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s11 {\n  width: 91.6666666667%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s12 {\n  width: 100%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.offset-s1 {\n  margin-left: 8.3333333333%;\n}\n\n.row .col.pull-s1 {\n  right: 8.3333333333%;\n}\n\n.row .col.push-s1 {\n  left: 8.3333333333%;\n}\n\n.row .col.offset-s2 {\n  margin-left: 16.6666666667%;\n}\n\n.row .col.pull-s2 {\n  right: 16.6666666667%;\n}\n\n.row .col.push-s2 {\n  left: 16.6666666667%;\n}\n\n.row .col.offset-s3 {\n  margin-left: 25%;\n}\n\n.row .col.pull-s3 {\n  right: 25%;\n}\n\n.row .col.push-s3 {\n  left: 25%;\n}\n\n.row .col.offset-s4 {\n  margin-left: 33.3333333333%;\n}\n\n.row .col.pull-s4 {\n  right: 33.3333333333%;\n}\n\n.row .col.push-s4 {\n  left: 33.3333333333%;\n}\n\n.row .col.offset-s5 {\n  margin-left: 41.6666666667%;\n}\n\n.row .col.pull-s5 {\n  right: 41.6666666667%;\n}\n\n.row .col.push-s5 {\n  left: 41.6666666667%;\n}\n\n.row .col.offset-s6 {\n  margin-left: 50%;\n}\n\n.row .col.pull-s6 {\n  right: 50%;\n}\n\n.row .col.push-s6 {\n  left: 50%;\n}\n\n.row .col.offset-s7 {\n  margin-left: 58.3333333333%;\n}\n\n.row .col.pull-s7 {\n  right: 58.3333333333%;\n}\n\n.row .col.push-s7 {\n  left: 58.3333333333%;\n}\n\n.row .col.offset-s8 {\n  margin-left: 66.6666666667%;\n}\n\n.row .col.pull-s8 {\n  right: 66.6666666667%;\n}\n\n.row .col.push-s8 {\n  left: 66.6666666667%;\n}\n\n.row .col.offset-s9 {\n  margin-left: 75%;\n}\n\n.row .col.pull-s9 {\n  right: 75%;\n}\n\n.row .col.push-s9 {\n  left: 75%;\n}\n\n.row .col.offset-s10 {\n  margin-left: 83.3333333333%;\n}\n\n.row .col.pull-s10 {\n  right: 83.3333333333%;\n}\n\n.row .col.push-s10 {\n  left: 83.3333333333%;\n}\n\n.row .col.offset-s11 {\n  margin-left: 91.6666666667%;\n}\n\n.row .col.pull-s11 {\n  right: 91.6666666667%;\n}\n\n.row .col.push-s11 {\n  left: 91.6666666667%;\n}\n\n.row .col.offset-s12 {\n  margin-left: 100%;\n}\n\n.row .col.pull-s12 {\n  right: 100%;\n}\n\n.row .col.push-s12 {\n  left: 100%;\n}\n\n@media only screen and (min-width: 601px) {\n  .row .col.m1 {\n    width: 8.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m2 {\n    width: 16.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m3 {\n    width: 25%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m4 {\n    width: 33.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m5 {\n    width: 41.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m6 {\n    width: 50%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m7 {\n    width: 58.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m8 {\n    width: 66.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m9 {\n    width: 75%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m10 {\n    width: 83.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m11 {\n    width: 91.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m12 {\n    width: 100%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.offset-m1 {\n    margin-left: 8.3333333333%;\n  }\n  .row .col.pull-m1 {\n    right: 8.3333333333%;\n  }\n  .row .col.push-m1 {\n    left: 8.3333333333%;\n  }\n  .row .col.offset-m2 {\n    margin-left: 16.6666666667%;\n  }\n  .row .col.pull-m2 {\n    right: 16.6666666667%;\n  }\n  .row .col.push-m2 {\n    left: 16.6666666667%;\n  }\n  .row .col.offset-m3 {\n    margin-left: 25%;\n  }\n  .row .col.pull-m3 {\n    right: 25%;\n  }\n  .row .col.push-m3 {\n    left: 25%;\n  }\n  .row .col.offset-m4 {\n    margin-left: 33.3333333333%;\n  }\n  .row .col.pull-m4 {\n    right: 33.3333333333%;\n  }\n  .row .col.push-m4 {\n    left: 33.3333333333%;\n  }\n  .row .col.offset-m5 {\n    margin-left: 41.6666666667%;\n  }\n  .row .col.pull-m5 {\n    right: 41.6666666667%;\n  }\n  .row .col.push-m5 {\n    left: 41.6666666667%;\n  }\n  .row .col.offset-m6 {\n    margin-left: 50%;\n  }\n  .row .col.pull-m6 {\n    right: 50%;\n  }\n  .row .col.push-m6 {\n    left: 50%;\n  }\n  .row .col.offset-m7 {\n    margin-left: 58.3333333333%;\n  }\n  .row .col.pull-m7 {\n    right: 58.3333333333%;\n  }\n  .row .col.push-m7 {\n    left: 58.3333333333%;\n  }\n  .row .col.offset-m8 {\n    margin-left: 66.6666666667%;\n  }\n  .row .col.pull-m8 {\n    right: 66.6666666667%;\n  }\n  .row .col.push-m8 {\n    left: 66.6666666667%;\n  }\n  .row .col.offset-m9 {\n    margin-left: 75%;\n  }\n  .row .col.pull-m9 {\n    right: 75%;\n  }\n  .row .col.push-m9 {\n    left: 75%;\n  }\n  .row .col.offset-m10 {\n    margin-left: 83.3333333333%;\n  }\n  .row .col.pull-m10 {\n    right: 83.3333333333%;\n  }\n  .row .col.push-m10 {\n    left: 83.3333333333%;\n  }\n  .row .col.offset-m11 {\n    margin-left: 91.6666666667%;\n  }\n  .row .col.pull-m11 {\n    right: 91.6666666667%;\n  }\n  .row .col.push-m11 {\n    left: 91.6666666667%;\n  }\n  .row .col.offset-m12 {\n    margin-left: 100%;\n  }\n  .row .col.pull-m12 {\n    right: 100%;\n  }\n  .row .col.push-m12 {\n    left: 100%;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  .row .col.l1 {\n    width: 8.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l2 {\n    width: 16.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l3 {\n    width: 25%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l4 {\n    width: 33.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l5 {\n    width: 41.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l6 {\n    width: 50%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l7 {\n    width: 58.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l8 {\n    width: 66.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l9 {\n    width: 75%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l10 {\n    width: 83.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l11 {\n    width: 91.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l12 {\n    width: 100%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.offset-l1 {\n    margin-left: 8.3333333333%;\n  }\n  .row .col.pull-l1 {\n    right: 8.3333333333%;\n  }\n  .row .col.push-l1 {\n    left: 8.3333333333%;\n  }\n  .row .col.offset-l2 {\n    margin-left: 16.6666666667%;\n  }\n  .row .col.pull-l2 {\n    right: 16.6666666667%;\n  }\n  .row .col.push-l2 {\n    left: 16.6666666667%;\n  }\n  .row .col.offset-l3 {\n    margin-left: 25%;\n  }\n  .row .col.pull-l3 {\n    right: 25%;\n  }\n  .row .col.push-l3 {\n    left: 25%;\n  }\n  .row .col.offset-l4 {\n    margin-left: 33.3333333333%;\n  }\n  .row .col.pull-l4 {\n    right: 33.3333333333%;\n  }\n  .row .col.push-l4 {\n    left: 33.3333333333%;\n  }\n  .row .col.offset-l5 {\n    margin-left: 41.6666666667%;\n  }\n  .row .col.pull-l5 {\n    right: 41.6666666667%;\n  }\n  .row .col.push-l5 {\n    left: 41.6666666667%;\n  }\n  .row .col.offset-l6 {\n    margin-left: 50%;\n  }\n  .row .col.pull-l6 {\n    right: 50%;\n  }\n  .row .col.push-l6 {\n    left: 50%;\n  }\n  .row .col.offset-l7 {\n    margin-left: 58.3333333333%;\n  }\n  .row .col.pull-l7 {\n    right: 58.3333333333%;\n  }\n  .row .col.push-l7 {\n    left: 58.3333333333%;\n  }\n  .row .col.offset-l8 {\n    margin-left: 66.6666666667%;\n  }\n  .row .col.pull-l8 {\n    right: 66.6666666667%;\n  }\n  .row .col.push-l8 {\n    left: 66.6666666667%;\n  }\n  .row .col.offset-l9 {\n    margin-left: 75%;\n  }\n  .row .col.pull-l9 {\n    right: 75%;\n  }\n  .row .col.push-l9 {\n    left: 75%;\n  }\n  .row .col.offset-l10 {\n    margin-left: 83.3333333333%;\n  }\n  .row .col.pull-l10 {\n    right: 83.3333333333%;\n  }\n  .row .col.push-l10 {\n    left: 83.3333333333%;\n  }\n  .row .col.offset-l11 {\n    margin-left: 91.6666666667%;\n  }\n  .row .col.pull-l11 {\n    right: 91.6666666667%;\n  }\n  .row .col.push-l11 {\n    left: 91.6666666667%;\n  }\n  .row .col.offset-l12 {\n    margin-left: 100%;\n  }\n  .row .col.pull-l12 {\n    right: 100%;\n  }\n  .row .col.push-l12 {\n    left: 100%;\n  }\n}\n\nnav {\n  color: #fff;\n  background-color: #ee6e73;\n  width: 100%;\n  height: 56px;\n  line-height: 56px;\n}\n\nnav a {\n  color: #fff;\n}\n\nnav i,\nnav [class^=\"mdi-\"], nav [class*=\"mdi-\"],\nnav i.material-icons {\n  display: block;\n  font-size: 2rem;\n  height: 56px;\n  line-height: 56px;\n}\n\nnav .nav-wrapper {\n  position: relative;\n  height: 100%;\n}\n\n@media only screen and (min-width: 993px) {\n  nav a.button-collapse {\n    display: none;\n  }\n}\n\nnav .button-collapse {\n  float: left;\n  position: relative;\n  z-index: 1;\n  height: 56px;\n}\n\nnav .button-collapse i {\n  font-size: 2.7rem;\n  height: 56px;\n  line-height: 56px;\n}\n\nnav .brand-logo {\n  position: absolute;\n  color: #fff;\n  display: inline-block;\n  font-size: 2.1rem;\n  padding: 0;\n  white-space: nowrap;\n}\n\nnav .brand-logo.center {\n  left: 50%;\n  -webkit-transform: translateX(-50%);\n          transform: translateX(-50%);\n}\n\n@media only screen and (max-width: 992px) {\n  nav .brand-logo {\n    left: 50%;\n    -webkit-transform: translateX(-50%);\n            transform: translateX(-50%);\n  }\n  nav .brand-logo.left, nav .brand-logo.right {\n    padding: 0;\n    -webkit-transform: none;\n            transform: none;\n  }\n  nav .brand-logo.left {\n    left: 0.5rem;\n  }\n  nav .brand-logo.right {\n    right: 0.5rem;\n    left: auto;\n  }\n}\n\nnav .brand-logo.right {\n  right: 0.5rem;\n  padding: 0;\n}\n\nnav ul {\n  margin: 0;\n}\n\nnav ul li {\n  transition: background-color .3s;\n  float: left;\n  padding: 0;\n}\n\nnav ul li.active {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\nnav ul a {\n  transition: background-color .3s;\n  font-size: 1rem;\n  color: #fff;\n  display: block;\n  padding: 0 15px;\n  cursor: pointer;\n}\n\nnav ul a.btn, nav ul a.btn-large, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {\n  margin-top: -2px;\n  margin-left: 15px;\n  margin-right: 15px;\n}\n\nnav ul a:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\nnav ul.left {\n  float: left;\n}\n\nnav .input-field {\n  margin: 0;\n}\n\nnav .input-field input {\n  height: 100%;\n  font-size: 1.2rem;\n  border: none;\n  padding-left: 2rem;\n}\n\nnav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid {\n  border: none;\n  box-shadow: none;\n}\n\nnav .input-field label {\n  top: 0;\n  left: 0;\n}\n\nnav .input-field label i {\n  color: rgba(255, 255, 255, 0.7);\n  transition: color .3s;\n}\n\nnav .input-field label.active i {\n  color: #fff;\n}\n\nnav .input-field label.active {\n  -webkit-transform: translateY(0);\n          transform: translateY(0);\n}\n\n.navbar-fixed {\n  position: relative;\n  height: 56px;\n  z-index: 998;\n}\n\n.navbar-fixed nav {\n  position: fixed;\n}\n\n@media only screen and (min-width: 601px) {\n  nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i {\n    height: 64px;\n    line-height: 64px;\n  }\n  .navbar-fixed {\n    height: 64px;\n  }\n}\n\n@font-face {\n  font-family: \"Roboto\";\n  src: local(Roboto Thin), url(\"../font/roboto/Roboto-Thin.eot\");\n  src: url(\"../font/roboto/Roboto-Thin.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/roboto/Roboto-Thin.woff2\") format(\"woff2\"), url(\"../font/roboto/Roboto-Thin.woff\") format(\"woff\"), url(\"../font/roboto/Roboto-Thin.ttf\") format(\"truetype\");\n  font-weight: 200;\n}\n\n@font-face {\n  font-family: \"Roboto\";\n  src: local(Roboto Light), url(\"../font/roboto/Roboto-Light.eot\");\n  src: url(\"../font/roboto/Roboto-Light.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/roboto/Roboto-Light.woff2\") format(\"woff2\"), url(\"../font/roboto/Roboto-Light.woff\") format(\"woff\"), url(\"../font/roboto/Roboto-Light.ttf\") format(\"truetype\");\n  font-weight: 300;\n}\n\n@font-face {\n  font-family: \"Roboto\";\n  src: local(Roboto Regular), url(\"../font/roboto/Roboto-Regular.eot\");\n  src: url(\"../font/roboto/Roboto-Regular.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/roboto/Roboto-Regular.woff2\") format(\"woff2\"), url(\"../font/roboto/Roboto-Regular.woff\") format(\"woff\"), url(\"../font/roboto/Roboto-Regular.ttf\") format(\"truetype\");\n  font-weight: 400;\n}\n\n@font-face {\n  font-family: \"Roboto\";\n  src: url(\"../font/roboto/Roboto-Medium.eot\");\n  src: url(\"../font/roboto/Roboto-Medium.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/roboto/Roboto-Medium.woff2\") format(\"woff2\"), url(\"../font/roboto/Roboto-Medium.woff\") format(\"woff\"), url(\"../font/roboto/Roboto-Medium.ttf\") format(\"truetype\");\n  font-weight: 500;\n}\n\n@font-face {\n  font-family: \"Roboto\";\n  src: url(\"../font/roboto/Roboto-Bold.eot\");\n  src: url(\"../font/roboto/Roboto-Bold.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/roboto/Roboto-Bold.woff2\") format(\"woff2\"), url(\"../font/roboto/Roboto-Bold.woff\") format(\"woff\"), url(\"../font/roboto/Roboto-Bold.ttf\") format(\"truetype\");\n  font-weight: 700;\n}\n\na {\n  text-decoration: none;\n}\n\nhtml {\n  line-height: 1.5;\n  font-family: \"Roboto\", sans-serif;\n  font-weight: normal;\n  color: rgba(0, 0, 0, 0.87);\n}\n\n@media only screen and (min-width: 0) {\n  html {\n    font-size: 14px;\n  }\n}\n\n@media only screen and (min-width: 992px) {\n  html {\n    font-size: 14.5px;\n  }\n}\n\n@media only screen and (min-width: 1200px) {\n  html {\n    font-size: 15px;\n  }\n}\n\nh1, h2, h3, h4, h5, h6 {\n  font-weight: 400;\n  line-height: 1.1;\n}\n\nh1 a, h2 a, h3 a, h4 a, h5 a, h6 a {\n  font-weight: inherit;\n}\n\nh1 {\n  font-size: 4.2rem;\n  line-height: 110%;\n  margin: 2.1rem 0 1.68rem 0;\n}\n\nh2 {\n  font-size: 3.56rem;\n  line-height: 110%;\n  margin: 1.78rem 0 1.424rem 0;\n}\n\nh3 {\n  font-size: 2.92rem;\n  line-height: 110%;\n  margin: 1.46rem 0 1.168rem 0;\n}\n\nh4 {\n  font-size: 2.28rem;\n  line-height: 110%;\n  margin: 1.14rem 0 0.912rem 0;\n}\n\nh5 {\n  font-size: 1.64rem;\n  line-height: 110%;\n  margin: 0.82rem 0 0.656rem 0;\n}\n\nh6 {\n  font-size: 1rem;\n  line-height: 110%;\n  margin: 0.5rem 0 0.4rem 0;\n}\n\nem {\n  font-style: italic;\n}\n\nstrong {\n  font-weight: 500;\n}\n\nsmall {\n  font-size: 75%;\n}\n\n.light, footer.page-footer .footer-copyright {\n  font-weight: 300;\n}\n\n.thin {\n  font-weight: 200;\n}\n\n.flow-text {\n  font-weight: 300;\n}\n\n@media only screen and (min-width: 360px) {\n  .flow-text {\n    font-size: 1.2rem;\n  }\n}\n\n@media only screen and (min-width: 390px) {\n  .flow-text {\n    font-size: 1.224rem;\n  }\n}\n\n@media only screen and (min-width: 420px) {\n  .flow-text {\n    font-size: 1.248rem;\n  }\n}\n\n@media only screen and (min-width: 450px) {\n  .flow-text {\n    font-size: 1.272rem;\n  }\n}\n\n@media only screen and (min-width: 480px) {\n  .flow-text {\n    font-size: 1.296rem;\n  }\n}\n\n@media only screen and (min-width: 510px) {\n  .flow-text {\n    font-size: 1.32rem;\n  }\n}\n\n@media only screen and (min-width: 540px) {\n  .flow-text {\n    font-size: 1.344rem;\n  }\n}\n\n@media only screen and (min-width: 570px) {\n  .flow-text {\n    font-size: 1.368rem;\n  }\n}\n\n@media only screen and (min-width: 600px) {\n  .flow-text {\n    font-size: 1.392rem;\n  }\n}\n\n@media only screen and (min-width: 630px) {\n  .flow-text {\n    font-size: 1.416rem;\n  }\n}\n\n@media only screen and (min-width: 660px) {\n  .flow-text {\n    font-size: 1.44rem;\n  }\n}\n\n@media only screen and (min-width: 690px) {\n  .flow-text {\n    font-size: 1.464rem;\n  }\n}\n\n@media only screen and (min-width: 720px) {\n  .flow-text {\n    font-size: 1.488rem;\n  }\n}\n\n@media only screen and (min-width: 750px) {\n  .flow-text {\n    font-size: 1.512rem;\n  }\n}\n\n@media only screen and (min-width: 780px) {\n  .flow-text {\n    font-size: 1.536rem;\n  }\n}\n\n@media only screen and (min-width: 810px) {\n  .flow-text {\n    font-size: 1.56rem;\n  }\n}\n\n@media only screen and (min-width: 840px) {\n  .flow-text {\n    font-size: 1.584rem;\n  }\n}\n\n@media only screen and (min-width: 870px) {\n  .flow-text {\n    font-size: 1.608rem;\n  }\n}\n\n@media only screen and (min-width: 900px) {\n  .flow-text {\n    font-size: 1.632rem;\n  }\n}\n\n@media only screen and (min-width: 930px) {\n  .flow-text {\n    font-size: 1.656rem;\n  }\n}\n\n@media only screen and (min-width: 960px) {\n  .flow-text {\n    font-size: 1.68rem;\n  }\n}\n\n@media only screen and (max-width: 360px) {\n  .flow-text {\n    font-size: 1.2rem;\n  }\n}\n\n.card-panel {\n  transition: box-shadow .25s;\n  padding: 20px;\n  margin: 0.5rem 0 1rem 0;\n  border-radius: 2px;\n  background-color: #fff;\n}\n\n.card {\n  position: relative;\n  margin: 0.5rem 0 1rem 0;\n  background-color: #fff;\n  transition: box-shadow .25s;\n  border-radius: 2px;\n}\n\n.card .card-title {\n  font-size: 24px;\n  font-weight: 300;\n}\n\n.card .card-title.activator {\n  cursor: pointer;\n}\n\n.card.small, .card.medium, .card.large {\n  position: relative;\n}\n\n.card.small .card-image, .card.medium .card-image, .card.large .card-image {\n  max-height: 60%;\n  overflow: hidden;\n}\n\n.card.small .card-content, .card.medium .card-content, .card.large .card-content {\n  max-height: 40%;\n  overflow: hidden;\n}\n\n.card.small .card-action, .card.medium .card-action, .card.large .card-action {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  z-index: 1;\n  background-color: inherit;\n}\n\n.card.small {\n  height: 300px;\n}\n\n.card.medium {\n  height: 400px;\n}\n\n.card.large {\n  height: 500px;\n}\n\n.card .card-image {\n  position: relative;\n}\n\n.card .card-image img {\n  display: block;\n  border-radius: 2px 2px 0 0;\n  position: relative;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n  width: 100%;\n}\n\n.card .card-image .card-title {\n  color: #fff;\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  padding: 20px;\n}\n\n.card .card-content {\n  padding: 20px;\n  border-radius: 0 0 2px 2px;\n}\n\n.card .card-content p {\n  margin: 0;\n  color: inherit;\n}\n\n.card .card-content .card-title {\n  line-height: 48px;\n}\n\n.card .card-action {\n  border-top: 1px solid rgba(160, 160, 160, 0.2);\n  padding: 20px;\n}\n\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating) {\n  color: #ffab40;\n  margin-right: 20px;\n  transition: color .3s ease;\n  text-transform: uppercase;\n}\n\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating):hover {\n  color: #ffd8a6;\n}\n\n.card .card-reveal {\n  padding: 20px;\n  position: absolute;\n  background-color: #fff;\n  width: 100%;\n  overflow-y: auto;\n  top: 100%;\n  height: 100%;\n  z-index: 1;\n  display: none;\n}\n\n.card .card-reveal .card-title {\n  cursor: pointer;\n  display: block;\n}\n\n#toast-container {\n  display: block;\n  position: fixed;\n  z-index: 10000;\n}\n\n@media only screen and (max-width: 600px) {\n  #toast-container {\n    min-width: 100%;\n    bottom: 0%;\n  }\n}\n\n@media only screen and (min-width: 601px) and (max-width: 992px) {\n  #toast-container {\n    left: 5%;\n    bottom: 7%;\n    max-width: 90%;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  #toast-container {\n    top: 10%;\n    right: 7%;\n    max-width: 86%;\n  }\n}\n\n.toast {\n  border-radius: 2px;\n  top: 0;\n  width: auto;\n  clear: both;\n  margin-top: 10px;\n  position: relative;\n  max-width: 100%;\n  height: auto;\n  min-height: 48px;\n  line-height: 1.5em;\n  word-break: break-all;\n  background-color: #323232;\n  padding: 10px 25px;\n  font-size: 1.1rem;\n  font-weight: 300;\n  color: #fff;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n      -ms-flex-align: center;\n          align-items: center;\n  -webkit-justify-content: space-between;\n      -ms-flex-pack: justify;\n          justify-content: space-between;\n}\n\n.toast .btn, .toast .btn-large, .toast .btn-flat {\n  margin: 0;\n  margin-left: 3rem;\n}\n\n.toast.rounded {\n  border-radius: 24px;\n}\n\n@media only screen and (max-width: 600px) {\n  .toast {\n    width: 100%;\n    border-radius: 0;\n  }\n}\n\n@media only screen and (min-width: 601px) and (max-width: 992px) {\n  .toast {\n    float: left;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  .toast {\n    float: right;\n  }\n}\n\n.tabs {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  position: relative;\n  overflow-x: auto;\n  overflow-y: hidden;\n  height: 48px;\n  background-color: #fff;\n  margin: 0 auto;\n  width: 100%;\n  white-space: nowrap;\n}\n\n.tabs .tab {\n  -webkit-box-flex: 1;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  display: block;\n  float: left;\n  text-align: center;\n  line-height: 48px;\n  height: 48px;\n  padding: 0;\n  margin: 0;\n  text-transform: uppercase;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  letter-spacing: .8px;\n  width: 15%;\n  min-width: 80px;\n}\n\n.tabs .tab a {\n  color: #ee6e73;\n  display: block;\n  width: 100%;\n  height: 100%;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  transition: color .28s ease;\n}\n\n.tabs .tab a:hover {\n  color: #f9c9cb;\n}\n\n.tabs .tab.disabled a {\n  color: #f9c9cb;\n  cursor: default;\n}\n\n.tabs .indicator {\n  position: absolute;\n  bottom: 0;\n  height: 2px;\n  background-color: #f6b2b5;\n  will-change: left, right;\n}\n\n.material-tooltip {\n  padding: 10px 8px;\n  font-size: 1rem;\n  z-index: 2000;\n  background-color: transparent;\n  border-radius: 2px;\n  color: #fff;\n  min-height: 36px;\n  line-height: 120%;\n  opacity: 0;\n  display: none;\n  position: absolute;\n  text-align: center;\n  max-width: calc(100% - 4px);\n  overflow: hidden;\n  left: 0;\n  top: 0;\n  will-change: top, left;\n}\n\n.backdrop {\n  position: absolute;\n  opacity: 0;\n  display: none;\n  height: 7px;\n  width: 14px;\n  border-radius: 0 0 14px 14px;\n  background-color: #323232;\n  z-index: -1;\n  -webkit-transform-origin: 50% 10%;\n          transform-origin: 50% 10%;\n  will-change: transform, opacity;\n}\n\n.btn, .btn-large, .btn-flat {\n  border: none;\n  border-radius: 2px;\n  display: inline-block;\n  height: 36px;\n  line-height: 36px;\n  outline: 0;\n  padding: 0 2rem;\n  text-transform: uppercase;\n  vertical-align: middle;\n  -webkit-tap-highlight-color: transparent;\n}\n\n.btn.disabled, .disabled.btn-large, .btn-floating.disabled, .btn-large.disabled, .btn:disabled, .btn-large:disabled, .btn-large:disabled, .btn-floating:disabled {\n  background-color: #DFDFDF !important;\n  box-shadow: none;\n  color: #9F9F9F !important;\n  cursor: default;\n}\n\n.btn.disabled *, .disabled.btn-large *, .btn-floating.disabled *, .btn-large.disabled *, .btn:disabled *, .btn-large:disabled *, .btn-large:disabled *, .btn-floating:disabled * {\n  pointer-events: none;\n}\n\n.btn.disabled:hover, .disabled.btn-large:hover, .btn-floating.disabled:hover, .btn-large.disabled:hover, .btn:disabled:hover, .btn-large:disabled:hover, .btn-large:disabled:hover, .btn-floating:disabled:hover {\n  background-color: #DFDFDF;\n  color: #9F9F9F;\n}\n\n.btn i, .btn-large i, .btn-floating i, .btn-large i, .btn-flat i {\n  font-size: 1.3rem;\n  line-height: inherit;\n}\n\n.btn, .btn-large {\n  text-decoration: none;\n  color: #fff;\n  background-color: #26a69a;\n  text-align: center;\n  letter-spacing: .5px;\n  transition: .2s ease-out;\n  cursor: pointer;\n}\n\n.btn:hover, .btn-large:hover {\n  background-color: #2bbbad;\n}\n\n.btn-floating {\n  display: inline-block;\n  color: #fff;\n  position: relative;\n  overflow: hidden;\n  z-index: 1;\n  width: 37px;\n  height: 37px;\n  line-height: 37px;\n  padding: 0;\n  background-color: #26a69a;\n  border-radius: 50%;\n  transition: .3s;\n  cursor: pointer;\n  vertical-align: middle;\n}\n\n.btn-floating i {\n  width: inherit;\n  display: inline-block;\n  text-align: center;\n  color: #fff;\n  font-size: 1.6rem;\n  line-height: 37px;\n}\n\n.btn-floating:hover {\n  background-color: #26a69a;\n}\n\n.btn-floating:before {\n  border-radius: 0;\n}\n\n.btn-floating.btn-large {\n  width: 55.5px;\n  height: 55.5px;\n}\n\n.btn-floating.btn-large i {\n  line-height: 55.5px;\n}\n\nbutton.btn-floating {\n  border: none;\n}\n\n.fixed-action-btn {\n  position: fixed;\n  right: 23px;\n  bottom: 23px;\n  padding-top: 15px;\n  margin-bottom: 0;\n  z-index: 998;\n}\n\n.fixed-action-btn.active ul {\n  visibility: visible;\n}\n\n.fixed-action-btn.horizontal {\n  padding: 0 0 0 15px;\n}\n\n.fixed-action-btn.horizontal ul {\n  text-align: right;\n  right: 64px;\n  top: 50%;\n  -webkit-transform: translateY(-50%);\n          transform: translateY(-50%);\n  height: 100%;\n  left: initial;\n  width: 500px;\n  /*width 100% only goes to width of button container */\n}\n\n.fixed-action-btn.horizontal ul li {\n  display: inline-block;\n  margin: 15px 15px 0 0;\n}\n\n.fixed-action-btn ul {\n  left: 0;\n  right: 0;\n  text-align: center;\n  position: absolute;\n  bottom: 64px;\n  margin: 0;\n  visibility: hidden;\n}\n\n.fixed-action-btn ul li {\n  margin-bottom: 15px;\n}\n\n.fixed-action-btn ul a.btn-floating {\n  opacity: 0;\n}\n\n.btn-flat {\n  box-shadow: none;\n  background-color: transparent;\n  color: #343434;\n  cursor: pointer;\n}\n\n.btn-flat.disabled {\n  color: #b3b3b3;\n  cursor: default;\n}\n\n.btn-large {\n  height: 54px;\n  line-height: 56px;\n}\n\n.btn-large i {\n  font-size: 1.6rem;\n}\n\n.btn-block {\n  display: block;\n}\n\n.dropdown-content {\n  background-color: #fff;\n  margin: 0;\n  display: none;\n  min-width: 100px;\n  max-height: 650px;\n  overflow-y: auto;\n  opacity: 0;\n  position: absolute;\n  z-index: 999;\n  will-change: width, height;\n}\n\n.dropdown-content li {\n  clear: both;\n  color: rgba(0, 0, 0, 0.87);\n  cursor: pointer;\n  min-height: 50px;\n  line-height: 1.5rem;\n  width: 100%;\n  text-align: left;\n  text-transform: none;\n}\n\n.dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected {\n  background-color: #eee;\n}\n\n.dropdown-content li.active.selected {\n  background-color: #e1e1e1;\n}\n\n.dropdown-content li.divider {\n  min-height: 0;\n  height: 1px;\n}\n\n.dropdown-content li > a, .dropdown-content li > span {\n  font-size: 16px;\n  color: #26a69a;\n  display: block;\n  line-height: 22px;\n  padding: 14px 16px;\n}\n\n.dropdown-content li > span > label {\n  top: 1px;\n  left: 3px;\n  height: 18px;\n}\n\n.dropdown-content li > a > i {\n  height: inherit;\n  line-height: inherit;\n}\n\n/*!\n * Waves v0.6.0\n * http://fian.my.id/Waves\n *\n * Copyright 2014 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE\n */\n.waves-effect {\n  position: relative;\n  cursor: pointer;\n  display: inline-block;\n  overflow: hidden;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  -webkit-tap-highlight-color: transparent;\n  vertical-align: middle;\n  z-index: 1;\n  will-change: opacity, transform;\n  transition: all .3s ease-out;\n}\n\n.waves-effect .waves-ripple {\n  position: absolute;\n  border-radius: 50%;\n  width: 20px;\n  height: 20px;\n  margin-top: -10px;\n  margin-left: -10px;\n  opacity: 0;\n  background: rgba(0, 0, 0, 0.2);\n  transition: all 0.7s ease-out;\n  transition-property: opacity, -webkit-transform;\n  transition-property: transform, opacity;\n  transition-property: transform, opacity, -webkit-transform;\n  -webkit-transform: scale(0);\n          transform: scale(0);\n  pointer-events: none;\n}\n\n.waves-effect.waves-light .waves-ripple {\n  background-color: rgba(255, 255, 255, 0.45);\n}\n\n.waves-effect.waves-red .waves-ripple {\n  background-color: rgba(244, 67, 54, 0.7);\n}\n\n.waves-effect.waves-yellow .waves-ripple {\n  background-color: rgba(255, 235, 59, 0.7);\n}\n\n.waves-effect.waves-orange .waves-ripple {\n  background-color: rgba(255, 152, 0, 0.7);\n}\n\n.waves-effect.waves-purple .waves-ripple {\n  background-color: rgba(156, 39, 176, 0.7);\n}\n\n.waves-effect.waves-green .waves-ripple {\n  background-color: rgba(76, 175, 80, 0.7);\n}\n\n.waves-effect.waves-teal .waves-ripple {\n  background-color: rgba(0, 150, 136, 0.7);\n}\n\n.waves-effect input[type=\"button\"], .waves-effect input[type=\"reset\"], .waves-effect input[type=\"submit\"] {\n  border: 0;\n  font-style: normal;\n  font-size: inherit;\n  text-transform: inherit;\n  background: none;\n}\n\n.waves-notransition {\n  transition: none !important;\n}\n\n.waves-circle {\n  -webkit-transform: translateZ(0);\n          transform: translateZ(0);\n  -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n\n.waves-input-wrapper {\n  border-radius: 0.2em;\n  vertical-align: bottom;\n}\n\n.waves-input-wrapper .waves-button-input {\n  position: relative;\n  top: 0;\n  left: 0;\n  z-index: 1;\n}\n\n.waves-circle {\n  text-align: center;\n  width: 2.5em;\n  height: 2.5em;\n  line-height: 2.5em;\n  border-radius: 50%;\n  -webkit-mask-image: none;\n}\n\n.waves-block {\n  display: block;\n}\n\n/* Firefox Bug: link not triggered */\na.waves-effect .waves-ripple {\n  z-index: -1;\n}\n\n.modal {\n  display: none;\n  position: fixed;\n  left: 0;\n  right: 0;\n  background-color: #fafafa;\n  padding: 0;\n  max-height: 70%;\n  width: 55%;\n  margin: auto;\n  overflow-y: auto;\n  border-radius: 2px;\n  will-change: top, opacity;\n}\n\n@media only screen and (max-width: 992px) {\n  .modal {\n    width: 80%;\n  }\n}\n\n.modal h1, .modal h2, .modal h3, .modal h4 {\n  margin-top: 0;\n}\n\n.modal .modal-content {\n  padding: 24px;\n}\n\n.modal .modal-close {\n  cursor: pointer;\n}\n\n.modal .modal-footer {\n  border-radius: 0 0 2px 2px;\n  background-color: #fafafa;\n  padding: 4px 6px;\n  height: 56px;\n  width: 100%;\n}\n\n.modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {\n  float: right;\n  margin: 6px 0;\n}\n\n.lean-overlay {\n  position: fixed;\n  z-index: 999;\n  top: -100px;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  height: 125%;\n  width: 100%;\n  background: #000;\n  display: none;\n  will-change: opacity;\n}\n\n.modal.modal-fixed-footer {\n  padding: 0;\n  height: 70%;\n}\n\n.modal.modal-fixed-footer .modal-content {\n  position: absolute;\n  height: calc(100% - 56px);\n  max-height: 100%;\n  width: 100%;\n  overflow-y: auto;\n}\n\n.modal.modal-fixed-footer .modal-footer {\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n  position: absolute;\n  bottom: 0;\n}\n\n.modal.bottom-sheet {\n  top: auto;\n  bottom: -100%;\n  margin: 0;\n  width: 100%;\n  max-height: 45%;\n  border-radius: 0;\n  will-change: bottom, opacity;\n}\n\n.collapsible {\n  border-top: 1px solid #ddd;\n  border-right: 1px solid #ddd;\n  border-left: 1px solid #ddd;\n  margin: 0.5rem 0 1rem 0;\n}\n\n.collapsible-header {\n  display: block;\n  cursor: pointer;\n  min-height: 3rem;\n  line-height: 3rem;\n  padding: 0 1rem;\n  background-color: #fff;\n  border-bottom: 1px solid #ddd;\n}\n\n.collapsible-header i {\n  width: 2rem;\n  font-size: 1.6rem;\n  line-height: 3rem;\n  display: block;\n  float: left;\n  text-align: center;\n  margin-right: 1rem;\n}\n\n.collapsible-body {\n  display: none;\n  border-bottom: 1px solid #ddd;\n  box-sizing: border-box;\n}\n\n.collapsible-body p {\n  margin: 0;\n  padding: 2rem;\n}\n\n.side-nav .collapsible {\n  border: none;\n  box-shadow: none;\n}\n\n.side-nav .collapsible li {\n  padding: 0;\n}\n\n.side-nav .collapsible-header {\n  background-color: transparent;\n  border: none;\n  line-height: inherit;\n  height: inherit;\n  margin: 0 1rem;\n}\n\n.side-nav .collapsible-header i {\n  line-height: inherit;\n}\n\n.side-nav .collapsible-body {\n  border: 0;\n  background-color: #fff;\n}\n\n.side-nav .collapsible-body li a {\n  margin: 0 1rem 0 2rem;\n}\n\n.collapsible.popout {\n  border: none;\n  box-shadow: none;\n}\n\n.collapsible.popout > li {\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n  margin: 0 24px;\n  transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n\n.collapsible.popout > li.active {\n  box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n  margin: 16px 0;\n}\n\n.chip {\n  display: inline-block;\n  height: 32px;\n  font-size: 13px;\n  font-weight: 500;\n  color: rgba(0, 0, 0, 0.6);\n  line-height: 32px;\n  padding: 0 12px;\n  border-radius: 16px;\n  background-color: #e4e4e4;\n}\n\n.chip img {\n  float: left;\n  margin: 0 8px 0 -12px;\n  height: 32px;\n  width: 32px;\n  border-radius: 50%;\n}\n\n.chip i.material-icons {\n  cursor: pointer;\n  float: right;\n  font-size: 16px;\n  line-height: 32px;\n  padding-left: 8px;\n}\n\n.materialboxed {\n  display: block;\n  cursor: -webkit-zoom-in;\n  cursor: zoom-in;\n  position: relative;\n  transition: opacity .4s;\n}\n\n.materialboxed:hover {\n  will-change: left, top, width, height;\n}\n\n.materialboxed:hover:not(.active) {\n  opacity: .8;\n}\n\n.materialboxed.active {\n  cursor: -webkit-zoom-out;\n  cursor: zoom-out;\n}\n\n#materialbox-overlay {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background-color: #292929;\n  z-index: 999;\n  will-change: opacity;\n}\n\n.materialbox-caption {\n  position: fixed;\n  display: none;\n  color: #fff;\n  line-height: 50px;\n  bottom: 0;\n  width: 100%;\n  text-align: center;\n  padding: 0% 15%;\n  height: 50px;\n  z-index: 1000;\n  -webkit-font-smoothing: antialiased;\n}\n\n/* Remove Focus Boxes */\nselect:focus {\n  outline: 1px solid #c9f3ef;\n}\n\nbutton:focus {\n  outline: none;\n  background-color: #2ab7a9;\n}\n\nlabel {\n  font-size: 0.8rem;\n  color: #9e9e9e;\n}\n\n/***************************\n   Text Inputs + Textarea\n****************************/\n::-webkit-input-placeholder {\n  color: #d1d1d1;\n}\n\n:-moz-placeholder {\n  /* Firefox 18- */\n  color: #d1d1d1;\n}\n\n::-moz-placeholder {\n  /* Firefox 19+ */\n  color: #d1d1d1;\n}\n\n:-ms-input-placeholder {\n  color: #d1d1d1;\n}\n\ninput:not([type]),\ninput[type=text],\ninput[type=password],\ninput[type=email],\ninput[type=url],\ninput[type=time],\ninput[type=date],\ninput[type=datetime-local],\ninput[type=tel],\ninput[type=number],\ninput[type=search],\ntextarea.materialize-textarea {\n  background-color: transparent;\n  border: none;\n  border-bottom: 1px solid #9e9e9e;\n  border-radius: 0;\n  outline: none;\n  height: 3rem;\n  width: 100%;\n  font-size: 1rem;\n  margin: 0 0 15px 0;\n  padding: 0;\n  box-shadow: none;\n  box-sizing: content-box;\n  transition: all .3s;\n}\n\ninput:not([type]):disabled, input:not([type])[readonly=\"readonly\"],\ninput[type=text]:disabled,\ninput[type=text][readonly=\"readonly\"],\ninput[type=password]:disabled,\ninput[type=password][readonly=\"readonly\"],\ninput[type=email]:disabled,\ninput[type=email][readonly=\"readonly\"],\ninput[type=url]:disabled,\ninput[type=url][readonly=\"readonly\"],\ninput[type=time]:disabled,\ninput[type=time][readonly=\"readonly\"],\ninput[type=date]:disabled,\ninput[type=date][readonly=\"readonly\"],\ninput[type=datetime-local]:disabled,\ninput[type=datetime-local][readonly=\"readonly\"],\ninput[type=tel]:disabled,\ninput[type=tel][readonly=\"readonly\"],\ninput[type=number]:disabled,\ninput[type=number][readonly=\"readonly\"],\ninput[type=search]:disabled,\ninput[type=search][readonly=\"readonly\"],\ntextarea.materialize-textarea:disabled,\ntextarea.materialize-textarea[readonly=\"readonly\"] {\n  color: rgba(0, 0, 0, 0.26);\n  border-bottom: 1px dotted rgba(0, 0, 0, 0.26);\n}\n\ninput:not([type]):disabled + label, input:not([type])[readonly=\"readonly\"] + label,\ninput[type=text]:disabled + label,\ninput[type=text][readonly=\"readonly\"] + label,\ninput[type=password]:disabled + label,\ninput[type=password][readonly=\"readonly\"] + label,\ninput[type=email]:disabled + label,\ninput[type=email][readonly=\"readonly\"] + label,\ninput[type=url]:disabled + label,\ninput[type=url][readonly=\"readonly\"] + label,\ninput[type=time]:disabled + label,\ninput[type=time][readonly=\"readonly\"] + label,\ninput[type=date]:disabled + label,\ninput[type=date][readonly=\"readonly\"] + label,\ninput[type=datetime-local]:disabled + label,\ninput[type=datetime-local][readonly=\"readonly\"] + label,\ninput[type=tel]:disabled + label,\ninput[type=tel][readonly=\"readonly\"] + label,\ninput[type=number]:disabled + label,\ninput[type=number][readonly=\"readonly\"] + label,\ninput[type=search]:disabled + label,\ninput[type=search][readonly=\"readonly\"] + label,\ntextarea.materialize-textarea:disabled + label,\ntextarea.materialize-textarea[readonly=\"readonly\"] + label {\n  color: rgba(0, 0, 0, 0.26);\n}\n\ninput:not([type]):focus:not([readonly]),\ninput[type=text]:focus:not([readonly]),\ninput[type=password]:focus:not([readonly]),\ninput[type=email]:focus:not([readonly]),\ninput[type=url]:focus:not([readonly]),\ninput[type=time]:focus:not([readonly]),\ninput[type=date]:focus:not([readonly]),\ninput[type=datetime-local]:focus:not([readonly]),\ninput[type=tel]:focus:not([readonly]),\ninput[type=number]:focus:not([readonly]),\ninput[type=search]:focus:not([readonly]),\ntextarea.materialize-textarea:focus:not([readonly]) {\n  border-bottom: 1px solid #26a69a;\n  box-shadow: 0 1px 0 0 #26a69a;\n}\n\ninput:not([type]):focus:not([readonly]) + label,\ninput[type=text]:focus:not([readonly]) + label,\ninput[type=password]:focus:not([readonly]) + label,\ninput[type=email]:focus:not([readonly]) + label,\ninput[type=url]:focus:not([readonly]) + label,\ninput[type=time]:focus:not([readonly]) + label,\ninput[type=date]:focus:not([readonly]) + label,\ninput[type=datetime-local]:focus:not([readonly]) + label,\ninput[type=tel]:focus:not([readonly]) + label,\ninput[type=number]:focus:not([readonly]) + label,\ninput[type=search]:focus:not([readonly]) + label,\ntextarea.materialize-textarea:focus:not([readonly]) + label {\n  color: #26a69a;\n}\n\ninput:not([type]).valid, input:not([type]):focus.valid,\ninput[type=text].valid,\ninput[type=text]:focus.valid,\ninput[type=password].valid,\ninput[type=password]:focus.valid,\ninput[type=email].valid,\ninput[type=email]:focus.valid,\ninput[type=url].valid,\ninput[type=url]:focus.valid,\ninput[type=time].valid,\ninput[type=time]:focus.valid,\ninput[type=date].valid,\ninput[type=date]:focus.valid,\ninput[type=datetime-local].valid,\ninput[type=datetime-local]:focus.valid,\ninput[type=tel].valid,\ninput[type=tel]:focus.valid,\ninput[type=number].valid,\ninput[type=number]:focus.valid,\ninput[type=search].valid,\ninput[type=search]:focus.valid,\ntextarea.materialize-textarea.valid,\ntextarea.materialize-textarea:focus.valid {\n  border-bottom: 1px solid #4CAF50;\n  box-shadow: 0 1px 0 0 #4CAF50;\n}\n\ninput:not([type]).valid + label:after,\ninput:not([type]):focus.valid + label:after,\ninput[type=text].valid + label:after,\ninput[type=text]:focus.valid + label:after,\ninput[type=password].valid + label:after,\ninput[type=password]:focus.valid + label:after,\ninput[type=email].valid + label:after,\ninput[type=email]:focus.valid + label:after,\ninput[type=url].valid + label:after,\ninput[type=url]:focus.valid + label:after,\ninput[type=time].valid + label:after,\ninput[type=time]:focus.valid + label:after,\ninput[type=date].valid + label:after,\ninput[type=date]:focus.valid + label:after,\ninput[type=datetime-local].valid + label:after,\ninput[type=datetime-local]:focus.valid + label:after,\ninput[type=tel].valid + label:after,\ninput[type=tel]:focus.valid + label:after,\ninput[type=number].valid + label:after,\ninput[type=number]:focus.valid + label:after,\ninput[type=search].valid + label:after,\ninput[type=search]:focus.valid + label:after,\ntextarea.materialize-textarea.valid + label:after,\ntextarea.materialize-textarea:focus.valid + label:after {\n  content: attr(data-success);\n  color: #4CAF50;\n  opacity: 1;\n}\n\ninput:not([type]).invalid, input:not([type]):focus.invalid,\ninput[type=text].invalid,\ninput[type=text]:focus.invalid,\ninput[type=password].invalid,\ninput[type=password]:focus.invalid,\ninput[type=email].invalid,\ninput[type=email]:focus.invalid,\ninput[type=url].invalid,\ninput[type=url]:focus.invalid,\ninput[type=time].invalid,\ninput[type=time]:focus.invalid,\ninput[type=date].invalid,\ninput[type=date]:focus.invalid,\ninput[type=datetime-local].invalid,\ninput[type=datetime-local]:focus.invalid,\ninput[type=tel].invalid,\ninput[type=tel]:focus.invalid,\ninput[type=number].invalid,\ninput[type=number]:focus.invalid,\ninput[type=search].invalid,\ninput[type=search]:focus.invalid,\ntextarea.materialize-textarea.invalid,\ntextarea.materialize-textarea:focus.invalid {\n  border-bottom: 1px solid #F44336;\n  box-shadow: 0 1px 0 0 #F44336;\n}\n\ninput:not([type]).invalid + label:after,\ninput:not([type]):focus.invalid + label:after,\ninput[type=text].invalid + label:after,\ninput[type=text]:focus.invalid + label:after,\ninput[type=password].invalid + label:after,\ninput[type=password]:focus.invalid + label:after,\ninput[type=email].invalid + label:after,\ninput[type=email]:focus.invalid + label:after,\ninput[type=url].invalid + label:after,\ninput[type=url]:focus.invalid + label:after,\ninput[type=time].invalid + label:after,\ninput[type=time]:focus.invalid + label:after,\ninput[type=date].invalid + label:after,\ninput[type=date]:focus.invalid + label:after,\ninput[type=datetime-local].invalid + label:after,\ninput[type=datetime-local]:focus.invalid + label:after,\ninput[type=tel].invalid + label:after,\ninput[type=tel]:focus.invalid + label:after,\ninput[type=number].invalid + label:after,\ninput[type=number]:focus.invalid + label:after,\ninput[type=search].invalid + label:after,\ninput[type=search]:focus.invalid + label:after,\ntextarea.materialize-textarea.invalid + label:after,\ntextarea.materialize-textarea:focus.invalid + label:after {\n  content: attr(data-error);\n  color: #F44336;\n  opacity: 1;\n}\n\ninput:not([type]) + label:after,\ninput[type=text] + label:after,\ninput[type=password] + label:after,\ninput[type=email] + label:after,\ninput[type=url] + label:after,\ninput[type=time] + label:after,\ninput[type=date] + label:after,\ninput[type=datetime-local] + label:after,\ninput[type=tel] + label:after,\ninput[type=number] + label:after,\ninput[type=search] + label:after,\ntextarea.materialize-textarea + label:after {\n  display: block;\n  content: \"\";\n  position: absolute;\n  top: 65px;\n  opacity: 0;\n  transition: .2s opacity ease-out, .2s color ease-out;\n}\n\n.input-field {\n  position: relative;\n  margin-top: 1rem;\n}\n\n.input-field label {\n  color: #9e9e9e;\n  position: absolute;\n  top: 0.8rem;\n  left: 0.75rem;\n  font-size: 1rem;\n  cursor: text;\n  transition: .2s ease-out;\n}\n\n.input-field label.active {\n  font-size: 0.8rem;\n  -webkit-transform: translateY(-140%);\n          transform: translateY(-140%);\n}\n\n.input-field .prefix {\n  position: absolute;\n  width: 3rem;\n  font-size: 2rem;\n  transition: color .2s;\n}\n\n.input-field .prefix.active {\n  color: #26a69a;\n}\n\n.input-field .prefix ~ input,\n.input-field .prefix ~ textarea {\n  margin-left: 3rem;\n  width: 92%;\n  width: calc(100% - 3rem);\n}\n\n.input-field .prefix ~ textarea {\n  padding-top: .8rem;\n}\n\n.input-field .prefix ~ label {\n  margin-left: 3rem;\n}\n\n@media only screen and (max-width: 992px) {\n  .input-field .prefix ~ input {\n    width: 86%;\n    width: calc(100% - 3rem);\n  }\n}\n\n@media only screen and (max-width: 600px) {\n  .input-field .prefix ~ input {\n    width: 80%;\n    width: calc(100% - 3rem);\n  }\n}\n\n.input-field input[type=search] {\n  display: block;\n  line-height: inherit;\n  padding-left: 4rem;\n  width: calc(100% - 4rem);\n}\n\n.input-field input[type=search]:focus {\n  background-color: #fff;\n  border: 0;\n  box-shadow: none;\n  color: #444;\n}\n\n.input-field input[type=search]:focus + label i,\n.input-field input[type=search]:focus ~ .mdi-navigation-close,\n.input-field input[type=search]:focus ~ .material-icons {\n  color: #444;\n}\n\n.input-field input[type=search] + label {\n  left: 1rem;\n}\n\n.input-field input[type=search] ~ .mdi-navigation-close,\n.input-field input[type=search] ~ .material-icons {\n  position: absolute;\n  top: 0;\n  right: 1rem;\n  color: transparent;\n  cursor: pointer;\n  font-size: 2rem;\n  transition: .3s color;\n}\n\ntextarea {\n  width: 100%;\n  height: 3rem;\n  background-color: transparent;\n}\n\ntextarea.materialize-textarea {\n  overflow-y: hidden;\n  /* prevents scroll bar flash */\n  padding: 1.6rem 0;\n  /* prevents text jump on Enter keypress */\n  resize: none;\n  min-height: 3rem;\n}\n\n.hiddendiv {\n  display: none;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  overflow-wrap: break-word;\n  /* future version of deprecated 'word-wrap' */\n  padding-top: 1.2rem;\n  /* prevents text jump on Enter keypress */\n}\n\n/***************\n  Radio Buttons\n***************/\n/* Remove default Radio Buttons */\n[type=\"radio\"]:not(:checked),\n[type=\"radio\"]:checked {\n  position: absolute;\n  left: -9999px;\n  visibility: hidden;\n}\n\n[type=\"radio\"]:not(:checked) + label,\n[type=\"radio\"]:checked + label {\n  position: relative;\n  padding-left: 35px;\n  cursor: pointer;\n  display: inline-block;\n  height: 25px;\n  line-height: 25px;\n  font-size: 1rem;\n  transition: .28s ease;\n  /* webkit (konqueror) browsers */\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n}\n\n[type=\"radio\"] + label:before,\n[type=\"radio\"] + label:after {\n  content: '';\n  position: absolute;\n  left: 0;\n  top: 0;\n  margin: 4px;\n  width: 16px;\n  height: 16px;\n  z-index: 0;\n  transition: .28s ease;\n}\n\n/* Unchecked styles */\n[type=\"radio\"]:not(:checked) + label:before {\n  border-radius: 50%;\n  border: 2px solid #5a5a5a;\n}\n\n[type=\"radio\"]:not(:checked) + label:after {\n  border-radius: 50%;\n  border: 2px solid #5a5a5a;\n  z-index: -1;\n  -webkit-transform: scale(0);\n          transform: scale(0);\n}\n\n/* Checked styles */\n[type=\"radio\"]:checked + label:before {\n  border-radius: 50%;\n  border: 2px solid transparent;\n}\n\n[type=\"radio\"]:checked + label:after {\n  border-radius: 50%;\n  border: 2px solid #26a69a;\n  background-color: #26a69a;\n  z-index: 0;\n  -webkit-transform: scale(1.02);\n          transform: scale(1.02);\n}\n\n/* Radio With gap */\n[type=\"radio\"].with-gap:checked + label:before {\n  border-radius: 50%;\n  border: 2px solid #26a69a;\n}\n\n[type=\"radio\"].with-gap:checked + label:after {\n  border-radius: 50%;\n  border: 2px solid #26a69a;\n  background-color: #26a69a;\n  z-index: 0;\n  -webkit-transform: scale(0.5);\n          transform: scale(0.5);\n}\n\n/* Disabled Radio With gap */\n[type=\"radio\"].with-gap:disabled:checked + label:before {\n  border: 2px solid rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"].with-gap:disabled:checked + label:after {\n  border: none;\n  background-color: rgba(0, 0, 0, 0.26);\n}\n\n/* Disabled style */\n[type=\"radio\"]:disabled:not(:checked) + label:before,\n[type=\"radio\"]:disabled:checked + label:before {\n  background-color: transparent;\n  border-color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"]:disabled + label {\n  color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"]:disabled:not(:checked) + label:before {\n  border-color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"]:disabled:checked + label:after {\n  background-color: rgba(0, 0, 0, 0.26);\n  border-color: #BDBDBD;\n}\n\n/***************\n   Checkboxes\n***************/\n/* CUSTOM CSS CHECKBOXES */\nform p {\n  margin-bottom: 10px;\n  text-align: left;\n}\n\nform p:last-child {\n  margin-bottom: 0;\n}\n\n/* Remove default checkbox */\n[type=\"checkbox\"]:not(:checked),\n[type=\"checkbox\"]:checked {\n  position: absolute;\n  left: -9999px;\n  visibility: hidden;\n}\n\n[type=\"checkbox\"] {\n  /* checkbox aspect */\n}\n\n[type=\"checkbox\"] + label {\n  position: relative;\n  padding-left: 35px;\n  cursor: pointer;\n  display: inline-block;\n  height: 25px;\n  line-height: 25px;\n  font-size: 1rem;\n  -webkit-user-select: none;\n  /* webkit (safari, chrome) browsers */\n  -moz-user-select: none;\n  /* mozilla browsers */\n  -khtml-user-select: none;\n  /* webkit (konqueror) browsers */\n  -ms-user-select: none;\n  /* IE10+ */\n}\n\n[type=\"checkbox\"] + label:before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 18px;\n  height: 18px;\n  z-index: 0;\n  border: 2px solid #5a5a5a;\n  border-radius: 1px;\n  margin-top: 2px;\n  transition: .2s;\n}\n\n[type=\"checkbox\"]:not(:checked):disabled + label:before {\n  border: none;\n  background-color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"checkbox\"]:checked + label:before {\n  top: -4px;\n  left: -3px;\n  width: 12px;\n  height: 22px;\n  border-top: 2px solid transparent;\n  border-left: 2px solid transparent;\n  border-right: 2px solid #26a69a;\n  border-bottom: 2px solid #26a69a;\n  -webkit-transform: rotate(40deg);\n          transform: rotate(40deg);\n  -webkit-backface-visibility: hidden;\n          backface-visibility: hidden;\n  -webkit-transform-origin: 100% 100%;\n          transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"]:checked:disabled + label:before {\n  border-right: 2px solid rgba(0, 0, 0, 0.26);\n  border-bottom: 2px solid rgba(0, 0, 0, 0.26);\n}\n\n/* Indeterminate checkbox */\n[type=\"checkbox\"]:indeterminate + label:before {\n  left: -10px;\n  top: -11px;\n  width: 10px;\n  height: 22px;\n  border-top: none;\n  border-left: none;\n  border-right: 2px solid #26a69a;\n  border-bottom: none;\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg);\n  -webkit-backface-visibility: hidden;\n          backface-visibility: hidden;\n  -webkit-transform-origin: 100% 100%;\n          transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"]:indeterminate:disabled + label:before {\n  border-right: 2px solid rgba(0, 0, 0, 0.26);\n  background-color: transparent;\n}\n\n[type=\"checkbox\"].filled-in + label:after {\n  border-radius: 2px;\n}\n\n[type=\"checkbox\"].filled-in + label:before,\n[type=\"checkbox\"].filled-in + label:after {\n  content: '';\n  left: 0;\n  position: absolute;\n  /* .1s delay is for check animation */\n  transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;\n  z-index: 1;\n}\n\n[type=\"checkbox\"].filled-in:not(:checked) + label:before {\n  width: 0;\n  height: 0;\n  border: 3px solid transparent;\n  left: 6px;\n  top: 10px;\n  -webkit-transform: rotateZ(37deg);\n  transform: rotateZ(37deg);\n  -webkit-transform-origin: 20% 40%;\n  transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"].filled-in:not(:checked) + label:after {\n  height: 20px;\n  width: 20px;\n  background-color: transparent;\n  border: 2px solid #5a5a5a;\n  top: 0px;\n  z-index: 0;\n}\n\n[type=\"checkbox\"].filled-in:checked + label:before {\n  top: 0;\n  left: 1px;\n  width: 8px;\n  height: 13px;\n  border-top: 2px solid transparent;\n  border-left: 2px solid transparent;\n  border-right: 2px solid #fff;\n  border-bottom: 2px solid #fff;\n  -webkit-transform: rotateZ(37deg);\n  transform: rotateZ(37deg);\n  -webkit-transform-origin: 100% 100%;\n  transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"].filled-in:checked + label:after {\n  top: 0px;\n  width: 20px;\n  height: 20px;\n  border: 2px solid #26a69a;\n  background-color: #26a69a;\n  z-index: 0;\n}\n\n[type=\"checkbox\"].filled-in:disabled:not(:checked) + label:before {\n  background-color: transparent;\n  border: 2px solid transparent;\n}\n\n[type=\"checkbox\"].filled-in:disabled:not(:checked) + label:after {\n  border-color: transparent;\n  background-color: #BDBDBD;\n}\n\n[type=\"checkbox\"].filled-in:disabled:checked + label:before {\n  background-color: transparent;\n}\n\n[type=\"checkbox\"].filled-in:disabled:checked + label:after {\n  background-color: #BDBDBD;\n  border-color: #BDBDBD;\n}\n\n/***************\n     Switch\n***************/\n.switch,\n.switch * {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -khtml-user-select: none;\n  -ms-user-select: none;\n}\n\n.switch label {\n  cursor: pointer;\n}\n\n.switch label input[type=checkbox] {\n  opacity: 0;\n  width: 0;\n  height: 0;\n}\n\n.switch label input[type=checkbox]:checked + .lever {\n  background-color: #84c7c1;\n}\n\n.switch label input[type=checkbox]:checked + .lever:after {\n  background-color: #26a69a;\n}\n\n.switch label .lever {\n  content: \"\";\n  display: inline-block;\n  position: relative;\n  width: 40px;\n  height: 15px;\n  background-color: #818181;\n  border-radius: 15px;\n  margin-right: 10px;\n  transition: background 0.3s ease;\n  vertical-align: middle;\n  margin: 0 16px;\n}\n\n.switch label .lever:after {\n  content: \"\";\n  position: absolute;\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  background-color: #F1F1F1;\n  border-radius: 21px;\n  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);\n  left: -5px;\n  top: -3px;\n  transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease;\n}\n\ninput[type=checkbox]:checked:not(:disabled) ~ .lever:active:after {\n  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1);\n}\n\ninput[type=checkbox]:not(:disabled) ~ .lever:active:after {\n  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08);\n}\n\n.switch label input[type=checkbox]:checked + .lever:after {\n  left: 24px;\n}\n\n.switch input[type=checkbox][disabled] + .lever {\n  cursor: default;\n}\n\n.switch label input[type=checkbox][disabled] + .lever:after,\n.switch label input[type=checkbox][disabled]:checked + .lever:after {\n  background-color: #BDBDBD;\n}\n\n/***************\n  Select Field\n***************/\n.select-label {\n  position: absolute;\n}\n\n.select-wrapper {\n  position: relative;\n}\n\n.select-wrapper input.select-dropdown {\n  position: relative;\n  cursor: pointer;\n  background-color: transparent;\n  border: none;\n  border-bottom: 1px solid #9e9e9e;\n  outline: none;\n  height: 3rem;\n  line-height: 3rem;\n  width: 100%;\n  font-size: 1rem;\n  margin: 0 0 15px 0;\n  padding: 0;\n  display: block;\n}\n\n.select-wrapper span.caret {\n  color: initial;\n  position: absolute;\n  right: 0;\n  top: 16px;\n  font-size: 10px;\n}\n\n.select-wrapper span.caret.disabled {\n  color: rgba(0, 0, 0, 0.26);\n}\n\n.select-wrapper + label {\n  position: absolute;\n  top: -14px;\n  font-size: 0.8rem;\n}\n\nselect {\n  display: none;\n}\n\nselect.browser-default {\n  display: block;\n}\n\nselect:disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.select-wrapper input.select-dropdown:disabled {\n  color: rgba(0, 0, 0, 0.3);\n  cursor: default;\n  -webkit-user-select: none;\n  /* webkit (safari, chrome) browsers */\n  -moz-user-select: none;\n  /* mozilla browsers */\n  -ms-user-select: none;\n  /* IE10+ */\n  border-bottom: 1px solid rgba(0, 0, 0, 0.3);\n}\n\n.select-wrapper i {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.select-dropdown li.disabled,\n.select-dropdown li.disabled > span,\n.select-dropdown li.optgroup {\n  color: rgba(0, 0, 0, 0.3);\n  background-color: transparent;\n}\n\n.select-dropdown li img {\n  height: 40px;\n  width: 40px;\n  margin: 5px 15px;\n  float: right;\n}\n\n.select-dropdown li.optgroup {\n  border-top: 1px solid #eee;\n}\n\n.select-dropdown li.optgroup.selected > span {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.select-dropdown li.optgroup > span {\n  color: rgba(0, 0, 0, 0.4);\n}\n\n.select-dropdown li.optgroup ~ li:not(.optgroup) {\n  padding-left: 1rem;\n}\n\n/*********************\n      File Input\n**********************/\n.file-field {\n  position: relative;\n}\n\n.file-field .file-path-wrapper {\n  overflow: hidden;\n  padding-left: 10px;\n}\n\n.file-field input.file-path {\n  width: 100%;\n}\n\n.file-field .btn, .file-field .btn-large {\n  float: left;\n  height: 3rem;\n  line-height: 3rem;\n}\n\n.file-field span {\n  cursor: pointer;\n}\n\n.file-field input[type=file] {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  bottom: 0;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n  font-size: 20px;\n  cursor: pointer;\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n\n/***************\n      Range\n***************/\n.range-field {\n  position: relative;\n}\n\ninput[type=range], input[type=range] + .thumb {\n  cursor: pointer;\n}\n\ninput[type=range] {\n  position: relative;\n  background-color: transparent;\n  border: none;\n  outline: none;\n  width: 100%;\n  margin: 15px 0px;\n  padding: 0;\n}\n\ninput[type=range] + .thumb {\n  position: absolute;\n  border: none;\n  height: 0;\n  width: 0;\n  border-radius: 50%;\n  background-color: #26a69a;\n  top: 10px;\n  margin-left: -6px;\n  -webkit-transform-origin: 50% 50%;\n          transform-origin: 50% 50%;\n  -webkit-transform: rotate(-45deg);\n          transform: rotate(-45deg);\n}\n\ninput[type=range] + .thumb .value {\n  display: block;\n  width: 30px;\n  text-align: center;\n  color: #26a69a;\n  font-size: 0;\n  -webkit-transform: rotate(45deg);\n          transform: rotate(45deg);\n}\n\ninput[type=range] + .thumb.active {\n  border-radius: 50% 50% 50% 0;\n}\n\ninput[type=range] + .thumb.active .value {\n  color: #fff;\n  margin-left: -1px;\n  margin-top: 8px;\n  font-size: 10px;\n}\n\ninput[type=range]:focus {\n  outline: none;\n}\n\ninput[type=range] {\n  -webkit-appearance: none;\n}\n\ninput[type=range]::-webkit-slider-runnable-track {\n  height: 3px;\n  background: #c2c0c2;\n  border: none;\n}\n\ninput[type=range]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  border: none;\n  height: 14px;\n  width: 14px;\n  border-radius: 50%;\n  background-color: #26a69a;\n  -webkit-transform-origin: 50% 50%;\n          transform-origin: 50% 50%;\n  margin: -5px 0 0 0;\n  transition: .3s;\n}\n\ninput[type=range]:focus::-webkit-slider-runnable-track {\n  background: #ccc;\n}\n\ninput[type=range] {\n  /* fix for FF unable to apply focus style bug  */\n  border: 1px solid white;\n  /*required for proper track sizing in FF*/\n}\n\ninput[type=range]::-moz-range-track {\n  height: 3px;\n  background: #ddd;\n  border: none;\n}\n\ninput[type=range]::-moz-range-thumb {\n  border: none;\n  height: 14px;\n  width: 14px;\n  border-radius: 50%;\n  background: #26a69a;\n  margin-top: -5px;\n}\n\n/*hide the outline behind the border*/\ninput[type=range]:-moz-focusring {\n  outline: 1px solid white;\n  outline-offset: -1px;\n}\n\ninput[type=range]:focus::-moz-range-track {\n  background: #ccc;\n}\n\ninput[type=range]::-ms-track {\n  height: 3px;\n  /*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */\n  background: transparent;\n  /*leave room for the larger thumb to overflow with a transparent border */\n  border-color: transparent;\n  border-width: 6px 0;\n  /*remove default tick marks*/\n  color: transparent;\n}\n\ninput[type=range]::-ms-fill-lower {\n  background: #777;\n}\n\ninput[type=range]::-ms-fill-upper {\n  background: #ddd;\n}\n\ninput[type=range]::-ms-thumb {\n  border: none;\n  height: 14px;\n  width: 14px;\n  border-radius: 50%;\n  background: #26a69a;\n}\n\ninput[type=range]:focus::-ms-fill-lower {\n  background: #888;\n}\n\ninput[type=range]:focus::-ms-fill-upper {\n  background: #ccc;\n}\n\n/***************************\n   Text Inputs + Textarea\n****************************/\nselect {\n  background-color: rgba(255, 255, 255, 0.9);\n  width: 100%;\n  padding: 5px;\n  border: 1px solid #f2f2f2;\n  border-radius: 2px;\n  height: 3rem;\n}\n\n/***************\n    Nav List\n***************/\n.table-of-contents.fixed {\n  position: fixed;\n}\n\n.table-of-contents li {\n  padding: 2px 0;\n}\n\n.table-of-contents a {\n  display: inline-block;\n  font-weight: 300;\n  color: #757575;\n  padding-left: 20px;\n  height: 1.5rem;\n  line-height: 1.5rem;\n  letter-spacing: .4;\n  display: inline-block;\n}\n\n.table-of-contents a:hover {\n  color: #a8a8a8;\n  padding-left: 19px;\n  border-left: 1px solid #ea4a4f;\n}\n\n.table-of-contents a.active {\n  font-weight: 500;\n  padding-left: 18px;\n  border-left: 2px solid #ea4a4f;\n}\n\n.side-nav {\n  position: fixed;\n  width: 240px;\n  left: -105%;\n  top: 0;\n  margin: 0;\n  height: 100%;\n  height: calc(100% + 60px);\n  height: -moz-calc(100%);\n  padding-bottom: 60px;\n  background-color: #fff;\n  z-index: 999;\n  overflow-y: auto;\n  will-change: left;\n}\n\n.side-nav.right-aligned {\n  will-change: right;\n  right: -105%;\n  left: auto;\n}\n\n.side-nav .collapsible {\n  margin: 0;\n}\n\n.side-nav li {\n  float: none;\n  padding: 0 15px;\n  line-height: 64px;\n}\n\n.side-nav li:hover, .side-nav li.active {\n  background-color: #ddd;\n}\n\n.side-nav a {\n  color: #444;\n  display: block;\n  font-size: 1rem;\n  height: 64px;\n  line-height: 64px;\n  padding: 0 15px;\n}\n\n.drag-target {\n  height: 100%;\n  width: 10px;\n  position: fixed;\n  top: 0;\n  z-index: 998;\n}\n\n.side-nav.fixed a {\n  display: block;\n  padding: 0 15px;\n  color: #444;\n}\n\n.side-nav.fixed {\n  left: 0;\n  position: fixed;\n}\n\n.side-nav.fixed.right-aligned {\n  right: 0;\n  left: auto;\n}\n\n@media only screen and (max-width: 992px) {\n  .side-nav.fixed {\n    left: -105%;\n  }\n  .side-nav.fixed.right-aligned {\n    right: -105%;\n    left: auto;\n  }\n}\n\n.side-nav .collapsible-body li.active,\n.side-nav.fixed .collapsible-body li.active {\n  background-color: #ee6e73;\n}\n\n.side-nav .collapsible-body li.active a,\n.side-nav.fixed .collapsible-body li.active a {\n  color: #fff;\n}\n\n#sidenav-overlay {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  height: 120vh;\n  background-color: rgba(0, 0, 0, 0.5);\n  z-index: 997;\n  will-change: opacity;\n}\n\n/*\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n    Code distributed by Google as part of the polymer project is also\n    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n/**************************/\n/* STYLES FOR THE SPINNER */\n/**************************/\n/*\n * Constants:\n *      STROKEWIDTH = 3px\n *      ARCSIZE     = 270 degrees (amount of circle the arc takes up)\n *      ARCTIME     = 1333ms (time it takes to expand and contract arc)\n *      ARCSTARTROT = 216 degrees (how much the start location of the arc\n *                                should rotate each time, 216 gives us a\n *                                5 pointed star shape (it's 360/5 * 3).\n *                                For a 7 pointed star, we might do\n *                                360/7 * 3 = 154.286)\n *      CONTAINERWIDTH = 28px\n *      SHRINK_TIME = 400ms\n */\n.preloader-wrapper {\n  display: inline-block;\n  position: relative;\n  width: 48px;\n  height: 48px;\n}\n\n.preloader-wrapper.small {\n  width: 36px;\n  height: 36px;\n}\n\n.preloader-wrapper.big {\n  width: 64px;\n  height: 64px;\n}\n\n.preloader-wrapper.active {\n  /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */\n  -webkit-animation: container-rotate 1568ms linear infinite;\n  animation: container-rotate 1568ms linear infinite;\n}\n\n@-webkit-keyframes container-rotate {\n  to {\n    -webkit-transform: rotate(360deg);\n  }\n}\n\n@keyframes container-rotate {\n  to {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg);\n  }\n}\n\n.spinner-layer {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  opacity: 0;\n  border-color: #26a69a;\n}\n\n.spinner-blue,\n.spinner-blue-only {\n  border-color: #4285f4;\n}\n\n.spinner-red,\n.spinner-red-only {\n  border-color: #db4437;\n}\n\n.spinner-yellow,\n.spinner-yellow-only {\n  border-color: #f4b400;\n}\n\n.spinner-green,\n.spinner-green-only {\n  border-color: #0f9d58;\n}\n\n/**\n * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):\n *\n * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't\n * guarantee that the animation will start _exactly_ after that value. So we avoid using\n * animation-delay and instead set custom keyframes for each color (as redundant as it\n * seems).\n *\n * We write out each animation in full (instead of separating animation-name,\n * animation-duration, etc.) because under the polyfill, Safari does not recognize those\n * specific properties properly, treats them as -webkit-animation, and overrides the\n * other animation rules. See https://github.com/Polymer/platform/issues/53.\n */\n.active .spinner-layer.spinner-blue {\n  /* durations: 4 * ARCTIME */\n  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-red {\n  /* durations: 4 * ARCTIME */\n  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-yellow {\n  /* durations: 4 * ARCTIME */\n  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-green {\n  /* durations: 4 * ARCTIME */\n  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer,\n.active .spinner-layer.spinner-blue-only,\n.active .spinner-layer.spinner-red-only,\n.active .spinner-layer.spinner-yellow-only,\n.active .spinner-layer.spinner-green-only {\n  /* durations: 4 * ARCTIME */\n  opacity: 1;\n  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes fill-unfill-rotate {\n  12.5% {\n    -webkit-transform: rotate(135deg);\n  }\n  /* 0.5 * ARCSIZE */\n  25% {\n    -webkit-transform: rotate(270deg);\n  }\n  /* 1   * ARCSIZE */\n  37.5% {\n    -webkit-transform: rotate(405deg);\n  }\n  /* 1.5 * ARCSIZE */\n  50% {\n    -webkit-transform: rotate(540deg);\n  }\n  /* 2   * ARCSIZE */\n  62.5% {\n    -webkit-transform: rotate(675deg);\n  }\n  /* 2.5 * ARCSIZE */\n  75% {\n    -webkit-transform: rotate(810deg);\n  }\n  /* 3   * ARCSIZE */\n  87.5% {\n    -webkit-transform: rotate(945deg);\n  }\n  /* 3.5 * ARCSIZE */\n  to {\n    -webkit-transform: rotate(1080deg);\n  }\n  /* 4   * ARCSIZE */\n}\n\n@keyframes fill-unfill-rotate {\n  12.5% {\n    -webkit-transform: rotate(135deg);\n            transform: rotate(135deg);\n  }\n  /* 0.5 * ARCSIZE */\n  25% {\n    -webkit-transform: rotate(270deg);\n            transform: rotate(270deg);\n  }\n  /* 1   * ARCSIZE */\n  37.5% {\n    -webkit-transform: rotate(405deg);\n            transform: rotate(405deg);\n  }\n  /* 1.5 * ARCSIZE */\n  50% {\n    -webkit-transform: rotate(540deg);\n            transform: rotate(540deg);\n  }\n  /* 2   * ARCSIZE */\n  62.5% {\n    -webkit-transform: rotate(675deg);\n            transform: rotate(675deg);\n  }\n  /* 2.5 * ARCSIZE */\n  75% {\n    -webkit-transform: rotate(810deg);\n            transform: rotate(810deg);\n  }\n  /* 3   * ARCSIZE */\n  87.5% {\n    -webkit-transform: rotate(945deg);\n            transform: rotate(945deg);\n  }\n  /* 3.5 * ARCSIZE */\n  to {\n    -webkit-transform: rotate(1080deg);\n            transform: rotate(1080deg);\n  }\n  /* 4   * ARCSIZE */\n}\n\n@-webkit-keyframes blue-fade-in-out {\n  from {\n    opacity: 1;\n  }\n  25% {\n    opacity: 1;\n  }\n  26% {\n    opacity: 0;\n  }\n  89% {\n    opacity: 0;\n  }\n  90% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 1;\n  }\n}\n\n@keyframes blue-fade-in-out {\n  from {\n    opacity: 1;\n  }\n  25% {\n    opacity: 1;\n  }\n  26% {\n    opacity: 0;\n  }\n  89% {\n    opacity: 0;\n  }\n  90% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes red-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  15% {\n    opacity: 0;\n  }\n  25% {\n    opacity: 1;\n  }\n  50% {\n    opacity: 1;\n  }\n  51% {\n    opacity: 0;\n  }\n}\n\n@keyframes red-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  15% {\n    opacity: 0;\n  }\n  25% {\n    opacity: 1;\n  }\n  50% {\n    opacity: 1;\n  }\n  51% {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes yellow-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  40% {\n    opacity: 0;\n  }\n  50% {\n    opacity: 1;\n  }\n  75% {\n    opacity: 1;\n  }\n  76% {\n    opacity: 0;\n  }\n}\n\n@keyframes yellow-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  40% {\n    opacity: 0;\n  }\n  50% {\n    opacity: 1;\n  }\n  75% {\n    opacity: 1;\n  }\n  76% {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes green-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  65% {\n    opacity: 0;\n  }\n  75% {\n    opacity: 1;\n  }\n  90% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n  }\n}\n\n@keyframes green-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  65% {\n    opacity: 0;\n  }\n  75% {\n    opacity: 1;\n  }\n  90% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n  }\n}\n\n/**\n * Patch the gap that appear between the two adjacent div.circle-clipper while the\n * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).\n */\n.gap-patch {\n  position: absolute;\n  top: 0;\n  left: 45%;\n  width: 10%;\n  height: 100%;\n  overflow: hidden;\n  border-color: inherit;\n}\n\n.gap-patch .circle {\n  width: 1000%;\n  left: -450%;\n}\n\n.circle-clipper {\n  display: inline-block;\n  position: relative;\n  width: 50%;\n  height: 100%;\n  overflow: hidden;\n  border-color: inherit;\n}\n\n.circle-clipper .circle {\n  width: 200%;\n  height: 100%;\n  border-width: 3px;\n  /* STROKEWIDTH */\n  border-style: solid;\n  border-color: inherit;\n  border-bottom-color: transparent !important;\n  border-radius: 50%;\n  -webkit-animation: none;\n  animation: none;\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.circle-clipper.left .circle {\n  left: 0;\n  border-right-color: transparent !important;\n  -webkit-transform: rotate(129deg);\n  transform: rotate(129deg);\n}\n\n.circle-clipper.right .circle {\n  left: -100%;\n  border-left-color: transparent !important;\n  -webkit-transform: rotate(-129deg);\n  transform: rotate(-129deg);\n}\n\n.active .circle-clipper.left .circle {\n  /* duration: ARCTIME */\n  -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .circle-clipper.right .circle {\n  /* duration: ARCTIME */\n  -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes left-spin {\n  from {\n    -webkit-transform: rotate(130deg);\n  }\n  50% {\n    -webkit-transform: rotate(-5deg);\n  }\n  to {\n    -webkit-transform: rotate(130deg);\n  }\n}\n\n@keyframes left-spin {\n  from {\n    -webkit-transform: rotate(130deg);\n            transform: rotate(130deg);\n  }\n  50% {\n    -webkit-transform: rotate(-5deg);\n            transform: rotate(-5deg);\n  }\n  to {\n    -webkit-transform: rotate(130deg);\n            transform: rotate(130deg);\n  }\n}\n\n@-webkit-keyframes right-spin {\n  from {\n    -webkit-transform: rotate(-130deg);\n  }\n  50% {\n    -webkit-transform: rotate(5deg);\n  }\n  to {\n    -webkit-transform: rotate(-130deg);\n  }\n}\n\n@keyframes right-spin {\n  from {\n    -webkit-transform: rotate(-130deg);\n            transform: rotate(-130deg);\n  }\n  50% {\n    -webkit-transform: rotate(5deg);\n            transform: rotate(5deg);\n  }\n  to {\n    -webkit-transform: rotate(-130deg);\n            transform: rotate(-130deg);\n  }\n}\n\n#spinnerContainer.cooldown {\n  /* duration: SHRINK_TIME */\n  -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n  animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@-webkit-keyframes fade-out {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fade-out {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n.slider {\n  position: relative;\n  height: 400px;\n  width: 100%;\n}\n\n.slider.fullscreen {\n  height: 100%;\n  width: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.slider.fullscreen ul.slides {\n  height: 100%;\n}\n\n.slider.fullscreen ul.indicators {\n  z-index: 2;\n  bottom: 30px;\n}\n\n.slider .slides {\n  background-color: #9e9e9e;\n  margin: 0;\n  height: 400px;\n}\n\n.slider .slides li {\n  opacity: 0;\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1;\n  width: 100%;\n  height: inherit;\n  overflow: hidden;\n}\n\n.slider .slides li img {\n  height: 100%;\n  width: 100%;\n  background-size: cover;\n  background-position: center;\n}\n\n.slider .slides li .caption {\n  color: #fff;\n  position: absolute;\n  top: 15%;\n  left: 15%;\n  width: 70%;\n  opacity: 0;\n}\n\n.slider .slides li .caption p {\n  color: #e0e0e0;\n}\n\n.slider .slides li.active {\n  z-index: 2;\n}\n\n.slider .indicators {\n  position: absolute;\n  text-align: center;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  margin: 0;\n}\n\n.slider .indicators .indicator-item {\n  display: inline-block;\n  position: relative;\n  cursor: pointer;\n  height: 16px;\n  width: 16px;\n  margin: 0 12px;\n  background-color: #e0e0e0;\n  transition: background-color .3s;\n  border-radius: 50%;\n}\n\n.slider .indicators .indicator-item.active {\n  background-color: #4CAF50;\n}\n\n.carousel {\n  overflow: hidden;\n  position: relative;\n  width: 100%;\n  height: 400px;\n  -webkit-perspective: 500px;\n          perspective: 500px;\n  -webkit-transform-style: preserve-3d;\n          transform-style: preserve-3d;\n  -webkit-transform-origin: 0% 50%;\n          transform-origin: 0% 50%;\n}\n\n.carousel .carousel-item {\n  width: 200px;\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\n.carousel .carousel-item img {\n  width: 100%;\n}\n\n.carousel.carousel-slider {\n  top: 0;\n  left: 0;\n  height: 0;\n}\n\n.carousel.carousel-slider .carousel-item {\n  width: 100%;\n  height: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\n/* ==========================================================================\n   $BASE-PICKER\n   ========================================================================== */\n/**\n * Note: the root picker element should *NOT* be styled more than what's here.\n */\n.picker {\n  font-size: 16px;\n  text-align: left;\n  line-height: 1.2;\n  color: #000000;\n  position: absolute;\n  z-index: 10000;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n/**\n * The picker input element.\n */\n.picker__input {\n  cursor: default;\n}\n\n/**\n * When the picker is opened, the input element is \"activated\".\n */\n.picker__input.picker__input--active {\n  border-color: #0089ec;\n}\n\n/**\n * The holder is the only \"scrollable\" top-level container element.\n */\n.picker__holder {\n  width: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/*!\n * Default mobile-first, responsive styling for pickadate.js\n * Demo: http://amsul.github.io/pickadate.js\n */\n/**\n * Note: the root picker element should *NOT* be styled more than what's here.\n */\n/**\n * Make the holder and frame fullscreen.\n */\n.picker__holder,\n.picker__frame {\n  bottom: 0;\n  left: 0;\n  right: 0;\n  top: 100%;\n}\n\n/**\n * The holder should overlay the entire screen.\n */\n.picker__holder {\n  position: fixed;\n  transition: background 0.15s ease-out, top 0s 0.15s;\n  -webkit-backface-visibility: hidden;\n}\n\n/**\n * The frame that bounds the box contents of the picker.\n */\n.picker__frame {\n  position: absolute;\n  margin: 0 auto;\n  min-width: 256px;\n  width: 300px;\n  max-height: 350px;\n  -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";\n  filter: alpha(opacity=0);\n  -moz-opacity: 0;\n  opacity: 0;\n  transition: all 0.15s ease-out;\n}\n\n@media (min-height: 28.875em) {\n  .picker__frame {\n    overflow: visible;\n    top: auto;\n    bottom: -100%;\n    max-height: 80%;\n  }\n}\n\n@media (min-height: 40.125em) {\n  .picker__frame {\n    margin-bottom: 7.5%;\n  }\n}\n\n/**\n * The wrapper sets the stage to vertically align the box contents.\n */\n.picker__wrap {\n  display: table;\n  width: 100%;\n  height: 100%;\n}\n\n@media (min-height: 28.875em) {\n  .picker__wrap {\n    display: block;\n  }\n}\n\n/**\n * The box contains all the picker contents.\n */\n.picker__box {\n  background: #ffffff;\n  display: table-cell;\n  vertical-align: middle;\n}\n\n@media (min-height: 28.875em) {\n  .picker__box {\n    display: block;\n    border: 1px solid #777777;\n    border-top-color: #898989;\n    border-bottom-width: 0;\n    border-radius: 5px 5px 0 0;\n    box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);\n  }\n}\n\n/**\n * When the picker opens...\n */\n.picker--opened .picker__holder {\n  top: 0;\n  background: transparent;\n  -ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)\";\n  zoom: 1;\n  background: rgba(0, 0, 0, 0.32);\n  transition: background 0.15s ease-out;\n}\n\n.picker--opened .picker__frame {\n  top: 0;\n  -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)\";\n  filter: alpha(opacity=100);\n  -moz-opacity: 1;\n  opacity: 1;\n}\n\n@media (min-height: 35.875em) {\n  .picker--opened .picker__frame {\n    top: 10%;\n    bottom: 20%auto;\n  }\n}\n\n/**\n * For `large` screens, transform into an inline picker.\n */\n/* ==========================================================================\n   CUSTOM MATERIALIZE STYLES\n   ========================================================================== */\n.picker__input.picker__input--active {\n  border-color: #E3F2FD;\n}\n\n.picker__frame {\n  margin: 0 auto;\n  max-width: 325px;\n}\n\n@media (min-height: 38.875em) {\n  .picker--opened .picker__frame {\n    top: 10%;\n    bottom: auto;\n  }\n}\n\n/* ==========================================================================\n   $BASE-DATE-PICKER\n   ========================================================================== */\n/**\n * The picker box.\n */\n.picker__box {\n  padding: 0 1em;\n}\n\n/**\n * The header containing the month and year stuff.\n */\n.picker__header {\n  text-align: center;\n  position: relative;\n  margin-top: .75em;\n}\n\n/**\n * The month and year labels.\n */\n.picker__month,\n.picker__year {\n  display: inline-block;\n  margin-left: .25em;\n  margin-right: .25em;\n}\n\n/**\n * The month and year selectors.\n */\n.picker__select--month,\n.picker__select--year {\n  height: 2em;\n  padding: 0;\n  margin-left: .25em;\n  margin-right: .25em;\n}\n\n.picker__select--month.browser-default {\n  display: inline;\n  background-color: #FFFFFF;\n  width: 40%;\n}\n\n.picker__select--year.browser-default {\n  display: inline;\n  background-color: #FFFFFF;\n  width: 25%;\n}\n\n.picker__select--month:focus,\n.picker__select--year:focus {\n  border-color: rgba(0, 0, 0, 0.05);\n}\n\n/**\n * The month navigation buttons.\n */\n.picker__nav--prev,\n.picker__nav--next {\n  position: absolute;\n  padding: .5em 1.25em;\n  width: 1em;\n  height: 1em;\n  box-sizing: content-box;\n  top: -0.25em;\n}\n\n.picker__nav--prev {\n  left: -1em;\n  padding-right: 1.25em;\n}\n\n.picker__nav--next {\n  right: -1em;\n  padding-left: 1.25em;\n}\n\n.picker__nav--disabled,\n.picker__nav--disabled:hover,\n.picker__nav--disabled:before,\n.picker__nav--disabled:before:hover {\n  cursor: default;\n  background: none;\n  border-right-color: #f5f5f5;\n  border-left-color: #f5f5f5;\n}\n\n/**\n * The calendar table of dates\n */\n.picker__table {\n  text-align: center;\n  border-collapse: collapse;\n  border-spacing: 0;\n  table-layout: fixed;\n  font-size: 1rem;\n  width: 100%;\n  margin-top: .75em;\n  margin-bottom: .5em;\n}\n\n.picker__table th, .picker__table td {\n  text-align: center;\n}\n\n.picker__table td {\n  margin: 0;\n  padding: 0;\n}\n\n/**\n * The weekday labels\n */\n.picker__weekday {\n  width: 14.285714286%;\n  font-size: .75em;\n  padding-bottom: .25em;\n  color: #999999;\n  font-weight: 500;\n  /* Increase the spacing a tad */\n}\n\n@media (min-height: 33.875em) {\n  .picker__weekday {\n    padding-bottom: .5em;\n  }\n}\n\n/**\n * The days on the calendar\n */\n.picker__day--today {\n  position: relative;\n  color: #595959;\n  letter-spacing: -.3;\n  padding: .75rem 0;\n  font-weight: 400;\n  border: 1px solid transparent;\n}\n\n.picker__day--disabled:before {\n  border-top-color: #aaaaaa;\n}\n\n.picker__day--infocus:hover {\n  cursor: pointer;\n  color: #000;\n  font-weight: 500;\n}\n\n.picker__day--outfocus {\n  display: none;\n  padding: .75rem 0;\n  color: #fff;\n}\n\n.picker__day--outfocus:hover {\n  cursor: pointer;\n  color: #dddddd;\n  font-weight: 500;\n}\n\n.picker__day--highlighted:hover,\n.picker--focused .picker__day--highlighted {\n  cursor: pointer;\n}\n\n.picker__day--selected,\n.picker__day--selected:hover,\n.picker--focused .picker__day--selected {\n  border-radius: 50%;\n  -webkit-transform: scale(0.75);\n          transform: scale(0.75);\n  background: #0089ec;\n  color: #ffffff;\n}\n\n.picker__day--disabled,\n.picker__day--disabled:hover,\n.picker--focused .picker__day--disabled {\n  background: #f5f5f5;\n  border-color: #f5f5f5;\n  color: #dddddd;\n  cursor: default;\n}\n\n.picker__day--highlighted.picker__day--disabled,\n.picker__day--highlighted.picker__day--disabled:hover {\n  background: #bbbbbb;\n}\n\n/**\n * The footer containing the \"today\", \"clear\", and \"close\" buttons.\n */\n.picker__footer {\n  text-align: center;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n      -ms-flex-align: center;\n          align-items: center;\n  -webkit-justify-content: space-between;\n      -ms-flex-pack: justify;\n          justify-content: space-between;\n}\n\n.picker__button--today,\n.picker__button--clear,\n.picker__button--close {\n  border: 1px solid #ffffff;\n  background: #ffffff;\n  font-size: .8em;\n  padding: .66em 0;\n  font-weight: bold;\n  width: 33%;\n  display: inline-block;\n  vertical-align: bottom;\n}\n\n.picker__button--today:hover,\n.picker__button--clear:hover,\n.picker__button--close:hover {\n  cursor: pointer;\n  color: #000000;\n  background: #b1dcfb;\n  border-bottom-color: #b1dcfb;\n}\n\n.picker__button--today:focus,\n.picker__button--clear:focus,\n.picker__button--close:focus {\n  background: #b1dcfb;\n  border-color: rgba(0, 0, 0, 0.05);\n  outline: none;\n}\n\n.picker__button--today:before,\n.picker__button--clear:before,\n.picker__button--close:before {\n  position: relative;\n  display: inline-block;\n  height: 0;\n}\n\n.picker__button--today:before,\n.picker__button--clear:before {\n  content: \" \";\n  margin-right: .45em;\n}\n\n.picker__button--today:before {\n  top: -0.05em;\n  width: 0;\n  border-top: 0.66em solid #0059bc;\n  border-left: .66em solid transparent;\n}\n\n.picker__button--clear:before {\n  top: -0.25em;\n  width: .66em;\n  border-top: 3px solid #ee2200;\n}\n\n.picker__button--close:before {\n  content: \"\\D7\";\n  top: -0.1em;\n  vertical-align: top;\n  font-size: 1.1em;\n  margin-right: .35em;\n  color: #777777;\n}\n\n.picker__button--today[disabled],\n.picker__button--today[disabled]:hover {\n  background: #f5f5f5;\n  border-color: #f5f5f5;\n  color: #dddddd;\n  cursor: default;\n}\n\n.picker__button--today[disabled]:before {\n  border-top-color: #aaaaaa;\n}\n\n/* ==========================================================================\n   CUSTOM MATERIALIZE STYLES\n   ========================================================================== */\n.picker__box {\n  border-radius: 2px;\n  overflow: hidden;\n}\n\n.picker__date-display {\n  text-align: center;\n  background-color: #26a69a;\n  color: #fff;\n  padding-bottom: 15px;\n  font-weight: 300;\n}\n\n.picker__nav--prev:hover,\n.picker__nav--next:hover {\n  cursor: pointer;\n  color: #000000;\n  background: #a1ded8;\n}\n\n.picker__weekday-display {\n  background-color: #1f897f;\n  padding: 10px;\n  font-weight: 200;\n  letter-spacing: .5;\n  font-size: 1rem;\n  margin-bottom: 15px;\n}\n\n.picker__month-display {\n  text-transform: uppercase;\n  font-size: 2rem;\n}\n\n.picker__day-display {\n  font-size: 4.5rem;\n  font-weight: 400;\n}\n\n.picker__year-display {\n  font-size: 1.8rem;\n  color: rgba(255, 255, 255, 0.4);\n}\n\n.picker__box {\n  padding: 0;\n}\n\n.picker__calendar-container {\n  padding: 0 1rem;\n}\n\n.picker__calendar-container thead {\n  border: none;\n}\n\n.picker__table {\n  margin-top: 0;\n  margin-bottom: .5em;\n}\n\n.picker__day--infocus {\n  color: #595959;\n  letter-spacing: -.3;\n  padding: .75rem 0;\n  font-weight: 400;\n  border: 1px solid transparent;\n}\n\n.picker__day.picker__day--today {\n  color: #26a69a;\n}\n\n.picker__day.picker__day--today.picker__day--selected {\n  color: #fff;\n}\n\n.picker__weekday {\n  font-size: .9rem;\n}\n\n.picker__day--selected,\n.picker__day--selected:hover,\n.picker--focused .picker__day--selected {\n  border-radius: 50%;\n  -webkit-transform: scale(0.9);\n          transform: scale(0.9);\n  background-color: #26a69a;\n  color: #ffffff;\n}\n\n.picker__day--selected.picker__day--outfocus,\n.picker__day--selected:hover.picker__day--outfocus,\n.picker--focused .picker__day--selected.picker__day--outfocus {\n  background-color: #a1ded8;\n}\n\n.picker__footer {\n  text-align: right;\n  padding: 5px 10px;\n}\n\n.picker__close, .picker__today {\n  font-size: 1.1rem;\n  padding: 0 1rem;\n  color: #26a69a;\n}\n\n.picker__nav--prev:before,\n.picker__nav--next:before {\n  content: \" \";\n  border-top: .5em solid transparent;\n  border-bottom: .5em solid transparent;\n  border-right: 0.75em solid #676767;\n  width: 0;\n  height: 0;\n  display: block;\n  margin: 0 auto;\n}\n\n.picker__nav--next:before {\n  border-right: 0;\n  border-left: 0.75em solid #676767;\n}\n\nbutton.picker__today:focus, button.picker__clear:focus, button.picker__close:focus {\n  background-color: #a1ded8;\n}\n\n/* ==========================================================================\n   $BASE-TIME-PICKER\n   ========================================================================== */\n/**\n * The list of times.\n */\n.picker__list {\n  list-style: none;\n  padding: 0.75em 0 4.2em;\n  margin: 0;\n}\n\n/**\n * The times on the clock.\n */\n.picker__list-item {\n  border-bottom: 1px solid #dddddd;\n  border-top: 1px solid #dddddd;\n  margin-bottom: -1px;\n  position: relative;\n  background: #ffffff;\n  padding: .75em 1.25em;\n}\n\n@media (min-height: 46.75em) {\n  .picker__list-item {\n    padding: .5em 1em;\n  }\n}\n\n/* Hovered time */\n.picker__list-item:hover {\n  cursor: pointer;\n  color: #000000;\n  background: #b1dcfb;\n  border-color: #0089ec;\n  z-index: 10;\n}\n\n/* Highlighted and hovered/focused time */\n.picker__list-item--highlighted {\n  border-color: #0089ec;\n  z-index: 10;\n}\n\n.picker__list-item--highlighted:hover,\n.picker--focused .picker__list-item--highlighted {\n  cursor: pointer;\n  color: #000000;\n  background: #b1dcfb;\n}\n\n/* Selected and hovered/focused time */\n.picker__list-item--selected,\n.picker__list-item--selected:hover,\n.picker--focused .picker__list-item--selected {\n  background: #0089ec;\n  color: #ffffff;\n  z-index: 10;\n}\n\n/* Disabled time */\n.picker__list-item--disabled,\n.picker__list-item--disabled:hover,\n.picker--focused .picker__list-item--disabled {\n  background: #f5f5f5;\n  border-color: #f5f5f5;\n  color: #dddddd;\n  cursor: default;\n  border-color: #dddddd;\n  z-index: auto;\n}\n\n/**\n * The clear button\n */\n.picker--time .picker__button--clear {\n  display: block;\n  width: 80%;\n  margin: 1em auto 0;\n  padding: 1em 1.25em;\n  background: none;\n  border: 0;\n  font-weight: 500;\n  font-size: .67em;\n  text-align: center;\n  text-transform: uppercase;\n  color: #666;\n}\n\n.picker--time .picker__button--clear:hover,\n.picker--time .picker__button--clear:focus {\n  color: #000000;\n  background: #b1dcfb;\n  background: #ee2200;\n  border-color: #ee2200;\n  cursor: pointer;\n  color: #ffffff;\n  outline: none;\n}\n\n.picker--time .picker__button--clear:before {\n  top: -0.25em;\n  color: #666;\n  font-size: 1.25em;\n  font-weight: bold;\n}\n\n.picker--time .picker__button--clear:hover:before,\n.picker--time .picker__button--clear:focus:before {\n  color: #ffffff;\n}\n\n/* ==========================================================================\n   $DEFAULT-TIME-PICKER\n   ========================================================================== */\n/**\n * The frame the bounds the time picker.\n */\n.picker--time .picker__frame {\n  min-width: 256px;\n  max-width: 320px;\n}\n\n/**\n * The picker box.\n */\n.picker--time .picker__box {\n  font-size: 1em;\n  background: #f2f2f2;\n  padding: 0;\n}\n\n@media (min-height: 40.125em) {\n  .picker--time .picker__box {\n    margin-bottom: 5em;\n  }\n}\n","[data-badge^=\"1\"]:after,\n[data-badge^=\"2\"]:after,\n[data-badge^=\"3\"]:after,\n[data-badge^=\"4\"]:after,\n[data-badge^=\"5\"]:after,\n[data-badge^=\"6\"]:after,\n[data-badge^=\"7\"]:after,\n[data-badge^=\"8\"]:after,\n[data-badge^=\"9\"]:after {\n  content: attr(data-badge);\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-content: center;\n  -ms-flex-line-pack: center;\n  align-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  position: absolute;\n  top: 3px;\n  right: 3px;\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-weight: 600;\n  font-size: 12px;\n  width: 19px;\n  height: 19px;\n  border-radius: 50%;\n  background: #ff8532;\n  color: #fff;\n}\n#about [data-badge^=\"1\"]:after,\n#about [data-badge^=\"2\"]:after,\n#about [data-badge^=\"3\"]:after,\n#about [data-badge^=\"4\"]:after,\n#about [data-badge^=\"5\"]:after,\n#about [data-badge^=\"6\"]:after,\n#about [data-badge^=\"7\"]:after,\n#about [data-badge^=\"8\"]:after,\n#about [data-badge^=\"9\"]:after {\n  content: attr(data-badge);\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-content: center;\n  -ms-flex-line-pack: center;\n  align-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  position: absolute;\n  top: 15px;\n  right: 20px;\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-weight: 600;\n  font-size: 12px;\n  width: 19px;\n  height: 19px;\n  border-radius: 50%;\n  background: #ff8532;\n  color: #fff;\n}\n","nav li .fa {\n  display: block;\n}\n#slide-out .fa {\n  padding-left: 0.5rem;\n  line-height: 64px;\n}\n@media screen and (max-width: 400px) {\n  nav li .fa {\n    line-height: 56px;\n  }\n}\n",".mdi-navigation-menu {\n  padding-left: 0.5rem;\n}\n#slide-out .card {\n  margin: 0;\n}\n#slide-out .card img {\n  height: 140px;\n}\n#slide-out .card-title {\n  left: 0;\n  top: -25px;\n  width: 100%;\n  height: 100%;\n}\n#slide-out .card-title span {\n  display: block;\n  line-height: 30px;\n}\n#slide-out .card-title .menu-title {\n  font-weight: bold;\n}\n#slide-out .card-title .menu-speach {\n  font-size: 1rem;\n  line-height: 20px;\n}\n#slide-out .card-title .menu-footer {\n  font-size: 1rem;\n  line-height: 20px;\n  position: relative;\n  bottom: -45px;\n  left: 145px;\n}\n#slide-out i {\n  color: #1a687f;\n  width: 5rem;\n  float: left;\n}\n#slide-out a {\n  padding-left: 7px;\n  font-size: 1.5rem;\n}\n.side-nav.side-nav-icons {\n  width: 5rem;\n  z-index: 1000;\n  box-shadow: none;\n}\n#slide-out li {\n  padding: 0;\n}\nul#slide-out li:hover {\n  background-color: #f0f0f0;\n}\n@media screen and (max-width: 400px) {\n  #slide-out {\n    width: 20rem;\n    background-color: #fff;\n    max-width: 95%;\n    -webkit-transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  }\n}\n@media screen and (min-width: 400px) {\n  #slide-out {\n    left: 0;\n    width: 0;\n    background-color: #fff;\n    max-width: 95%;\n    -webkit-transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  }\n  #slide-out:before {\n/*background-image: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent)*/\n    pointer-events: none;\n    content: \"\";\n    display: block;\n    position: absolute;\n    top: 0;\n    right: 0;\n    width: 1rem;\n    height: 100%;\n  }\n  #slide-out li {\n    width: 20rem;\n    padding: 0;\n  }\n}\n.nav-wrapper a {\n  padding-left: 10px;\n}\nhtml {\n  background-color: #fff;\n}\nbody {\n  overflow: hidden;\n}\nbody,\nmain {\n  height: 100%;\n  width: 100%;\n  position: absolute;\n}\nhead,\nmain {\n  background-color: #fff !important;\n  -webkit-transition: opacity 0.3s ease-in-out;\n  transition: opacity 0.3s ease-in-out;\n  transform: translateZ(0);\n}\nmain {\n  overflow: hidden;\n}\n.home-main {\n  padding-top: 64px;\n  padding-bottom: 64px;\n}\nnav {\n  background-color: #1a687f;\n  position: fixed;\n  top: 0;\n  z-index: 10;\n}\n.ui-scrollable {\n  overflow: auto;\n  height: 100%;\n}\n.modal .modal-footer .btn,\n.idty_card button {\n  margin-right: 5px;\n}\n.small {\n  font-size: 0.8rem;\n}\n.home .card.graph {\n  height: inherit;\n}\n.home .card {\n  text-align: center;\n  height: 166px;\n}\n.home .card .fa {\n  z-index: 1;\n  width: 100%;\n  margin-left: auto;\n  margin-right: auto;\n  position: absolute;\n  margin-top: -5px;\n  margin-left: -50%;\n  color: rgba(187,234,249,0.51);\n}\n.home .card-title span {\n  z-index: 2;\n  position: relative;\n  font-size: 3rem;\n  width: 350px;\n}\n.home .card-title p {\n  z-index: 2;\n  position: relative;\n  font-size: 1.4rem;\n  line-height: 27px;\n}\n.home .card-action {\n  padding: 1px;\n}\n.home .card-time .card-content {\n  padding-top: 15px;\n  padding-bottom: 15px;\n}\n.home .card-time .card-content .card-title p:first-child {\n  margin-bottom: 9px;\n}\n#serveractions {\n  width: 170px !important;\n}\n#serveractions button {\n  height: 50px;\n  width: 100%;\n  padding-right: 0px;\n  padding-left: 5px;\n}\n#serveractions i,\n#serveractions span {\n  line-height: 50px;\n  height: 50px;\n}\n#about {\n  width: 260px !important;\n}\n#about button {\n  height: 50px;\n  width: 100%;\n  padding-right: 0px;\n  padding-left: 12px;\n  text-transform: none;\n  overflow: visible;\n}\n#about li {\n  position: relative;\n}\n#about i,\n#about span {\n  line-height: 50px;\n  height: 50px;\n}\n#server_state .card-title {\n  height: 53px;\n}\n#server_state i {\n  font-size: 4.5rem;\n}\n.card-content {\n  width: 100%;\n}\n.tabs {\n  overflow: hidden;\n}\n.tabs .indicator {\n  background-color: #82b6c1;\n}\n.tabs .tab a {\n  color: #1a687f;\n}\n.tabs .tab a:hover {\n  color: #82b6c1;\n}\n.pubkey {\n  background-color: #d7edf5;\n  line-height: 60px;\n}\n.pre,\n.host_listening {\n  background-color: #d7edf5;\n  line-height: 21px;\n  padding-top: 20px;\n  padding-bottom: 20px;\n}\nblockquote {\n  padding-top: 10px;\n  padding-bottom: 10px;\n}\nblockquote.blue {\n  border-left: 5px solid #1b76bf;\n}\nblockquote.info {\n  border-left: 5px solid #1b76bf;\n  background-color: #fbfbff !important;\n}\n.tabs .tab.disabled a {\n  color: #9ea8ac;\n}\n#card-logs {\n  position: fixed;\n  margin: 0;\n  width: 90%;\n}\n#card-logs label {\n  margin-right: 30px;\n}\n#logs {\n  font-size: 12px;\n  padding: 10px;\n  padding-top: 200px;\n  margin: 0;\n  overflow: auto;\n  height: 100%;\n}\n#logs p {\n  line-height: 21px;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n#follow-logs {\n  float: right;\n}\n.log-level.info {\n  color: #00f;\n}\n.log-level.warn {\n  color: #c9c826;\n}\n.log-level.error {\n  color: #f00;\n}\n.log-level.debug {\n  color: #0ff;\n}\n.log-level.trace {\n  color: #d0f;\n}\n.log-msg.info {\n  background-color: none;\n}\n.log-msg.warn {\n  background-color: #fffe99;\n}\n.log-msg.error {\n  background-color: #f8d5d2;\n}\n.log-msg.debug {\n  background-color: rgba(29,255,255,0.23);\n}\n.log-msg.trace {\n  background-color: rgba(217,0,255,0.14);\n}\n.log-time {\n  color: #888;\n}\n.network-alert .card-content p {\n  margin-top: 10px;\n  margin-bottom: 20px;\n}\n#about_card {\n  border: 0;\n  box-shadow: none;\n  padding-top: 30px;\n}\n#about_card .card-image {\n  width: 170px;\n  margin-left: auto;\n  margin-right: auto;\n}\n#about_card a {\n  margin-right: 25px;\n}\n#about_card a span {\n  position: relative;\n  top: -4px;\n  left: 5px;\n}\n.currency {\n  background-color: #699cab;\n  margin: 0;\n  padding: 5px;\n}\n.currency h1 {\n  text-align: center;\n  font-size: 18px;\n  margin: 0;\n  color: #fff;\n}\n.card.sync .iconic.card-title {\n  padding-top: 15px;\n  height: 83px;\n}\n.card.sync .iconic.card-title i {\n  font-size: 4.5rem;\n}\n.card.sync .card-content {\n  padding-top: 5px;\n  padding-bottom: 5px;\n}\n.card.sync .card-content p {\n  font-size: 16px;\n}\n.card.sync .card-content .progress {\n  margin-bottom: 10px;\n}\n.file-field.input-field {\n  margin-top: 0;\n}\n.file-field .btn-large,\n.btn-large input {\n  height: 54px !important;\n  line-height: 56px !important;\n}\n.pre a {\n  color: #039be5 !important;\n  text-transform: none !important;\n}\n.proof-card .card-content {\n  padding-top: 18px !important;\n  padding-bottom: 10px !important;\n}\n.proof-card .card-content .proof-mesure {\n  font-size: 1.5em;\n  line-height: 30px;\n}\n.proof-card .card-content .proof-unit {\n  text-align: center;\n  width: 100%;\n  display: block;\n  font-size: 0.7em;\n  line-height: 20px;\n}\n.proof-card .card-action p.hash {\n  height: 10px;\n}\n.proof-card .card-action .progress {\n  width: 70px !important;\n  margin-left: auto;\n  margin-right: auto;\n}\n.button-cancel {\n  float: left;\n}\n.button-next {\n  float: right;\n}\n.common-network {\n  border-left: 9px solid rgba(0,0,0,0.12);\n}\n.common-network h1 {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.upnp {\n  line-height: 76px;\n}\n",".mdi-navigation-menu {\n  padding-left: 0.5rem;\n}\n#slide-out .card {\n  margin: 0;\n}\n#slide-out .card img {\n  height: 140px;\n}\n#slide-out .card-title {\n  left: 0;\n  top: -25px;\n  width: 100%;\n  height: 100%;\n}\n#slide-out .card-title span {\n  display: block;\n  line-height: 30px;\n}\n#slide-out .card-title .menu-title {\n  font-weight: bold;\n}\n#slide-out .card-title .menu-speach {\n  font-size: 1rem;\n  line-height: 20px;\n}\n#slide-out .card-title .menu-footer {\n  font-size: 1rem;\n  line-height: 20px;\n  position: relative;\n  bottom: -45px;\n  left: 145px;\n}\n#slide-out i {\n  color: #1a687f;\n  width: 5rem;\n  float: left;\n}\n#slide-out a {\n  padding-left: 7px;\n  font-size: 1.5rem;\n}\n.side-nav.side-nav-icons {\n  width: 5rem;\n  z-index: 1000;\n  box-shadow: none;\n}\n#slide-out li {\n  padding: 0;\n}\nul#slide-out li:hover {\n  background-color: #f0f0f0;\n}\n@media screen and (max-width: 400px) {\n  #slide-out {\n    width: 20rem;\n    background-color: #fff;\n    max-width: 95%;\n    -webkit-transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  }\n}\n@media screen and (min-width: 400px) {\n  #slide-out {\n    left: 0;\n    width: 0;\n    background-color: #fff;\n    max-width: 95%;\n    -webkit-transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  }\n  #slide-out:before {\n/*background-image: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent)*/\n    pointer-events: none;\n    content: \"\";\n    display: block;\n    position: absolute;\n    top: 0;\n    right: 0;\n    width: 1rem;\n    height: 100%;\n  }\n  #slide-out li {\n    width: 20rem;\n    padding: 0;\n  }\n}\n.nav-wrapper a {\n  padding-left: 10px;\n}\n",""]}
\ No newline at end of file
+{"version":3,"sources":["app/css/font-awesome.css","app/css/material-icons.css","app/css/materialize.css","app/styles/badges.styl","app/styles/fa.styl","app/styles/main.styl","app/styles/menu.styl","app/styles/vendor.styl"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtiEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACx/VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1FA","file":"public/app.css","sourcesContent":["/*!\n *  Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('../font/font-awesome/fontawesome-webfont.eot?v=4.5.0');\n  src: url('../font/font-awesome/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'), url('../font/font-awesome/fontawesome-webfont.woff2?v=4.5.0') format('woff2'), url('../font/font-awesome/fontawesome-webfont.woff?v=4.5.0') format('woff'), url('../font/font-awesome/fontawesome-webfont.ttf?v=4.5.0') format('truetype'), url('../font/font-awesome/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n.fa-2x {\n  font-size: 2em;\n}\n.fa-3x {\n  font-size: 3em;\n}\n.fa-4x {\n  font-size: 4em;\n}\n.fa-5x {\n  font-size: 5em;\n}\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.fa-ul > li {\n  position: relative;\n}\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n.fa-pull-left {\n  float: left;\n}\n.fa-pull-right {\n  float: right;\n}\n.fa.fa-pull-left {\n  margin-right: .3em;\n}\n.fa.fa-pull-right {\n  margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n.fa.pull-left {\n  margin-right: .3em;\n}\n.fa.pull-right {\n  margin-left: .3em;\n}\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.fa-stack-1x {\n  line-height: inherit;\n}\n.fa-stack-2x {\n  font-size: 2em;\n}\n.fa-inverse {\n  color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n.fa-music:before {\n  content: \"\\f001\";\n}\n.fa-search:before {\n  content: \"\\f002\";\n}\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n.fa-heart:before {\n  content: \"\\f004\";\n}\n.fa-star:before {\n  content: \"\\f005\";\n}\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n.fa-user:before {\n  content: \"\\f007\";\n}\n.fa-film:before {\n  content: \"\\f008\";\n}\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n.fa-th:before {\n  content: \"\\f00a\";\n}\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n.fa-check:before {\n  content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n.fa-signal:before {\n  content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n.fa-home:before {\n  content: \"\\f015\";\n}\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n.fa-road:before {\n  content: \"\\f018\";\n}\n.fa-download:before {\n  content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n.fa-lock:before {\n  content: \"\\f023\";\n}\n.fa-flag:before {\n  content: \"\\f024\";\n}\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n.fa-book:before {\n  content: \"\\f02d\";\n}\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n.fa-print:before {\n  content: \"\\f02f\";\n}\n.fa-camera:before {\n  content: \"\\f030\";\n}\n.fa-font:before {\n  content: \"\\f031\";\n}\n.fa-bold:before {\n  content: \"\\f032\";\n}\n.fa-italic:before {\n  content: \"\\f033\";\n}\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n.fa-list:before {\n  content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n.fa-tint:before {\n  content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n.fa-play:before {\n  content: \"\\f04b\";\n}\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n.fa-eject:before {\n  content: \"\\f052\";\n}\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n.fa-expand:before {\n  content: \"\\f065\";\n}\n.fa-compress:before {\n  content: \"\\f066\";\n}\n.fa-plus:before {\n  content: \"\\f067\";\n}\n.fa-minus:before {\n  content: \"\\f068\";\n}\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n.fa-plane:before {\n  content: \"\\f072\";\n}\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n.fa-random:before {\n  content: \"\\f074\";\n}\n.fa-comment:before {\n  content: \"\\f075\";\n}\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n.fa-key:before {\n  content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n.fa-comments:before {\n  content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n.fa-upload:before {\n  content: \"\\f093\";\n}\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n.fa-phone:before {\n  content: \"\\f095\";\n}\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n.fa-github:before {\n  content: \"\\f09b\";\n}\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n.fa-circle:before {\n  content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n.fa-code:before {\n  content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n.fa-crop:before {\n  content: \"\\f125\";\n}\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n.fa-question:before {\n  content: \"\\f128\";\n}\n.fa-info:before {\n  content: \"\\f129\";\n}\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n.fa-shield:before {\n  content: \"\\f132\";\n}\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n.fa-file:before {\n  content: \"\\f15b\";\n}\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n.fa-xing:before {\n  content: \"\\f168\";\n}\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n.fa-adn:before {\n  content: \"\\f170\";\n}\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n.fa-apple:before {\n  content: \"\\f179\";\n}\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n.fa-android:before {\n  content: \"\\f17b\";\n}\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n.fa-trello:before {\n  content: \"\\f181\";\n}\n.fa-female:before {\n  content: \"\\f182\";\n}\n.fa-male:before {\n  content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n.fa-archive:before {\n  content: \"\\f187\";\n}\n.fa-bug:before {\n  content: \"\\f188\";\n}\n.fa-vk:before {\n  content: \"\\f189\";\n}\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n.fa-slack:before {\n  content: \"\\f198\";\n}\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n.fa-history:before {\n  content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n.fa-bus:before {\n  content: \"\\f207\";\n}\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n.fa-venus:before {\n  content: \"\\f221\";\n}\n.fa-mars:before {\n  content: \"\\f222\";\n}\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n.fa-genderless:before {\n  content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n.fa-server:before {\n  content: \"\\f233\";\n}\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n.fa-train:before {\n  content: \"\\f238\";\n}\n.fa-subway:before {\n  content: \"\\f239\";\n}\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n  content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n  content: \"\\f23c\";\n}\n.fa-opencart:before {\n  content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n  content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery-full:before {\n  content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n  content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n  content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n  content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n  content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n  content: \"\\f245\";\n}\n.fa-i-cursor:before {\n  content: \"\\f246\";\n}\n.fa-object-group:before {\n  content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n  content: \"\\f248\";\n}\n.fa-sticky-note:before {\n  content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n  content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n  content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n  content: \"\\f24c\";\n}\n.fa-clone:before {\n  content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n  content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n  content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n  content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n  content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n  content: \"\\f253\";\n}\n.fa-hourglass:before {\n  content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n  content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n  content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n  content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n  content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n  content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n  content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n  content: \"\\f25b\";\n}\n.fa-trademark:before {\n  content: \"\\f25c\";\n}\n.fa-registered:before {\n  content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n  content: \"\\f25e\";\n}\n.fa-gg:before {\n  content: \"\\f260\";\n}\n.fa-gg-circle:before {\n  content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n  content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n  content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\";\n}\n.fa-get-pocket:before {\n  content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n  content: \"\\f266\";\n}\n.fa-safari:before {\n  content: \"\\f267\";\n}\n.fa-chrome:before {\n  content: \"\\f268\";\n}\n.fa-firefox:before {\n  content: \"\\f269\";\n}\n.fa-opera:before {\n  content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n  content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n  content: \"\\f26c\";\n}\n.fa-contao:before {\n  content: \"\\f26d\";\n}\n.fa-500px:before {\n  content: \"\\f26e\";\n}\n.fa-amazon:before {\n  content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n  content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n  content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n  content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n  content: \"\\f274\";\n}\n.fa-industry:before {\n  content: \"\\f275\";\n}\n.fa-map-pin:before {\n  content: \"\\f276\";\n}\n.fa-map-signs:before {\n  content: \"\\f277\";\n}\n.fa-map-o:before {\n  content: \"\\f278\";\n}\n.fa-map:before {\n  content: \"\\f279\";\n}\n.fa-commenting:before {\n  content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n  content: \"\\f27b\";\n}\n.fa-houzz:before {\n  content: \"\\f27c\";\n}\n.fa-vimeo:before {\n  content: \"\\f27d\";\n}\n.fa-black-tie:before {\n  content: \"\\f27e\";\n}\n.fa-fonticons:before {\n  content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n  content: \"\\f281\";\n}\n.fa-edge:before {\n  content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n  content: \"\\f283\";\n}\n.fa-codiepie:before {\n  content: \"\\f284\";\n}\n.fa-modx:before {\n  content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n  content: \"\\f286\";\n}\n.fa-usb:before {\n  content: \"\\f287\";\n}\n.fa-product-hunt:before {\n  content: \"\\f288\";\n}\n.fa-mixcloud:before {\n  content: \"\\f289\";\n}\n.fa-scribd:before {\n  content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n  content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n  content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n  content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n  content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n  content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n  content: \"\\f291\";\n}\n.fa-hashtag:before {\n  content: \"\\f292\";\n}\n.fa-bluetooth:before {\n  content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n  content: \"\\f294\";\n}\n.fa-percent:before {\n  content: \"\\f295\";\n}\n","@font-face {\n    font-family: 'Material Icons';\n    font-style: normal;\n    font-weight: 400;\n    src: local('Material Icons'), local('MaterialIcons-Regular'), url(../font/material.woff2) format('woff2');\n}\n\n.material-icons {\n    font-family: 'Material Icons';\n    font-weight: normal;\n    font-style: normal;\n    font-size: 24px;\n    line-height: 1;\n    letter-spacing: normal;\n    text-transform: none;\n    display: inline-block;\n    word-wrap: normal;\n    -webkit-font-feature-settings: 'liga';\n    -webkit-font-smoothing: antialiased;\n}","/*!\n * Materialize v0.97.5 (http://materializecss.com)\n * Copyright 2014-2015 Materialize\n * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)\n */\n.materialize-red.lighten-5 {\n  background-color: #fdeaeb !important;\n}\n\n.materialize-red-text.text-lighten-5 {\n  color: #fdeaeb !important;\n}\n\n.materialize-red.lighten-4 {\n  background-color: #f8c1c3 !important;\n}\n\n.materialize-red-text.text-lighten-4 {\n  color: #f8c1c3 !important;\n}\n\n.materialize-red.lighten-3 {\n  background-color: #f3989b !important;\n}\n\n.materialize-red-text.text-lighten-3 {\n  color: #f3989b !important;\n}\n\n.materialize-red.lighten-2 {\n  background-color: #ee6e73 !important;\n}\n\n.materialize-red-text.text-lighten-2 {\n  color: #ee6e73 !important;\n}\n\n.materialize-red.lighten-1 {\n  background-color: #ea454b !important;\n}\n\n.materialize-red-text.text-lighten-1 {\n  color: #ea454b !important;\n}\n\n.materialize-red {\n  background-color: #e51c23 !important;\n}\n\n.materialize-red-text {\n  color: #e51c23 !important;\n}\n\n.materialize-red.darken-1 {\n  background-color: #d0181e !important;\n}\n\n.materialize-red-text.text-darken-1 {\n  color: #d0181e !important;\n}\n\n.materialize-red.darken-2 {\n  background-color: #b9151b !important;\n}\n\n.materialize-red-text.text-darken-2 {\n  color: #b9151b !important;\n}\n\n.materialize-red.darken-3 {\n  background-color: #a21318 !important;\n}\n\n.materialize-red-text.text-darken-3 {\n  color: #a21318 !important;\n}\n\n.materialize-red.darken-4 {\n  background-color: #8b1014 !important;\n}\n\n.materialize-red-text.text-darken-4 {\n  color: #8b1014 !important;\n}\n\n.red.lighten-5 {\n  background-color: #FFEBEE !important;\n}\n\n.red-text.text-lighten-5 {\n  color: #FFEBEE !important;\n}\n\n.red.lighten-4 {\n  background-color: #FFCDD2 !important;\n}\n\n.red-text.text-lighten-4 {\n  color: #FFCDD2 !important;\n}\n\n.red.lighten-3 {\n  background-color: #EF9A9A !important;\n}\n\n.red-text.text-lighten-3 {\n  color: #EF9A9A !important;\n}\n\n.red.lighten-2 {\n  background-color: #E57373 !important;\n}\n\n.red-text.text-lighten-2 {\n  color: #E57373 !important;\n}\n\n.red.lighten-1 {\n  background-color: #EF5350 !important;\n}\n\n.red-text.text-lighten-1 {\n  color: #EF5350 !important;\n}\n\n.red {\n  background-color: #F44336 !important;\n}\n\n.red-text {\n  color: #F44336 !important;\n}\n\n.red.darken-1 {\n  background-color: #E53935 !important;\n}\n\n.red-text.text-darken-1 {\n  color: #E53935 !important;\n}\n\n.red.darken-2 {\n  background-color: #D32F2F !important;\n}\n\n.red-text.text-darken-2 {\n  color: #D32F2F !important;\n}\n\n.red.darken-3 {\n  background-color: #C62828 !important;\n}\n\n.red-text.text-darken-3 {\n  color: #C62828 !important;\n}\n\n.red.darken-4 {\n  background-color: #B71C1C !important;\n}\n\n.red-text.text-darken-4 {\n  color: #B71C1C !important;\n}\n\n.red.accent-1 {\n  background-color: #FF8A80 !important;\n}\n\n.red-text.text-accent-1 {\n  color: #FF8A80 !important;\n}\n\n.red.accent-2 {\n  background-color: #FF5252 !important;\n}\n\n.red-text.text-accent-2 {\n  color: #FF5252 !important;\n}\n\n.red.accent-3 {\n  background-color: #FF1744 !important;\n}\n\n.red-text.text-accent-3 {\n  color: #FF1744 !important;\n}\n\n.red.accent-4 {\n  background-color: #D50000 !important;\n}\n\n.red-text.text-accent-4 {\n  color: #D50000 !important;\n}\n\n.pink.lighten-5 {\n  background-color: #fce4ec !important;\n}\n\n.pink-text.text-lighten-5 {\n  color: #fce4ec !important;\n}\n\n.pink.lighten-4 {\n  background-color: #f8bbd0 !important;\n}\n\n.pink-text.text-lighten-4 {\n  color: #f8bbd0 !important;\n}\n\n.pink.lighten-3 {\n  background-color: #f48fb1 !important;\n}\n\n.pink-text.text-lighten-3 {\n  color: #f48fb1 !important;\n}\n\n.pink.lighten-2 {\n  background-color: #f06292 !important;\n}\n\n.pink-text.text-lighten-2 {\n  color: #f06292 !important;\n}\n\n.pink.lighten-1 {\n  background-color: #ec407a !important;\n}\n\n.pink-text.text-lighten-1 {\n  color: #ec407a !important;\n}\n\n.pink {\n  background-color: #e91e63 !important;\n}\n\n.pink-text {\n  color: #e91e63 !important;\n}\n\n.pink.darken-1 {\n  background-color: #d81b60 !important;\n}\n\n.pink-text.text-darken-1 {\n  color: #d81b60 !important;\n}\n\n.pink.darken-2 {\n  background-color: #c2185b !important;\n}\n\n.pink-text.text-darken-2 {\n  color: #c2185b !important;\n}\n\n.pink.darken-3 {\n  background-color: #ad1457 !important;\n}\n\n.pink-text.text-darken-3 {\n  color: #ad1457 !important;\n}\n\n.pink.darken-4 {\n  background-color: #880e4f !important;\n}\n\n.pink-text.text-darken-4 {\n  color: #880e4f !important;\n}\n\n.pink.accent-1 {\n  background-color: #ff80ab !important;\n}\n\n.pink-text.text-accent-1 {\n  color: #ff80ab !important;\n}\n\n.pink.accent-2 {\n  background-color: #ff4081 !important;\n}\n\n.pink-text.text-accent-2 {\n  color: #ff4081 !important;\n}\n\n.pink.accent-3 {\n  background-color: #f50057 !important;\n}\n\n.pink-text.text-accent-3 {\n  color: #f50057 !important;\n}\n\n.pink.accent-4 {\n  background-color: #c51162 !important;\n}\n\n.pink-text.text-accent-4 {\n  color: #c51162 !important;\n}\n\n.purple.lighten-5 {\n  background-color: #f3e5f5 !important;\n}\n\n.purple-text.text-lighten-5 {\n  color: #f3e5f5 !important;\n}\n\n.purple.lighten-4 {\n  background-color: #e1bee7 !important;\n}\n\n.purple-text.text-lighten-4 {\n  color: #e1bee7 !important;\n}\n\n.purple.lighten-3 {\n  background-color: #ce93d8 !important;\n}\n\n.purple-text.text-lighten-3 {\n  color: #ce93d8 !important;\n}\n\n.purple.lighten-2 {\n  background-color: #ba68c8 !important;\n}\n\n.purple-text.text-lighten-2 {\n  color: #ba68c8 !important;\n}\n\n.purple.lighten-1 {\n  background-color: #ab47bc !important;\n}\n\n.purple-text.text-lighten-1 {\n  color: #ab47bc !important;\n}\n\n.purple {\n  background-color: #9c27b0 !important;\n}\n\n.purple-text {\n  color: #9c27b0 !important;\n}\n\n.purple.darken-1 {\n  background-color: #8e24aa !important;\n}\n\n.purple-text.text-darken-1 {\n  color: #8e24aa !important;\n}\n\n.purple.darken-2 {\n  background-color: #7b1fa2 !important;\n}\n\n.purple-text.text-darken-2 {\n  color: #7b1fa2 !important;\n}\n\n.purple.darken-3 {\n  background-color: #6a1b9a !important;\n}\n\n.purple-text.text-darken-3 {\n  color: #6a1b9a !important;\n}\n\n.purple.darken-4 {\n  background-color: #4a148c !important;\n}\n\n.purple-text.text-darken-4 {\n  color: #4a148c !important;\n}\n\n.purple.accent-1 {\n  background-color: #ea80fc !important;\n}\n\n.purple-text.text-accent-1 {\n  color: #ea80fc !important;\n}\n\n.purple.accent-2 {\n  background-color: #e040fb !important;\n}\n\n.purple-text.text-accent-2 {\n  color: #e040fb !important;\n}\n\n.purple.accent-3 {\n  background-color: #d500f9 !important;\n}\n\n.purple-text.text-accent-3 {\n  color: #d500f9 !important;\n}\n\n.purple.accent-4 {\n  background-color: #aa00ff !important;\n}\n\n.purple-text.text-accent-4 {\n  color: #aa00ff !important;\n}\n\n.deep-purple.lighten-5 {\n  background-color: #ede7f6 !important;\n}\n\n.deep-purple-text.text-lighten-5 {\n  color: #ede7f6 !important;\n}\n\n.deep-purple.lighten-4 {\n  background-color: #d1c4e9 !important;\n}\n\n.deep-purple-text.text-lighten-4 {\n  color: #d1c4e9 !important;\n}\n\n.deep-purple.lighten-3 {\n  background-color: #b39ddb !important;\n}\n\n.deep-purple-text.text-lighten-3 {\n  color: #b39ddb !important;\n}\n\n.deep-purple.lighten-2 {\n  background-color: #9575cd !important;\n}\n\n.deep-purple-text.text-lighten-2 {\n  color: #9575cd !important;\n}\n\n.deep-purple.lighten-1 {\n  background-color: #7e57c2 !important;\n}\n\n.deep-purple-text.text-lighten-1 {\n  color: #7e57c2 !important;\n}\n\n.deep-purple {\n  background-color: #673ab7 !important;\n}\n\n.deep-purple-text {\n  color: #673ab7 !important;\n}\n\n.deep-purple.darken-1 {\n  background-color: #5e35b1 !important;\n}\n\n.deep-purple-text.text-darken-1 {\n  color: #5e35b1 !important;\n}\n\n.deep-purple.darken-2 {\n  background-color: #512da8 !important;\n}\n\n.deep-purple-text.text-darken-2 {\n  color: #512da8 !important;\n}\n\n.deep-purple.darken-3 {\n  background-color: #4527a0 !important;\n}\n\n.deep-purple-text.text-darken-3 {\n  color: #4527a0 !important;\n}\n\n.deep-purple.darken-4 {\n  background-color: #311b92 !important;\n}\n\n.deep-purple-text.text-darken-4 {\n  color: #311b92 !important;\n}\n\n.deep-purple.accent-1 {\n  background-color: #b388ff !important;\n}\n\n.deep-purple-text.text-accent-1 {\n  color: #b388ff !important;\n}\n\n.deep-purple.accent-2 {\n  background-color: #7c4dff !important;\n}\n\n.deep-purple-text.text-accent-2 {\n  color: #7c4dff !important;\n}\n\n.deep-purple.accent-3 {\n  background-color: #651fff !important;\n}\n\n.deep-purple-text.text-accent-3 {\n  color: #651fff !important;\n}\n\n.deep-purple.accent-4 {\n  background-color: #6200ea !important;\n}\n\n.deep-purple-text.text-accent-4 {\n  color: #6200ea !important;\n}\n\n.indigo.lighten-5 {\n  background-color: #e8eaf6 !important;\n}\n\n.indigo-text.text-lighten-5 {\n  color: #e8eaf6 !important;\n}\n\n.indigo.lighten-4 {\n  background-color: #c5cae9 !important;\n}\n\n.indigo-text.text-lighten-4 {\n  color: #c5cae9 !important;\n}\n\n.indigo.lighten-3 {\n  background-color: #9fa8da !important;\n}\n\n.indigo-text.text-lighten-3 {\n  color: #9fa8da !important;\n}\n\n.indigo.lighten-2 {\n  background-color: #7986cb !important;\n}\n\n.indigo-text.text-lighten-2 {\n  color: #7986cb !important;\n}\n\n.indigo.lighten-1 {\n  background-color: #5c6bc0 !important;\n}\n\n.indigo-text.text-lighten-1 {\n  color: #5c6bc0 !important;\n}\n\n.indigo {\n  background-color: #3f51b5 !important;\n}\n\n.indigo-text {\n  color: #3f51b5 !important;\n}\n\n.indigo.darken-1 {\n  background-color: #3949ab !important;\n}\n\n.indigo-text.text-darken-1 {\n  color: #3949ab !important;\n}\n\n.indigo.darken-2 {\n  background-color: #303f9f !important;\n}\n\n.indigo-text.text-darken-2 {\n  color: #303f9f !important;\n}\n\n.indigo.darken-3 {\n  background-color: #283593 !important;\n}\n\n.indigo-text.text-darken-3 {\n  color: #283593 !important;\n}\n\n.indigo.darken-4 {\n  background-color: #1a237e !important;\n}\n\n.indigo-text.text-darken-4 {\n  color: #1a237e !important;\n}\n\n.indigo.accent-1 {\n  background-color: #8c9eff !important;\n}\n\n.indigo-text.text-accent-1 {\n  color: #8c9eff !important;\n}\n\n.indigo.accent-2 {\n  background-color: #536dfe !important;\n}\n\n.indigo-text.text-accent-2 {\n  color: #536dfe !important;\n}\n\n.indigo.accent-3 {\n  background-color: #3d5afe !important;\n}\n\n.indigo-text.text-accent-3 {\n  color: #3d5afe !important;\n}\n\n.indigo.accent-4 {\n  background-color: #304ffe !important;\n}\n\n.indigo-text.text-accent-4 {\n  color: #304ffe !important;\n}\n\n.blue.lighten-5 {\n  background-color: #E3F2FD !important;\n}\n\n.blue-text.text-lighten-5 {\n  color: #E3F2FD !important;\n}\n\n.blue.lighten-4 {\n  background-color: #BBDEFB !important;\n}\n\n.blue-text.text-lighten-4 {\n  color: #BBDEFB !important;\n}\n\n.blue.lighten-3 {\n  background-color: #90CAF9 !important;\n}\n\n.blue-text.text-lighten-3 {\n  color: #90CAF9 !important;\n}\n\n.blue.lighten-2 {\n  background-color: #64B5F6 !important;\n}\n\n.blue-text.text-lighten-2 {\n  color: #64B5F6 !important;\n}\n\n.blue.lighten-1 {\n  background-color: #42A5F5 !important;\n}\n\n.blue-text.text-lighten-1 {\n  color: #42A5F5 !important;\n}\n\n.blue {\n  background-color: #2196F3 !important;\n}\n\n.blue-text {\n  color: #2196F3 !important;\n}\n\n.blue.darken-1 {\n  background-color: #1E88E5 !important;\n}\n\n.blue-text.text-darken-1 {\n  color: #1E88E5 !important;\n}\n\n.blue.darken-2 {\n  background-color: #1976D2 !important;\n}\n\n.blue-text.text-darken-2 {\n  color: #1976D2 !important;\n}\n\n.blue.darken-3 {\n  background-color: #1565C0 !important;\n}\n\n.blue-text.text-darken-3 {\n  color: #1565C0 !important;\n}\n\n.blue.darken-4 {\n  background-color: #0D47A1 !important;\n}\n\n.blue-text.text-darken-4 {\n  color: #0D47A1 !important;\n}\n\n.blue.accent-1 {\n  background-color: #82B1FF !important;\n}\n\n.blue-text.text-accent-1 {\n  color: #82B1FF !important;\n}\n\n.blue.accent-2 {\n  background-color: #448AFF !important;\n}\n\n.blue-text.text-accent-2 {\n  color: #448AFF !important;\n}\n\n.blue.accent-3 {\n  background-color: #2979FF !important;\n}\n\n.blue-text.text-accent-3 {\n  color: #2979FF !important;\n}\n\n.blue.accent-4 {\n  background-color: #2962FF !important;\n}\n\n.blue-text.text-accent-4 {\n  color: #2962FF !important;\n}\n\n.light-blue.lighten-5 {\n  background-color: #e1f5fe !important;\n}\n\n.light-blue-text.text-lighten-5 {\n  color: #e1f5fe !important;\n}\n\n.light-blue.lighten-4 {\n  background-color: #b3e5fc !important;\n}\n\n.light-blue-text.text-lighten-4 {\n  color: #b3e5fc !important;\n}\n\n.light-blue.lighten-3 {\n  background-color: #81d4fa !important;\n}\n\n.light-blue-text.text-lighten-3 {\n  color: #81d4fa !important;\n}\n\n.light-blue.lighten-2 {\n  background-color: #4fc3f7 !important;\n}\n\n.light-blue-text.text-lighten-2 {\n  color: #4fc3f7 !important;\n}\n\n.light-blue.lighten-1 {\n  background-color: #29b6f6 !important;\n}\n\n.light-blue-text.text-lighten-1 {\n  color: #29b6f6 !important;\n}\n\n.light-blue {\n  background-color: #03a9f4 !important;\n}\n\n.light-blue-text {\n  color: #03a9f4 !important;\n}\n\n.light-blue.darken-1 {\n  background-color: #039be5 !important;\n}\n\n.light-blue-text.text-darken-1 {\n  color: #039be5 !important;\n}\n\n.light-blue.darken-2 {\n  background-color: #0288d1 !important;\n}\n\n.light-blue-text.text-darken-2 {\n  color: #0288d1 !important;\n}\n\n.light-blue.darken-3 {\n  background-color: #0277bd !important;\n}\n\n.light-blue-text.text-darken-3 {\n  color: #0277bd !important;\n}\n\n.light-blue.darken-4 {\n  background-color: #01579b !important;\n}\n\n.light-blue-text.text-darken-4 {\n  color: #01579b !important;\n}\n\n.light-blue.accent-1 {\n  background-color: #80d8ff !important;\n}\n\n.light-blue-text.text-accent-1 {\n  color: #80d8ff !important;\n}\n\n.light-blue.accent-2 {\n  background-color: #40c4ff !important;\n}\n\n.light-blue-text.text-accent-2 {\n  color: #40c4ff !important;\n}\n\n.light-blue.accent-3 {\n  background-color: #00b0ff !important;\n}\n\n.light-blue-text.text-accent-3 {\n  color: #00b0ff !important;\n}\n\n.light-blue.accent-4 {\n  background-color: #0091ea !important;\n}\n\n.light-blue-text.text-accent-4 {\n  color: #0091ea !important;\n}\n\n.cyan.lighten-5 {\n  background-color: #e0f7fa !important;\n}\n\n.cyan-text.text-lighten-5 {\n  color: #e0f7fa !important;\n}\n\n.cyan.lighten-4 {\n  background-color: #b2ebf2 !important;\n}\n\n.cyan-text.text-lighten-4 {\n  color: #b2ebf2 !important;\n}\n\n.cyan.lighten-3 {\n  background-color: #80deea !important;\n}\n\n.cyan-text.text-lighten-3 {\n  color: #80deea !important;\n}\n\n.cyan.lighten-2 {\n  background-color: #4dd0e1 !important;\n}\n\n.cyan-text.text-lighten-2 {\n  color: #4dd0e1 !important;\n}\n\n.cyan.lighten-1 {\n  background-color: #26c6da !important;\n}\n\n.cyan-text.text-lighten-1 {\n  color: #26c6da !important;\n}\n\n.cyan {\n  background-color: #00bcd4 !important;\n}\n\n.cyan-text {\n  color: #00bcd4 !important;\n}\n\n.cyan.darken-1 {\n  background-color: #00acc1 !important;\n}\n\n.cyan-text.text-darken-1 {\n  color: #00acc1 !important;\n}\n\n.cyan.darken-2 {\n  background-color: #0097a7 !important;\n}\n\n.cyan-text.text-darken-2 {\n  color: #0097a7 !important;\n}\n\n.cyan.darken-3 {\n  background-color: #00838f !important;\n}\n\n.cyan-text.text-darken-3 {\n  color: #00838f !important;\n}\n\n.cyan.darken-4 {\n  background-color: #006064 !important;\n}\n\n.cyan-text.text-darken-4 {\n  color: #006064 !important;\n}\n\n.cyan.accent-1 {\n  background-color: #84ffff !important;\n}\n\n.cyan-text.text-accent-1 {\n  color: #84ffff !important;\n}\n\n.cyan.accent-2 {\n  background-color: #18ffff !important;\n}\n\n.cyan-text.text-accent-2 {\n  color: #18ffff !important;\n}\n\n.cyan.accent-3 {\n  background-color: #00e5ff !important;\n}\n\n.cyan-text.text-accent-3 {\n  color: #00e5ff !important;\n}\n\n.cyan.accent-4 {\n  background-color: #00b8d4 !important;\n}\n\n.cyan-text.text-accent-4 {\n  color: #00b8d4 !important;\n}\n\n.teal.lighten-5 {\n  background-color: #e0f2f1 !important;\n}\n\n.teal-text.text-lighten-5 {\n  color: #e0f2f1 !important;\n}\n\n.teal.lighten-4 {\n  background-color: #b2dfdb !important;\n}\n\n.teal-text.text-lighten-4 {\n  color: #b2dfdb !important;\n}\n\n.teal.lighten-3 {\n  background-color: #80cbc4 !important;\n}\n\n.teal-text.text-lighten-3 {\n  color: #80cbc4 !important;\n}\n\n.teal.lighten-2 {\n  background-color: #4db6ac !important;\n}\n\n.teal-text.text-lighten-2 {\n  color: #4db6ac !important;\n}\n\n.teal.lighten-1 {\n  background-color: #26a69a !important;\n}\n\n.teal-text.text-lighten-1 {\n  color: #26a69a !important;\n}\n\n.teal {\n  background-color: #009688 !important;\n}\n\n.teal-text {\n  color: #009688 !important;\n}\n\n.teal.darken-1 {\n  background-color: #00897b !important;\n}\n\n.teal-text.text-darken-1 {\n  color: #00897b !important;\n}\n\n.teal.darken-2 {\n  background-color: #00796b !important;\n}\n\n.teal-text.text-darken-2 {\n  color: #00796b !important;\n}\n\n.teal.darken-3 {\n  background-color: #00695c !important;\n}\n\n.teal-text.text-darken-3 {\n  color: #00695c !important;\n}\n\n.teal.darken-4 {\n  background-color: #004d40 !important;\n}\n\n.teal-text.text-darken-4 {\n  color: #004d40 !important;\n}\n\n.teal.accent-1 {\n  background-color: #a7ffeb !important;\n}\n\n.teal-text.text-accent-1 {\n  color: #a7ffeb !important;\n}\n\n.teal.accent-2 {\n  background-color: #64ffda !important;\n}\n\n.teal-text.text-accent-2 {\n  color: #64ffda !important;\n}\n\n.teal.accent-3 {\n  background-color: #1de9b6 !important;\n}\n\n.teal-text.text-accent-3 {\n  color: #1de9b6 !important;\n}\n\n.teal.accent-4 {\n  background-color: #00bfa5 !important;\n}\n\n.teal-text.text-accent-4 {\n  color: #00bfa5 !important;\n}\n\n.green.lighten-5 {\n  background-color: #E8F5E9 !important;\n}\n\n.green-text.text-lighten-5 {\n  color: #E8F5E9 !important;\n}\n\n.green.lighten-4 {\n  background-color: #C8E6C9 !important;\n}\n\n.green-text.text-lighten-4 {\n  color: #C8E6C9 !important;\n}\n\n.green.lighten-3 {\n  background-color: #A5D6A7 !important;\n}\n\n.green-text.text-lighten-3 {\n  color: #A5D6A7 !important;\n}\n\n.green.lighten-2 {\n  background-color: #81C784 !important;\n}\n\n.green-text.text-lighten-2 {\n  color: #81C784 !important;\n}\n\n.green.lighten-1 {\n  background-color: #66BB6A !important;\n}\n\n.green-text.text-lighten-1 {\n  color: #66BB6A !important;\n}\n\n.green {\n  background-color: #4CAF50 !important;\n}\n\n.green-text {\n  color: #4CAF50 !important;\n}\n\n.green.darken-1 {\n  background-color: #43A047 !important;\n}\n\n.green-text.text-darken-1 {\n  color: #43A047 !important;\n}\n\n.green.darken-2 {\n  background-color: #388E3C !important;\n}\n\n.green-text.text-darken-2 {\n  color: #388E3C !important;\n}\n\n.green.darken-3 {\n  background-color: #2E7D32 !important;\n}\n\n.green-text.text-darken-3 {\n  color: #2E7D32 !important;\n}\n\n.green.darken-4 {\n  background-color: #1B5E20 !important;\n}\n\n.green-text.text-darken-4 {\n  color: #1B5E20 !important;\n}\n\n.green.accent-1 {\n  background-color: #B9F6CA !important;\n}\n\n.green-text.text-accent-1 {\n  color: #B9F6CA !important;\n}\n\n.green.accent-2 {\n  background-color: #69F0AE !important;\n}\n\n.green-text.text-accent-2 {\n  color: #69F0AE !important;\n}\n\n.green.accent-3 {\n  background-color: #00E676 !important;\n}\n\n.green-text.text-accent-3 {\n  color: #00E676 !important;\n}\n\n.green.accent-4 {\n  background-color: #00C853 !important;\n}\n\n.green-text.text-accent-4 {\n  color: #00C853 !important;\n}\n\n.light-green.lighten-5 {\n  background-color: #f1f8e9 !important;\n}\n\n.light-green-text.text-lighten-5 {\n  color: #f1f8e9 !important;\n}\n\n.light-green.lighten-4 {\n  background-color: #dcedc8 !important;\n}\n\n.light-green-text.text-lighten-4 {\n  color: #dcedc8 !important;\n}\n\n.light-green.lighten-3 {\n  background-color: #c5e1a5 !important;\n}\n\n.light-green-text.text-lighten-3 {\n  color: #c5e1a5 !important;\n}\n\n.light-green.lighten-2 {\n  background-color: #aed581 !important;\n}\n\n.light-green-text.text-lighten-2 {\n  color: #aed581 !important;\n}\n\n.light-green.lighten-1 {\n  background-color: #9ccc65 !important;\n}\n\n.light-green-text.text-lighten-1 {\n  color: #9ccc65 !important;\n}\n\n.light-green {\n  background-color: #8bc34a !important;\n}\n\n.light-green-text {\n  color: #8bc34a !important;\n}\n\n.light-green.darken-1 {\n  background-color: #7cb342 !important;\n}\n\n.light-green-text.text-darken-1 {\n  color: #7cb342 !important;\n}\n\n.light-green.darken-2 {\n  background-color: #689f38 !important;\n}\n\n.light-green-text.text-darken-2 {\n  color: #689f38 !important;\n}\n\n.light-green.darken-3 {\n  background-color: #558b2f !important;\n}\n\n.light-green-text.text-darken-3 {\n  color: #558b2f !important;\n}\n\n.light-green.darken-4 {\n  background-color: #33691e !important;\n}\n\n.light-green-text.text-darken-4 {\n  color: #33691e !important;\n}\n\n.light-green.accent-1 {\n  background-color: #ccff90 !important;\n}\n\n.light-green-text.text-accent-1 {\n  color: #ccff90 !important;\n}\n\n.light-green.accent-2 {\n  background-color: #b2ff59 !important;\n}\n\n.light-green-text.text-accent-2 {\n  color: #b2ff59 !important;\n}\n\n.light-green.accent-3 {\n  background-color: #76ff03 !important;\n}\n\n.light-green-text.text-accent-3 {\n  color: #76ff03 !important;\n}\n\n.light-green.accent-4 {\n  background-color: #64dd17 !important;\n}\n\n.light-green-text.text-accent-4 {\n  color: #64dd17 !important;\n}\n\n.lime.lighten-5 {\n  background-color: #f9fbe7 !important;\n}\n\n.lime-text.text-lighten-5 {\n  color: #f9fbe7 !important;\n}\n\n.lime.lighten-4 {\n  background-color: #f0f4c3 !important;\n}\n\n.lime-text.text-lighten-4 {\n  color: #f0f4c3 !important;\n}\n\n.lime.lighten-3 {\n  background-color: #e6ee9c !important;\n}\n\n.lime-text.text-lighten-3 {\n  color: #e6ee9c !important;\n}\n\n.lime.lighten-2 {\n  background-color: #dce775 !important;\n}\n\n.lime-text.text-lighten-2 {\n  color: #dce775 !important;\n}\n\n.lime.lighten-1 {\n  background-color: #d4e157 !important;\n}\n\n.lime-text.text-lighten-1 {\n  color: #d4e157 !important;\n}\n\n.lime {\n  background-color: #cddc39 !important;\n}\n\n.lime-text {\n  color: #cddc39 !important;\n}\n\n.lime.darken-1 {\n  background-color: #c0ca33 !important;\n}\n\n.lime-text.text-darken-1 {\n  color: #c0ca33 !important;\n}\n\n.lime.darken-2 {\n  background-color: #afb42b !important;\n}\n\n.lime-text.text-darken-2 {\n  color: #afb42b !important;\n}\n\n.lime.darken-3 {\n  background-color: #9e9d24 !important;\n}\n\n.lime-text.text-darken-3 {\n  color: #9e9d24 !important;\n}\n\n.lime.darken-4 {\n  background-color: #827717 !important;\n}\n\n.lime-text.text-darken-4 {\n  color: #827717 !important;\n}\n\n.lime.accent-1 {\n  background-color: #f4ff81 !important;\n}\n\n.lime-text.text-accent-1 {\n  color: #f4ff81 !important;\n}\n\n.lime.accent-2 {\n  background-color: #eeff41 !important;\n}\n\n.lime-text.text-accent-2 {\n  color: #eeff41 !important;\n}\n\n.lime.accent-3 {\n  background-color: #c6ff00 !important;\n}\n\n.lime-text.text-accent-3 {\n  color: #c6ff00 !important;\n}\n\n.lime.accent-4 {\n  background-color: #aeea00 !important;\n}\n\n.lime-text.text-accent-4 {\n  color: #aeea00 !important;\n}\n\n.yellow.lighten-5 {\n  background-color: #fffde7 !important;\n}\n\n.yellow-text.text-lighten-5 {\n  color: #fffde7 !important;\n}\n\n.yellow.lighten-4 {\n  background-color: #fff9c4 !important;\n}\n\n.yellow-text.text-lighten-4 {\n  color: #fff9c4 !important;\n}\n\n.yellow.lighten-3 {\n  background-color: #fff59d !important;\n}\n\n.yellow-text.text-lighten-3 {\n  color: #fff59d !important;\n}\n\n.yellow.lighten-2 {\n  background-color: #fff176 !important;\n}\n\n.yellow-text.text-lighten-2 {\n  color: #fff176 !important;\n}\n\n.yellow.lighten-1 {\n  background-color: #ffee58 !important;\n}\n\n.yellow-text.text-lighten-1 {\n  color: #ffee58 !important;\n}\n\n.yellow {\n  background-color: #ffeb3b !important;\n}\n\n.yellow-text {\n  color: #ffeb3b !important;\n}\n\n.yellow.darken-1 {\n  background-color: #fdd835 !important;\n}\n\n.yellow-text.text-darken-1 {\n  color: #fdd835 !important;\n}\n\n.yellow.darken-2 {\n  background-color: #fbc02d !important;\n}\n\n.yellow-text.text-darken-2 {\n  color: #fbc02d !important;\n}\n\n.yellow.darken-3 {\n  background-color: #f9a825 !important;\n}\n\n.yellow-text.text-darken-3 {\n  color: #f9a825 !important;\n}\n\n.yellow.darken-4 {\n  background-color: #f57f17 !important;\n}\n\n.yellow-text.text-darken-4 {\n  color: #f57f17 !important;\n}\n\n.yellow.accent-1 {\n  background-color: #ffff8d !important;\n}\n\n.yellow-text.text-accent-1 {\n  color: #ffff8d !important;\n}\n\n.yellow.accent-2 {\n  background-color: #ffff00 !important;\n}\n\n.yellow-text.text-accent-2 {\n  color: #ffff00 !important;\n}\n\n.yellow.accent-3 {\n  background-color: #ffea00 !important;\n}\n\n.yellow-text.text-accent-3 {\n  color: #ffea00 !important;\n}\n\n.yellow.accent-4 {\n  background-color: #ffd600 !important;\n}\n\n.yellow-text.text-accent-4 {\n  color: #ffd600 !important;\n}\n\n.amber.lighten-5 {\n  background-color: #fff8e1 !important;\n}\n\n.amber-text.text-lighten-5 {\n  color: #fff8e1 !important;\n}\n\n.amber.lighten-4 {\n  background-color: #ffecb3 !important;\n}\n\n.amber-text.text-lighten-4 {\n  color: #ffecb3 !important;\n}\n\n.amber.lighten-3 {\n  background-color: #ffe082 !important;\n}\n\n.amber-text.text-lighten-3 {\n  color: #ffe082 !important;\n}\n\n.amber.lighten-2 {\n  background-color: #ffd54f !important;\n}\n\n.amber-text.text-lighten-2 {\n  color: #ffd54f !important;\n}\n\n.amber.lighten-1 {\n  background-color: #ffca28 !important;\n}\n\n.amber-text.text-lighten-1 {\n  color: #ffca28 !important;\n}\n\n.amber {\n  background-color: #ffc107 !important;\n}\n\n.amber-text {\n  color: #ffc107 !important;\n}\n\n.amber.darken-1 {\n  background-color: #ffb300 !important;\n}\n\n.amber-text.text-darken-1 {\n  color: #ffb300 !important;\n}\n\n.amber.darken-2 {\n  background-color: #ffa000 !important;\n}\n\n.amber-text.text-darken-2 {\n  color: #ffa000 !important;\n}\n\n.amber.darken-3 {\n  background-color: #ff8f00 !important;\n}\n\n.amber-text.text-darken-3 {\n  color: #ff8f00 !important;\n}\n\n.amber.darken-4 {\n  background-color: #ff6f00 !important;\n}\n\n.amber-text.text-darken-4 {\n  color: #ff6f00 !important;\n}\n\n.amber.accent-1 {\n  background-color: #ffe57f !important;\n}\n\n.amber-text.text-accent-1 {\n  color: #ffe57f !important;\n}\n\n.amber.accent-2 {\n  background-color: #ffd740 !important;\n}\n\n.amber-text.text-accent-2 {\n  color: #ffd740 !important;\n}\n\n.amber.accent-3 {\n  background-color: #ffc400 !important;\n}\n\n.amber-text.text-accent-3 {\n  color: #ffc400 !important;\n}\n\n.amber.accent-4 {\n  background-color: #ffab00 !important;\n}\n\n.amber-text.text-accent-4 {\n  color: #ffab00 !important;\n}\n\n.orange.lighten-5 {\n  background-color: #fff3e0 !important;\n}\n\n.orange-text.text-lighten-5 {\n  color: #fff3e0 !important;\n}\n\n.orange.lighten-4 {\n  background-color: #ffe0b2 !important;\n}\n\n.orange-text.text-lighten-4 {\n  color: #ffe0b2 !important;\n}\n\n.orange.lighten-3 {\n  background-color: #ffcc80 !important;\n}\n\n.orange-text.text-lighten-3 {\n  color: #ffcc80 !important;\n}\n\n.orange.lighten-2 {\n  background-color: #ffb74d !important;\n}\n\n.orange-text.text-lighten-2 {\n  color: #ffb74d !important;\n}\n\n.orange.lighten-1 {\n  background-color: #ffa726 !important;\n}\n\n.orange-text.text-lighten-1 {\n  color: #ffa726 !important;\n}\n\n.orange {\n  background-color: #ff9800 !important;\n}\n\n.orange-text {\n  color: #ff9800 !important;\n}\n\n.orange.darken-1 {\n  background-color: #fb8c00 !important;\n}\n\n.orange-text.text-darken-1 {\n  color: #fb8c00 !important;\n}\n\n.orange.darken-2 {\n  background-color: #f57c00 !important;\n}\n\n.orange-text.text-darken-2 {\n  color: #f57c00 !important;\n}\n\n.orange.darken-3 {\n  background-color: #ef6c00 !important;\n}\n\n.orange-text.text-darken-3 {\n  color: #ef6c00 !important;\n}\n\n.orange.darken-4 {\n  background-color: #e65100 !important;\n}\n\n.orange-text.text-darken-4 {\n  color: #e65100 !important;\n}\n\n.orange.accent-1 {\n  background-color: #ffd180 !important;\n}\n\n.orange-text.text-accent-1 {\n  color: #ffd180 !important;\n}\n\n.orange.accent-2 {\n  background-color: #ffab40 !important;\n}\n\n.orange-text.text-accent-2 {\n  color: #ffab40 !important;\n}\n\n.orange.accent-3 {\n  background-color: #ff9100 !important;\n}\n\n.orange-text.text-accent-3 {\n  color: #ff9100 !important;\n}\n\n.orange.accent-4 {\n  background-color: #ff6d00 !important;\n}\n\n.orange-text.text-accent-4 {\n  color: #ff6d00 !important;\n}\n\n.deep-orange.lighten-5 {\n  background-color: #fbe9e7 !important;\n}\n\n.deep-orange-text.text-lighten-5 {\n  color: #fbe9e7 !important;\n}\n\n.deep-orange.lighten-4 {\n  background-color: #ffccbc !important;\n}\n\n.deep-orange-text.text-lighten-4 {\n  color: #ffccbc !important;\n}\n\n.deep-orange.lighten-3 {\n  background-color: #ffab91 !important;\n}\n\n.deep-orange-text.text-lighten-3 {\n  color: #ffab91 !important;\n}\n\n.deep-orange.lighten-2 {\n  background-color: #ff8a65 !important;\n}\n\n.deep-orange-text.text-lighten-2 {\n  color: #ff8a65 !important;\n}\n\n.deep-orange.lighten-1 {\n  background-color: #ff7043 !important;\n}\n\n.deep-orange-text.text-lighten-1 {\n  color: #ff7043 !important;\n}\n\n.deep-orange {\n  background-color: #ff5722 !important;\n}\n\n.deep-orange-text {\n  color: #ff5722 !important;\n}\n\n.deep-orange.darken-1 {\n  background-color: #f4511e !important;\n}\n\n.deep-orange-text.text-darken-1 {\n  color: #f4511e !important;\n}\n\n.deep-orange.darken-2 {\n  background-color: #e64a19 !important;\n}\n\n.deep-orange-text.text-darken-2 {\n  color: #e64a19 !important;\n}\n\n.deep-orange.darken-3 {\n  background-color: #d84315 !important;\n}\n\n.deep-orange-text.text-darken-3 {\n  color: #d84315 !important;\n}\n\n.deep-orange.darken-4 {\n  background-color: #bf360c !important;\n}\n\n.deep-orange-text.text-darken-4 {\n  color: #bf360c !important;\n}\n\n.deep-orange.accent-1 {\n  background-color: #ff9e80 !important;\n}\n\n.deep-orange-text.text-accent-1 {\n  color: #ff9e80 !important;\n}\n\n.deep-orange.accent-2 {\n  background-color: #ff6e40 !important;\n}\n\n.deep-orange-text.text-accent-2 {\n  color: #ff6e40 !important;\n}\n\n.deep-orange.accent-3 {\n  background-color: #ff3d00 !important;\n}\n\n.deep-orange-text.text-accent-3 {\n  color: #ff3d00 !important;\n}\n\n.deep-orange.accent-4 {\n  background-color: #dd2c00 !important;\n}\n\n.deep-orange-text.text-accent-4 {\n  color: #dd2c00 !important;\n}\n\n.brown.lighten-5 {\n  background-color: #efebe9 !important;\n}\n\n.brown-text.text-lighten-5 {\n  color: #efebe9 !important;\n}\n\n.brown.lighten-4 {\n  background-color: #d7ccc8 !important;\n}\n\n.brown-text.text-lighten-4 {\n  color: #d7ccc8 !important;\n}\n\n.brown.lighten-3 {\n  background-color: #bcaaa4 !important;\n}\n\n.brown-text.text-lighten-3 {\n  color: #bcaaa4 !important;\n}\n\n.brown.lighten-2 {\n  background-color: #a1887f !important;\n}\n\n.brown-text.text-lighten-2 {\n  color: #a1887f !important;\n}\n\n.brown.lighten-1 {\n  background-color: #8d6e63 !important;\n}\n\n.brown-text.text-lighten-1 {\n  color: #8d6e63 !important;\n}\n\n.brown {\n  background-color: #795548 !important;\n}\n\n.brown-text {\n  color: #795548 !important;\n}\n\n.brown.darken-1 {\n  background-color: #6d4c41 !important;\n}\n\n.brown-text.text-darken-1 {\n  color: #6d4c41 !important;\n}\n\n.brown.darken-2 {\n  background-color: #5d4037 !important;\n}\n\n.brown-text.text-darken-2 {\n  color: #5d4037 !important;\n}\n\n.brown.darken-3 {\n  background-color: #4e342e !important;\n}\n\n.brown-text.text-darken-3 {\n  color: #4e342e !important;\n}\n\n.brown.darken-4 {\n  background-color: #3e2723 !important;\n}\n\n.brown-text.text-darken-4 {\n  color: #3e2723 !important;\n}\n\n.blue-grey.lighten-5 {\n  background-color: #eceff1 !important;\n}\n\n.blue-grey-text.text-lighten-5 {\n  color: #eceff1 !important;\n}\n\n.blue-grey.lighten-4 {\n  background-color: #cfd8dc !important;\n}\n\n.blue-grey-text.text-lighten-4 {\n  color: #cfd8dc !important;\n}\n\n.blue-grey.lighten-3 {\n  background-color: #b0bec5 !important;\n}\n\n.blue-grey-text.text-lighten-3 {\n  color: #b0bec5 !important;\n}\n\n.blue-grey.lighten-2 {\n  background-color: #90a4ae !important;\n}\n\n.blue-grey-text.text-lighten-2 {\n  color: #90a4ae !important;\n}\n\n.blue-grey.lighten-1 {\n  background-color: #78909c !important;\n}\n\n.blue-grey-text.text-lighten-1 {\n  color: #78909c !important;\n}\n\n.blue-grey {\n  background-color: #607d8b !important;\n}\n\n.blue-grey-text {\n  color: #607d8b !important;\n}\n\n.blue-grey.darken-1 {\n  background-color: #546e7a !important;\n}\n\n.blue-grey-text.text-darken-1 {\n  color: #546e7a !important;\n}\n\n.blue-grey.darken-2 {\n  background-color: #455a64 !important;\n}\n\n.blue-grey-text.text-darken-2 {\n  color: #455a64 !important;\n}\n\n.blue-grey.darken-3 {\n  background-color: #37474f !important;\n}\n\n.blue-grey-text.text-darken-3 {\n  color: #37474f !important;\n}\n\n.blue-grey.darken-4 {\n  background-color: #263238 !important;\n}\n\n.blue-grey-text.text-darken-4 {\n  color: #263238 !important;\n}\n\n.grey.lighten-5 {\n  background-color: #fafafa !important;\n}\n\n.grey-text.text-lighten-5 {\n  color: #fafafa !important;\n}\n\n.grey.lighten-4 {\n  background-color: #f5f5f5 !important;\n}\n\n.grey-text.text-lighten-4 {\n  color: #f5f5f5 !important;\n}\n\n.grey.lighten-3 {\n  background-color: #eeeeee !important;\n}\n\n.grey-text.text-lighten-3 {\n  color: #eeeeee !important;\n}\n\n.grey.lighten-2 {\n  background-color: #e0e0e0 !important;\n}\n\n.grey-text.text-lighten-2 {\n  color: #e0e0e0 !important;\n}\n\n.grey.lighten-1 {\n  background-color: #bdbdbd !important;\n}\n\n.grey-text.text-lighten-1 {\n  color: #bdbdbd !important;\n}\n\n.grey {\n  background-color: #9e9e9e !important;\n}\n\n.grey-text {\n  color: #9e9e9e !important;\n}\n\n.grey.darken-1 {\n  background-color: #757575 !important;\n}\n\n.grey-text.text-darken-1 {\n  color: #757575 !important;\n}\n\n.grey.darken-2 {\n  background-color: #616161 !important;\n}\n\n.grey-text.text-darken-2 {\n  color: #616161 !important;\n}\n\n.grey.darken-3 {\n  background-color: #424242 !important;\n}\n\n.grey-text.text-darken-3 {\n  color: #424242 !important;\n}\n\n.grey.darken-4 {\n  background-color: #212121 !important;\n}\n\n.grey-text.text-darken-4 {\n  color: #212121 !important;\n}\n\n.shades.black {\n  background-color: #000000 !important;\n}\n\n.shades-text.text-black {\n  color: #000000 !important;\n}\n\n.shades.white {\n  background-color: #FFFFFF !important;\n}\n\n.shades-text.text-white {\n  color: #FFFFFF !important;\n}\n\n.shades.transparent {\n  background-color: transparent !important;\n}\n\n.shades-text.text-transparent {\n  color: transparent !important;\n}\n\n.black {\n  background-color: #000000 !important;\n}\n\n.black-text {\n  color: #000000 !important;\n}\n\n.white {\n  background-color: #FFFFFF !important;\n}\n\n.white-text {\n  color: #FFFFFF !important;\n}\n\n.transparent {\n  background-color: transparent !important;\n}\n\n.transparent-text {\n  color: transparent !important;\n}\n\n/*** Colors ***/\n/*** Badges ***/\n/*** Buttons ***/\n/*** Cards ***/\n/*** Collapsible ***/\n/*** Chips ***/\n/*** Date Picker ***/\n/*** Dropdown ***/\n/*** Fonts ***/\n/*** Forms ***/\n/*** Global ***/\n/*** Navbar ***/\n/*** SideNav ***/\n/*** Photo Slider ***/\n/*** Spinners | Loaders ***/\n/*** Tabs ***/\n/*** Tables ***/\n/*** Toasts ***/\n/*** Typography ***/\n/*** Collections ***/\n/* Progress Bar */\n/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\nhtml {\n  font-family: sans-serif;\n  /* 1 */\n  -ms-text-size-adjust: 100%;\n  /* 2 */\n  -webkit-text-size-adjust: 100%;\n  /* 2 */\n}\n\n/**\n * Remove default margin.\n */\nbody {\n  margin: 0;\n}\n\n/* HTML5 display definitions\n   ========================================================================== */\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  /* 1 */\n  vertical-align: baseline;\n  /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n  display: none;\n}\n\n/* Links\n   ========================================================================== */\n/**\n * Remove the gray background color from active links in IE 10.\n */\na {\n  background-color: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\na:active,\na:hover {\n  outline: 0;\n}\n\n/* Text-level semantics\n   ========================================================================== */\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\nb,\nstrong {\n  font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\ndfn {\n  font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n  font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n/* Embedded content\n   ========================================================================== */\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n  border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n/* Grouping content\n   ========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n  margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\npre {\n  overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n/* Forms\n   ========================================================================== */\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n/**\n * 1. Correct color not being inherited.\n *    Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit;\n  /* 1 */\n  font: inherit;\n  /* 2 */\n  margin: 0;\n  /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n  overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n  text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n */\n/* 1 */\nhtml input[type=\"button\"],\nbutton,\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  /* 2 */\n  cursor: pointer;\n  /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\ninput {\n  line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box;\n  /* 1 */\n  padding: 0;\n  /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome\n *    (include `-moz` to future-proof).\n */\ninput[type=\"search\"] {\n  -webkit-appearance: textfield;\n  /* 1 */\n  /* 2 */\n  box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n  border: 0;\n  /* 1 */\n  padding: 0;\n  /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n  overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n  font-weight: bold;\n}\n\n/* Tables\n   ========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n\nhtml {\n  box-sizing: border-box;\n}\n\n*, *:before, *:after {\n  box-sizing: inherit;\n}\n\nul {\n  list-style-type: none;\n}\n\na {\n  color: #039be5;\n  text-decoration: none;\n  -webkit-tap-highlight-color: transparent;\n}\n\n.valign-wrapper {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n      -ms-flex-align: center;\n          align-items: center;\n}\n\n.valign-wrapper .valign {\n  display: block;\n}\n\nul {\n  padding: 0;\n}\n\nul li {\n  list-style-type: none;\n}\n\n.clearfix {\n  clear: both;\n}\n\n.z-depth-0 {\n  box-shadow: none !important;\n}\n\n.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav {\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n}\n\n.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover {\n  box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n}\n\n.z-depth-2 {\n  box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n.z-depth-3 {\n  box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);\n}\n\n.z-depth-4, .modal {\n  box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21);\n}\n\n.z-depth-5 {\n  box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22);\n}\n\n.hoverable {\n  transition: box-shadow .25s;\n  box-shadow: 0;\n}\n\n.hoverable:hover {\n  transition: box-shadow .25s;\n  box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n.divider {\n  height: 1px;\n  overflow: hidden;\n  background-color: #e0e0e0;\n}\n\nblockquote {\n  margin: 20px 0;\n  padding-left: 1.5rem;\n  border-left: 5px solid #ee6e73;\n}\n\ni {\n  line-height: inherit;\n}\n\ni.left {\n  float: left;\n  margin-right: 15px;\n}\n\ni.right {\n  float: right;\n  margin-left: 15px;\n}\n\ni.tiny {\n  font-size: 1rem;\n}\n\ni.small {\n  font-size: 2rem;\n}\n\ni.medium {\n  font-size: 4rem;\n}\n\ni.large {\n  font-size: 6rem;\n}\n\nimg.responsive-img,\nvideo.responsive-video {\n  max-width: 100%;\n  height: auto;\n}\n\n.pagination li {\n  display: inline-block;\n  font-size: 1.2rem;\n  padding: 0 10px;\n  line-height: 30px;\n  border-radius: 2px;\n  text-align: center;\n}\n\n.pagination li a {\n  color: #444;\n}\n\n.pagination li.active a {\n  color: #fff;\n}\n\n.pagination li.active {\n  background-color: #ee6e73;\n}\n\n.pagination li.disabled a {\n  cursor: default;\n  color: #999;\n}\n\n.pagination li i {\n  font-size: 2.2rem;\n  vertical-align: middle;\n}\n\n.pagination li.pages ul li {\n  display: inline-block;\n  float: none;\n}\n\n@media only screen and (max-width: 992px) {\n  .pagination {\n    width: 100%;\n  }\n  .pagination li.prev,\n  .pagination li.next {\n    width: 10%;\n  }\n  .pagination li.pages {\n    width: 80%;\n    overflow: hidden;\n    white-space: nowrap;\n  }\n}\n\n.breadcrumb {\n  font-size: 18px;\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.breadcrumb i,\n.breadcrumb [class^=\"mdi-\"], .breadcrumb [class*=\"mdi-\"],\n.breadcrumb i.material-icons {\n  display: inline-block;\n  float: left;\n  font-size: 24px;\n}\n\n.breadcrumb:before {\n  content: '\\E5CC';\n  color: rgba(255, 255, 255, 0.7);\n  vertical-align: top;\n  display: inline-block;\n  font-family: 'Material Icons';\n  font-weight: normal;\n  font-style: normal;\n  font-size: 25px;\n  margin: 0 10px 0 8px;\n  -webkit-font-smoothing: antialiased;\n}\n\n.breadcrumb:first-child:before {\n  display: none;\n}\n\n.breadcrumb:last-child {\n  color: #fff;\n}\n\n.parallax-container {\n  position: relative;\n  overflow: hidden;\n  height: 500px;\n}\n\n.parallax {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  z-index: -1;\n}\n\n.parallax img {\n  display: none;\n  position: absolute;\n  left: 50%;\n  bottom: 0;\n  min-width: 100%;\n  min-height: 100%;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n  -webkit-transform: translateX(-50%);\n          transform: translateX(-50%);\n}\n\n.pin-top, .pin-bottom {\n  position: relative;\n}\n\n.pinned {\n  position: fixed !important;\n}\n\n/*********************\n  Transition Classes\n**********************/\nul.staggered-list li {\n  opacity: 0;\n}\n\n.fade-in {\n  opacity: 0;\n  -webkit-transform-origin: 0 50%;\n          transform-origin: 0 50%;\n}\n\n/*********************\n  Media Query Classes\n**********************/\n@media only screen and (max-width: 600px) {\n  .hide-on-small-only, .hide-on-small-and-down {\n    display: none !important;\n  }\n}\n\n@media only screen and (max-width: 992px) {\n  .hide-on-med-and-down {\n    display: none !important;\n  }\n}\n\n@media only screen and (min-width: 601px) {\n  .hide-on-med-and-up {\n    display: none !important;\n  }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n  .hide-on-med-only {\n    display: none !important;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  .hide-on-large-only {\n    display: none !important;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  .show-on-large {\n    display: block !important;\n  }\n}\n\n@media only screen and (min-width: 600px) and (max-width: 992px) {\n  .show-on-medium {\n    display: block !important;\n  }\n}\n\n@media only screen and (max-width: 600px) {\n  .show-on-small {\n    display: block !important;\n  }\n}\n\n@media only screen and (min-width: 601px) {\n  .show-on-medium-and-up {\n    display: block !important;\n  }\n}\n\n@media only screen and (max-width: 992px) {\n  .show-on-medium-and-down {\n    display: block !important;\n  }\n}\n\n@media only screen and (max-width: 600px) {\n  .center-on-small-only {\n    text-align: center;\n  }\n}\n\nfooter.page-footer {\n  margin-top: 20px;\n  padding-top: 20px;\n  background-color: #ee6e73;\n}\n\nfooter.page-footer .footer-copyright {\n  overflow: hidden;\n  height: 50px;\n  line-height: 50px;\n  color: rgba(255, 255, 255, 0.8);\n  background-color: rgba(51, 51, 51, 0.08);\n}\n\ntable, th, td {\n  border: none;\n}\n\ntable {\n  width: 100%;\n  display: table;\n}\n\ntable.bordered > thead > tr,\ntable.bordered > tbody > tr {\n  border-bottom: 1px solid #d0d0d0;\n}\n\ntable.striped > tbody > tr:nth-child(odd) {\n  background-color: #f2f2f2;\n}\n\ntable.striped > tbody > tr > td {\n  border-radius: 0px;\n}\n\ntable.highlight > tbody > tr {\n  transition: background-color .25s ease;\n}\n\ntable.highlight > tbody > tr:hover {\n  background-color: #f2f2f2;\n}\n\ntable.centered thead tr th, table.centered tbody tr td {\n  text-align: center;\n}\n\nthead {\n  border-bottom: 1px solid #d0d0d0;\n}\n\ntd, th {\n  padding: 15px 5px;\n  display: table-cell;\n  text-align: left;\n  vertical-align: middle;\n  border-radius: 2px;\n}\n\n@media only screen and (max-width: 992px) {\n  table.responsive-table {\n    width: 100%;\n    border-collapse: collapse;\n    border-spacing: 0;\n    display: block;\n    position: relative;\n    /* sort out borders */\n  }\n  table.responsive-table th,\n  table.responsive-table td {\n    margin: 0;\n    vertical-align: top;\n  }\n  table.responsive-table th {\n    text-align: left;\n  }\n  table.responsive-table thead {\n    display: block;\n    float: left;\n  }\n  table.responsive-table thead tr {\n    display: block;\n    padding: 0 10px 0 0;\n  }\n  table.responsive-table thead tr th::before {\n    content: \"\\00a0\";\n  }\n  table.responsive-table tbody {\n    display: block;\n    width: auto;\n    position: relative;\n    overflow-x: auto;\n    white-space: nowrap;\n  }\n  table.responsive-table tbody tr {\n    display: inline-block;\n    vertical-align: top;\n  }\n  table.responsive-table th {\n    display: block;\n    text-align: right;\n  }\n  table.responsive-table td {\n    display: block;\n    min-height: 1.25em;\n    text-align: left;\n  }\n  table.responsive-table tr {\n    padding: 0 10px;\n  }\n  table.responsive-table thead {\n    border: 0;\n    border-right: 1px solid #d0d0d0;\n  }\n  table.responsive-table.bordered th {\n    border-bottom: 0;\n    border-left: 0;\n  }\n  table.responsive-table.bordered td {\n    border-left: 0;\n    border-right: 0;\n    border-bottom: 0;\n  }\n  table.responsive-table.bordered tr {\n    border: 0;\n  }\n  table.responsive-table.bordered tbody tr {\n    border-right: 1px solid #d0d0d0;\n  }\n}\n\n.collection {\n  margin: 0.5rem 0 1rem 0;\n  border: 1px solid #e0e0e0;\n  border-radius: 2px;\n  overflow: hidden;\n  position: relative;\n}\n\n.collection .collection-item {\n  background-color: #fff;\n  line-height: 1.5rem;\n  padding: 10px 20px;\n  margin: 0;\n  border-bottom: 1px solid #e0e0e0;\n}\n\n.collection .collection-item.avatar {\n  min-height: 84px;\n  padding-left: 72px;\n  position: relative;\n}\n\n.collection .collection-item.avatar .circle {\n  position: absolute;\n  width: 42px;\n  height: 42px;\n  overflow: hidden;\n  left: 15px;\n  display: inline-block;\n  vertical-align: middle;\n}\n\n.collection .collection-item.avatar i.circle {\n  font-size: 18px;\n  line-height: 42px;\n  color: #fff;\n  background-color: #999;\n  text-align: center;\n}\n\n.collection .collection-item.avatar .title {\n  font-size: 16px;\n}\n\n.collection .collection-item.avatar p {\n  margin: 0;\n}\n\n.collection .collection-item.avatar .secondary-content {\n  position: absolute;\n  top: 16px;\n  right: 16px;\n}\n\n.collection .collection-item:last-child {\n  border-bottom: none;\n}\n\n.collection .collection-item.active {\n  background-color: #26a69a;\n  color: #eafaf9;\n}\n\n.collection .collection-item.active .secondary-content {\n  color: #fff;\n}\n\n.collection a.collection-item {\n  display: block;\n  transition: .25s;\n  color: #26a69a;\n}\n\n.collection a.collection-item:not(.active):hover {\n  background-color: #ddd;\n}\n\n.collection.with-header .collection-header {\n  background-color: #fff;\n  border-bottom: 1px solid #e0e0e0;\n  padding: 10px 20px;\n}\n\n.collection.with-header .collection-item {\n  padding-left: 30px;\n}\n\n.collection.with-header .collection-item.avatar {\n  padding-left: 72px;\n}\n\n.secondary-content {\n  float: right;\n  color: #26a69a;\n}\n\n.collapsible .collection {\n  margin: 0;\n  border: none;\n}\n\nspan.badge {\n  min-width: 3rem;\n  padding: 0 6px;\n  text-align: center;\n  font-size: 1rem;\n  line-height: inherit;\n  color: #757575;\n  position: absolute;\n  right: 15px;\n  box-sizing: border-box;\n}\n\nspan.badge.new {\n  font-weight: 300;\n  font-size: 0.8rem;\n  color: #fff;\n  background-color: #26a69a;\n  border-radius: 2px;\n}\n\nspan.badge.new:after {\n  content: \" new\";\n}\n\nnav ul a span.badge {\n  position: static;\n  margin-left: 4px;\n  line-height: 0;\n}\n\n.video-container {\n  position: relative;\n  padding-bottom: 56.25%;\n  height: 0;\n  overflow: hidden;\n}\n\n.video-container iframe, .video-container object, .video-container embed {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n\n.progress {\n  position: relative;\n  height: 4px;\n  display: block;\n  width: 100%;\n  background-color: #acece6;\n  border-radius: 2px;\n  margin: 0.5rem 0 1rem 0;\n  overflow: hidden;\n}\n\n.progress .determinate {\n  position: absolute;\n  background-color: inherit;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  background-color: #26a69a;\n  transition: width .3s linear;\n}\n\n.progress .indeterminate {\n  background-color: #26a69a;\n}\n\n.progress .indeterminate:before {\n  content: '';\n  position: absolute;\n  background-color: inherit;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  will-change: left, right;\n  -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n          animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n}\n\n.progress .indeterminate:after {\n  content: '';\n  position: absolute;\n  background-color: inherit;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  will-change: left, right;\n  -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\n          animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\n  -webkit-animation-delay: 1.15s;\n          animation-delay: 1.15s;\n}\n\n@-webkit-keyframes indeterminate {\n  0% {\n    left: -35%;\n    right: 100%;\n  }\n  60% {\n    left: 100%;\n    right: -90%;\n  }\n  100% {\n    left: 100%;\n    right: -90%;\n  }\n}\n\n@keyframes indeterminate {\n  0% {\n    left: -35%;\n    right: 100%;\n  }\n  60% {\n    left: 100%;\n    right: -90%;\n  }\n  100% {\n    left: 100%;\n    right: -90%;\n  }\n}\n\n@-webkit-keyframes indeterminate-short {\n  0% {\n    left: -200%;\n    right: 100%;\n  }\n  60% {\n    left: 107%;\n    right: -8%;\n  }\n  100% {\n    left: 107%;\n    right: -8%;\n  }\n}\n\n@keyframes indeterminate-short {\n  0% {\n    left: -200%;\n    right: 100%;\n  }\n  60% {\n    left: 107%;\n    right: -8%;\n  }\n  100% {\n    left: 107%;\n    right: -8%;\n  }\n}\n\n/*******************\n  Utility Classes\n*******************/\n.hide {\n  display: none !important;\n}\n\n.left-align {\n  text-align: left;\n}\n\n.right-align {\n  text-align: right;\n}\n\n.center, .center-align {\n  text-align: center;\n}\n\n.left {\n  float: left !important;\n}\n\n.right {\n  float: right !important;\n}\n\n.no-select, input[type=range], input[type=range] + .thumb {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.circle {\n  border-radius: 50%;\n}\n\n.center-block {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.truncate {\n  display: block;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.no-padding {\n  padding: 0 !important;\n}\n\n/* This is needed for some mobile phones to display the Google Icon font properly */\n.material-icons {\n  text-rendering: optimizeLegibility;\n  -webkit-font-feature-settings: 'liga';\n     -moz-font-feature-settings: 'liga';\n          font-feature-settings: 'liga';\n}\n\n@font-face {\n  font-family: \"Material-Design-Icons\";\n  src: url(\"../font/material-design-icons/Material-Design-Icons.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/material-design-icons/Material-Design-Icons.woff2\") format(\"woff2\"), url(\"../font/material-design-icons/Material-Design-Icons.woff\") format(\"woff\"), url(\"../font/material-design-icons/Material-Design-Icons.ttf\") format(\"truetype\"), url(\"../font/material-design-icons/Material-Design-Icons.svg#Material-Design-Icons\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n\n[class^=\"mdi-\"], [class*=\"mdi-\"] {\n  speak: none;\n  display: inline-block;\n  font-family: \"Material-Design-Icons\";\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  /* Better Font Rendering =========== */\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-transform: translate(0, 0);\n          transform: translate(0, 0);\n}\n\n[class^=\"mdi-\"]:before, [class*=\"mdi-\"]:before {\n  display: inline-block;\n  speak: none;\n  text-decoration: inherit;\n}\n\n[class^=\"mdi-\"].pull-left, [class*=\"mdi-\"].pull-left {\n  margin-right: .3em;\n}\n\n[class^=\"mdi-\"].pull-right, [class*=\"mdi-\"].pull-right {\n  margin-left: .3em;\n}\n\n[class^=\"mdi-\"].mdi-lg:before, [class^=\"mdi-\"].mdi-lg:after, [class*=\"mdi-\"].mdi-lg:before, [class*=\"mdi-\"].mdi-lg:after {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n\n[class^=\"mdi-\"].mdi-2x:before, [class^=\"mdi-\"].mdi-2x:after, [class*=\"mdi-\"].mdi-2x:before, [class*=\"mdi-\"].mdi-2x:after {\n  font-size: 2em;\n}\n\n[class^=\"mdi-\"].mdi-3x:before, [class^=\"mdi-\"].mdi-3x:after, [class*=\"mdi-\"].mdi-3x:before, [class*=\"mdi-\"].mdi-3x:after {\n  font-size: 3em;\n}\n\n[class^=\"mdi-\"].mdi-4x:before, [class^=\"mdi-\"].mdi-4x:after, [class*=\"mdi-\"].mdi-4x:before, [class*=\"mdi-\"].mdi-4x:after {\n  font-size: 4em;\n}\n\n[class^=\"mdi-\"].mdi-5x:before, [class^=\"mdi-\"].mdi-5x:after, [class*=\"mdi-\"].mdi-5x:before, [class*=\"mdi-\"].mdi-5x:after {\n  font-size: 5em;\n}\n\n[class^=\"mdi-device-signal-cellular-\"]:after,\n[class^=\"mdi-device-battery-\"]:after,\n[class^=\"mdi-device-battery-charging-\"]:after,\n[class^=\"mdi-device-signal-cellular-connected-no-internet-\"]:after,\n[class^=\"mdi-device-signal-wifi-\"]:after,\n[class^=\"mdi-device-signal-wifi-statusbar-not-connected\"]:after,\n.mdi-device-network-wifi:after {\n  opacity: .3;\n  position: absolute;\n  left: 0;\n  top: 0;\n  z-index: 1;\n  display: inline-block;\n  speak: none;\n  text-decoration: inherit;\n}\n\n[class^=\"mdi-device-signal-cellular-\"]:after {\n  content: \"\\e758\";\n}\n\n[class^=\"mdi-device-battery-\"]:after {\n  content: \"\\e735\";\n}\n\n[class^=\"mdi-device-battery-charging-\"]:after {\n  content: \"\\e733\";\n}\n\n[class^=\"mdi-device-signal-cellular-connected-no-internet-\"]:after {\n  content: \"\\e75d\";\n}\n\n[class^=\"mdi-device-signal-wifi-\"]:after, .mdi-device-network-wifi:after {\n  content: \"\\e765\";\n}\n\n[class^=\"mdi-device-signal-wifi-statusbasr-not-connected\"]:after {\n  content: \"\\e8f7\";\n}\n\n.mdi-device-signal-cellular-off:after, .mdi-device-signal-cellular-null:after, .mdi-device-signal-cellular-no-sim:after, .mdi-device-signal-wifi-off:after, .mdi-device-signal-wifi-4-bar:after, .mdi-device-signal-cellular-4-bar:after, .mdi-device-battery-alert:after, .mdi-device-signal-cellular-connected-no-internet-4-bar:after, .mdi-device-battery-std:after, .mdi-device-battery-full .mdi-device-battery-unknown:after {\n  content: \"\";\n}\n\n.mdi-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n\n.mdi-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n\n.mdi-ul > li {\n  position: relative;\n}\n\n.mdi-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n\n.mdi-li.mdi-lg {\n  left: -1.85714286em;\n}\n\n.mdi-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n\n.mdi-spin {\n  -webkit-animation: mdi-spin 2s infinite linear;\n  animation: mdi-spin 2s infinite linear;\n  -webkit-transform-origin: 50% 50%;\n  transform-origin: 50% 50%;\n}\n\n.mdi-pulse {\n  -webkit-animation: mdi-spin 1s steps(8) infinite;\n  animation: mdi-spin 1s steps(8) infinite;\n  -webkit-transform-origin: 50% 50%;\n  transform-origin: 50% 50%;\n}\n\n@-webkit-keyframes mdi-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n\n@keyframes mdi-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n\n.mdi-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n.mdi-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n\n.mdi-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n\n.mdi-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n\n.mdi-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n\n:root .mdi-rotate-90,\n:root .mdi-rotate-180,\n:root .mdi-rotate-270,\n:root .mdi-flip-horizontal,\n:root .mdi-flip-vertical {\n  -webkit-filter: none;\n          filter: none;\n}\n\n.mdi-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n\n.mdi-stack-1x,\n.mdi-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n\n.mdi-stack-1x {\n  line-height: inherit;\n}\n\n.mdi-stack-2x {\n  font-size: 2em;\n}\n\n.mdi-inverse {\n  color: #ffffff;\n}\n\n/* Start Icons */\n.mdi-action-3d-rotation:before {\n  content: \"\\e600\";\n}\n\n.mdi-action-accessibility:before {\n  content: \"\\e601\";\n}\n\n.mdi-action-account-balance-wallet:before {\n  content: \"\\e602\";\n}\n\n.mdi-action-account-balance:before {\n  content: \"\\e603\";\n}\n\n.mdi-action-account-box:before {\n  content: \"\\e604\";\n}\n\n.mdi-action-account-child:before {\n  content: \"\\e605\";\n}\n\n.mdi-action-account-circle:before {\n  content: \"\\e606\";\n}\n\n.mdi-action-add-shopping-cart:before {\n  content: \"\\e607\";\n}\n\n.mdi-action-alarm-add:before {\n  content: \"\\e608\";\n}\n\n.mdi-action-alarm-off:before {\n  content: \"\\e609\";\n}\n\n.mdi-action-alarm-on:before {\n  content: \"\\e60a\";\n}\n\n.mdi-action-alarm:before {\n  content: \"\\e60b\";\n}\n\n.mdi-action-android:before {\n  content: \"\\e60c\";\n}\n\n.mdi-action-announcement:before {\n  content: \"\\e60d\";\n}\n\n.mdi-action-aspect-ratio:before {\n  content: \"\\e60e\";\n}\n\n.mdi-action-assessment:before {\n  content: \"\\e60f\";\n}\n\n.mdi-action-assignment-ind:before {\n  content: \"\\e610\";\n}\n\n.mdi-action-assignment-late:before {\n  content: \"\\e611\";\n}\n\n.mdi-action-assignment-return:before {\n  content: \"\\e612\";\n}\n\n.mdi-action-assignment-returned:before {\n  content: \"\\e613\";\n}\n\n.mdi-action-assignment-turned-in:before {\n  content: \"\\e614\";\n}\n\n.mdi-action-assignment:before {\n  content: \"\\e615\";\n}\n\n.mdi-action-autorenew:before {\n  content: \"\\e616\";\n}\n\n.mdi-action-backup:before {\n  content: \"\\e617\";\n}\n\n.mdi-action-book:before {\n  content: \"\\e618\";\n}\n\n.mdi-action-bookmark-outline:before {\n  content: \"\\e619\";\n}\n\n.mdi-action-bookmark:before {\n  content: \"\\e61a\";\n}\n\n.mdi-action-bug-report:before {\n  content: \"\\e61b\";\n}\n\n.mdi-action-cached:before {\n  content: \"\\e61c\";\n}\n\n.mdi-action-check-circle:before {\n  content: \"\\e61d\";\n}\n\n.mdi-action-class:before {\n  content: \"\\e61e\";\n}\n\n.mdi-action-credit-card:before {\n  content: \"\\e61f\";\n}\n\n.mdi-action-dashboard:before {\n  content: \"\\e620\";\n}\n\n.mdi-action-delete:before {\n  content: \"\\e621\";\n}\n\n.mdi-action-description:before {\n  content: \"\\e622\";\n}\n\n.mdi-action-dns:before {\n  content: \"\\e623\";\n}\n\n.mdi-action-done-all:before {\n  content: \"\\e624\";\n}\n\n.mdi-action-done:before {\n  content: \"\\e625\";\n}\n\n.mdi-action-event:before {\n  content: \"\\e626\";\n}\n\n.mdi-action-exit-to-app:before {\n  content: \"\\e627\";\n}\n\n.mdi-action-explore:before {\n  content: \"\\e628\";\n}\n\n.mdi-action-extension:before {\n  content: \"\\e629\";\n}\n\n.mdi-action-face-unlock:before {\n  content: \"\\e62a\";\n}\n\n.mdi-action-favorite-outline:before {\n  content: \"\\e62b\";\n}\n\n.mdi-action-favorite:before {\n  content: \"\\e62c\";\n}\n\n.mdi-action-find-in-page:before {\n  content: \"\\e62d\";\n}\n\n.mdi-action-find-replace:before {\n  content: \"\\e62e\";\n}\n\n.mdi-action-flip-to-back:before {\n  content: \"\\e62f\";\n}\n\n.mdi-action-flip-to-front:before {\n  content: \"\\e630\";\n}\n\n.mdi-action-get-app:before {\n  content: \"\\e631\";\n}\n\n.mdi-action-grade:before {\n  content: \"\\e632\";\n}\n\n.mdi-action-group-work:before {\n  content: \"\\e633\";\n}\n\n.mdi-action-help:before {\n  content: \"\\e634\";\n}\n\n.mdi-action-highlight-remove:before {\n  content: \"\\e635\";\n}\n\n.mdi-action-history:before {\n  content: \"\\e636\";\n}\n\n.mdi-action-home:before {\n  content: \"\\e637\";\n}\n\n.mdi-action-https:before {\n  content: \"\\e638\";\n}\n\n.mdi-action-info-outline:before {\n  content: \"\\e639\";\n}\n\n.mdi-action-info:before {\n  content: \"\\e63a\";\n}\n\n.mdi-action-input:before {\n  content: \"\\e63b\";\n}\n\n.mdi-action-invert-colors:before {\n  content: \"\\e63c\";\n}\n\n.mdi-action-label-outline:before {\n  content: \"\\e63d\";\n}\n\n.mdi-action-label:before {\n  content: \"\\e63e\";\n}\n\n.mdi-action-language:before {\n  content: \"\\e63f\";\n}\n\n.mdi-action-launch:before {\n  content: \"\\e640\";\n}\n\n.mdi-action-list:before {\n  content: \"\\e641\";\n}\n\n.mdi-action-lock-open:before {\n  content: \"\\e642\";\n}\n\n.mdi-action-lock-outline:before {\n  content: \"\\e643\";\n}\n\n.mdi-action-lock:before {\n  content: \"\\e644\";\n}\n\n.mdi-action-loyalty:before {\n  content: \"\\e645\";\n}\n\n.mdi-action-markunread-mailbox:before {\n  content: \"\\e646\";\n}\n\n.mdi-action-note-add:before {\n  content: \"\\e647\";\n}\n\n.mdi-action-open-in-browser:before {\n  content: \"\\e648\";\n}\n\n.mdi-action-open-in-new:before {\n  content: \"\\e649\";\n}\n\n.mdi-action-open-with:before {\n  content: \"\\e64a\";\n}\n\n.mdi-action-pageview:before {\n  content: \"\\e64b\";\n}\n\n.mdi-action-payment:before {\n  content: \"\\e64c\";\n}\n\n.mdi-action-perm-camera-mic:before {\n  content: \"\\e64d\";\n}\n\n.mdi-action-perm-contact-cal:before {\n  content: \"\\e64e\";\n}\n\n.mdi-action-perm-data-setting:before {\n  content: \"\\e64f\";\n}\n\n.mdi-action-perm-device-info:before {\n  content: \"\\e650\";\n}\n\n.mdi-action-perm-identity:before {\n  content: \"\\e651\";\n}\n\n.mdi-action-perm-media:before {\n  content: \"\\e652\";\n}\n\n.mdi-action-perm-phone-msg:before {\n  content: \"\\e653\";\n}\n\n.mdi-action-perm-scan-wifi:before {\n  content: \"\\e654\";\n}\n\n.mdi-action-picture-in-picture:before {\n  content: \"\\e655\";\n}\n\n.mdi-action-polymer:before {\n  content: \"\\e656\";\n}\n\n.mdi-action-print:before {\n  content: \"\\e657\";\n}\n\n.mdi-action-query-builder:before {\n  content: \"\\e658\";\n}\n\n.mdi-action-question-answer:before {\n  content: \"\\e659\";\n}\n\n.mdi-action-receipt:before {\n  content: \"\\e65a\";\n}\n\n.mdi-action-redeem:before {\n  content: \"\\e65b\";\n}\n\n.mdi-action-reorder:before {\n  content: \"\\e65c\";\n}\n\n.mdi-action-report-problem:before {\n  content: \"\\e65d\";\n}\n\n.mdi-action-restore:before {\n  content: \"\\e65e\";\n}\n\n.mdi-action-room:before {\n  content: \"\\e65f\";\n}\n\n.mdi-action-schedule:before {\n  content: \"\\e660\";\n}\n\n.mdi-action-search:before {\n  content: \"\\e661\";\n}\n\n.mdi-action-settings-applications:before {\n  content: \"\\e662\";\n}\n\n.mdi-action-settings-backup-restore:before {\n  content: \"\\e663\";\n}\n\n.mdi-action-settings-bluetooth:before {\n  content: \"\\e664\";\n}\n\n.mdi-action-settings-cell:before {\n  content: \"\\e665\";\n}\n\n.mdi-action-settings-display:before {\n  content: \"\\e666\";\n}\n\n.mdi-action-settings-ethernet:before {\n  content: \"\\e667\";\n}\n\n.mdi-action-settings-input-antenna:before {\n  content: \"\\e668\";\n}\n\n.mdi-action-settings-input-component:before {\n  content: \"\\e669\";\n}\n\n.mdi-action-settings-input-composite:before {\n  content: \"\\e66a\";\n}\n\n.mdi-action-settings-input-hdmi:before {\n  content: \"\\e66b\";\n}\n\n.mdi-action-settings-input-svideo:before {\n  content: \"\\e66c\";\n}\n\n.mdi-action-settings-overscan:before {\n  content: \"\\e66d\";\n}\n\n.mdi-action-settings-phone:before {\n  content: \"\\e66e\";\n}\n\n.mdi-action-settings-power:before {\n  content: \"\\e66f\";\n}\n\n.mdi-action-settings-remote:before {\n  content: \"\\e670\";\n}\n\n.mdi-action-settings-voice:before {\n  content: \"\\e671\";\n}\n\n.mdi-action-settings:before {\n  content: \"\\e672\";\n}\n\n.mdi-action-shop-two:before {\n  content: \"\\e673\";\n}\n\n.mdi-action-shop:before {\n  content: \"\\e674\";\n}\n\n.mdi-action-shopping-basket:before {\n  content: \"\\e675\";\n}\n\n.mdi-action-shopping-cart:before {\n  content: \"\\e676\";\n}\n\n.mdi-action-speaker-notes:before {\n  content: \"\\e677\";\n}\n\n.mdi-action-spellcheck:before {\n  content: \"\\e678\";\n}\n\n.mdi-action-star-rate:before {\n  content: \"\\e679\";\n}\n\n.mdi-action-stars:before {\n  content: \"\\e67a\";\n}\n\n.mdi-action-store:before {\n  content: \"\\e67b\";\n}\n\n.mdi-action-subject:before {\n  content: \"\\e67c\";\n}\n\n.mdi-action-supervisor-account:before {\n  content: \"\\e67d\";\n}\n\n.mdi-action-swap-horiz:before {\n  content: \"\\e67e\";\n}\n\n.mdi-action-swap-vert-circle:before {\n  content: \"\\e67f\";\n}\n\n.mdi-action-swap-vert:before {\n  content: \"\\e680\";\n}\n\n.mdi-action-system-update-tv:before {\n  content: \"\\e681\";\n}\n\n.mdi-action-tab-unselected:before {\n  content: \"\\e682\";\n}\n\n.mdi-action-tab:before {\n  content: \"\\e683\";\n}\n\n.mdi-action-theaters:before {\n  content: \"\\e684\";\n}\n\n.mdi-action-thumb-down:before {\n  content: \"\\e685\";\n}\n\n.mdi-action-thumb-up:before {\n  content: \"\\e686\";\n}\n\n.mdi-action-thumbs-up-down:before {\n  content: \"\\e687\";\n}\n\n.mdi-action-toc:before {\n  content: \"\\e688\";\n}\n\n.mdi-action-today:before {\n  content: \"\\e689\";\n}\n\n.mdi-action-track-changes:before {\n  content: \"\\e68a\";\n}\n\n.mdi-action-translate:before {\n  content: \"\\e68b\";\n}\n\n.mdi-action-trending-down:before {\n  content: \"\\e68c\";\n}\n\n.mdi-action-trending-neutral:before {\n  content: \"\\e68d\";\n}\n\n.mdi-action-trending-up:before {\n  content: \"\\e68e\";\n}\n\n.mdi-action-turned-in-not:before {\n  content: \"\\e68f\";\n}\n\n.mdi-action-turned-in:before {\n  content: \"\\e690\";\n}\n\n.mdi-action-verified-user:before {\n  content: \"\\e691\";\n}\n\n.mdi-action-view-agenda:before {\n  content: \"\\e692\";\n}\n\n.mdi-action-view-array:before {\n  content: \"\\e693\";\n}\n\n.mdi-action-view-carousel:before {\n  content: \"\\e694\";\n}\n\n.mdi-action-view-column:before {\n  content: \"\\e695\";\n}\n\n.mdi-action-view-day:before {\n  content: \"\\e696\";\n}\n\n.mdi-action-view-headline:before {\n  content: \"\\e697\";\n}\n\n.mdi-action-view-list:before {\n  content: \"\\e698\";\n}\n\n.mdi-action-view-module:before {\n  content: \"\\e699\";\n}\n\n.mdi-action-view-quilt:before {\n  content: \"\\e69a\";\n}\n\n.mdi-action-view-stream:before {\n  content: \"\\e69b\";\n}\n\n.mdi-action-view-week:before {\n  content: \"\\e69c\";\n}\n\n.mdi-action-visibility-off:before {\n  content: \"\\e69d\";\n}\n\n.mdi-action-visibility:before {\n  content: \"\\e69e\";\n}\n\n.mdi-action-wallet-giftcard:before {\n  content: \"\\e69f\";\n}\n\n.mdi-action-wallet-membership:before {\n  content: \"\\e6a0\";\n}\n\n.mdi-action-wallet-travel:before {\n  content: \"\\e6a1\";\n}\n\n.mdi-action-work:before {\n  content: \"\\e6a2\";\n}\n\n.mdi-alert-error:before {\n  content: \"\\e6a3\";\n}\n\n.mdi-alert-warning:before {\n  content: \"\\e6a4\";\n}\n\n.mdi-av-album:before {\n  content: \"\\e6a5\";\n}\n\n.mdi-av-closed-caption:before {\n  content: \"\\e6a6\";\n}\n\n.mdi-av-equalizer:before {\n  content: \"\\e6a7\";\n}\n\n.mdi-av-explicit:before {\n  content: \"\\e6a8\";\n}\n\n.mdi-av-fast-forward:before {\n  content: \"\\e6a9\";\n}\n\n.mdi-av-fast-rewind:before {\n  content: \"\\e6aa\";\n}\n\n.mdi-av-games:before {\n  content: \"\\e6ab\";\n}\n\n.mdi-av-hearing:before {\n  content: \"\\e6ac\";\n}\n\n.mdi-av-high-quality:before {\n  content: \"\\e6ad\";\n}\n\n.mdi-av-loop:before {\n  content: \"\\e6ae\";\n}\n\n.mdi-av-mic-none:before {\n  content: \"\\e6af\";\n}\n\n.mdi-av-mic-off:before {\n  content: \"\\e6b0\";\n}\n\n.mdi-av-mic:before {\n  content: \"\\e6b1\";\n}\n\n.mdi-av-movie:before {\n  content: \"\\e6b2\";\n}\n\n.mdi-av-my-library-add:before {\n  content: \"\\e6b3\";\n}\n\n.mdi-av-my-library-books:before {\n  content: \"\\e6b4\";\n}\n\n.mdi-av-my-library-music:before {\n  content: \"\\e6b5\";\n}\n\n.mdi-av-new-releases:before {\n  content: \"\\e6b6\";\n}\n\n.mdi-av-not-interested:before {\n  content: \"\\e6b7\";\n}\n\n.mdi-av-pause-circle-fill:before {\n  content: \"\\e6b8\";\n}\n\n.mdi-av-pause-circle-outline:before {\n  content: \"\\e6b9\";\n}\n\n.mdi-av-pause:before {\n  content: \"\\e6ba\";\n}\n\n.mdi-av-play-arrow:before {\n  content: \"\\e6bb\";\n}\n\n.mdi-av-play-circle-fill:before {\n  content: \"\\e6bc\";\n}\n\n.mdi-av-play-circle-outline:before {\n  content: \"\\e6bd\";\n}\n\n.mdi-av-play-shopping-bag:before {\n  content: \"\\e6be\";\n}\n\n.mdi-av-playlist-add:before {\n  content: \"\\e6bf\";\n}\n\n.mdi-av-queue-music:before {\n  content: \"\\e6c0\";\n}\n\n.mdi-av-queue:before {\n  content: \"\\e6c1\";\n}\n\n.mdi-av-radio:before {\n  content: \"\\e6c2\";\n}\n\n.mdi-av-recent-actors:before {\n  content: \"\\e6c3\";\n}\n\n.mdi-av-repeat-one:before {\n  content: \"\\e6c4\";\n}\n\n.mdi-av-repeat:before {\n  content: \"\\e6c5\";\n}\n\n.mdi-av-replay:before {\n  content: \"\\e6c6\";\n}\n\n.mdi-av-shuffle:before {\n  content: \"\\e6c7\";\n}\n\n.mdi-av-skip-next:before {\n  content: \"\\e6c8\";\n}\n\n.mdi-av-skip-previous:before {\n  content: \"\\e6c9\";\n}\n\n.mdi-av-snooze:before {\n  content: \"\\e6ca\";\n}\n\n.mdi-av-stop:before {\n  content: \"\\e6cb\";\n}\n\n.mdi-av-subtitles:before {\n  content: \"\\e6cc\";\n}\n\n.mdi-av-surround-sound:before {\n  content: \"\\e6cd\";\n}\n\n.mdi-av-timer:before {\n  content: \"\\e6ce\";\n}\n\n.mdi-av-video-collection:before {\n  content: \"\\e6cf\";\n}\n\n.mdi-av-videocam-off:before {\n  content: \"\\e6d0\";\n}\n\n.mdi-av-videocam:before {\n  content: \"\\e6d1\";\n}\n\n.mdi-av-volume-down:before {\n  content: \"\\e6d2\";\n}\n\n.mdi-av-volume-mute:before {\n  content: \"\\e6d3\";\n}\n\n.mdi-av-volume-off:before {\n  content: \"\\e6d4\";\n}\n\n.mdi-av-volume-up:before {\n  content: \"\\e6d5\";\n}\n\n.mdi-av-web:before {\n  content: \"\\e6d6\";\n}\n\n.mdi-communication-business:before {\n  content: \"\\e6d7\";\n}\n\n.mdi-communication-call-end:before {\n  content: \"\\e6d8\";\n}\n\n.mdi-communication-call-made:before {\n  content: \"\\e6d9\";\n}\n\n.mdi-communication-call-merge:before {\n  content: \"\\e6da\";\n}\n\n.mdi-communication-call-missed:before {\n  content: \"\\e6db\";\n}\n\n.mdi-communication-call-received:before {\n  content: \"\\e6dc\";\n}\n\n.mdi-communication-call-split:before {\n  content: \"\\e6dd\";\n}\n\n.mdi-communication-call:before {\n  content: \"\\e6de\";\n}\n\n.mdi-communication-chat:before {\n  content: \"\\e6df\";\n}\n\n.mdi-communication-clear-all:before {\n  content: \"\\e6e0\";\n}\n\n.mdi-communication-comment:before {\n  content: \"\\e6e1\";\n}\n\n.mdi-communication-contacts:before {\n  content: \"\\e6e2\";\n}\n\n.mdi-communication-dialer-sip:before {\n  content: \"\\e6e3\";\n}\n\n.mdi-communication-dialpad:before {\n  content: \"\\e6e4\";\n}\n\n.mdi-communication-dnd-on:before {\n  content: \"\\e6e5\";\n}\n\n.mdi-communication-email:before {\n  content: \"\\e6e6\";\n}\n\n.mdi-communication-forum:before {\n  content: \"\\e6e7\";\n}\n\n.mdi-communication-import-export:before {\n  content: \"\\e6e8\";\n}\n\n.mdi-communication-invert-colors-off:before {\n  content: \"\\e6e9\";\n}\n\n.mdi-communication-invert-colors-on:before {\n  content: \"\\e6ea\";\n}\n\n.mdi-communication-live-help:before {\n  content: \"\\e6eb\";\n}\n\n.mdi-communication-location-off:before {\n  content: \"\\e6ec\";\n}\n\n.mdi-communication-location-on:before {\n  content: \"\\e6ed\";\n}\n\n.mdi-communication-message:before {\n  content: \"\\e6ee\";\n}\n\n.mdi-communication-messenger:before {\n  content: \"\\e6ef\";\n}\n\n.mdi-communication-no-sim:before {\n  content: \"\\e6f0\";\n}\n\n.mdi-communication-phone:before {\n  content: \"\\e6f1\";\n}\n\n.mdi-communication-portable-wifi-off:before {\n  content: \"\\e6f2\";\n}\n\n.mdi-communication-quick-contacts-dialer:before {\n  content: \"\\e6f3\";\n}\n\n.mdi-communication-quick-contacts-mail:before {\n  content: \"\\e6f4\";\n}\n\n.mdi-communication-ring-volume:before {\n  content: \"\\e6f5\";\n}\n\n.mdi-communication-stay-current-landscape:before {\n  content: \"\\e6f6\";\n}\n\n.mdi-communication-stay-current-portrait:before {\n  content: \"\\e6f7\";\n}\n\n.mdi-communication-stay-primary-landscape:before {\n  content: \"\\e6f8\";\n}\n\n.mdi-communication-stay-primary-portrait:before {\n  content: \"\\e6f9\";\n}\n\n.mdi-communication-swap-calls:before {\n  content: \"\\e6fa\";\n}\n\n.mdi-communication-textsms:before {\n  content: \"\\e6fb\";\n}\n\n.mdi-communication-voicemail:before {\n  content: \"\\e6fc\";\n}\n\n.mdi-communication-vpn-key:before {\n  content: \"\\e6fd\";\n}\n\n.mdi-content-add-box:before {\n  content: \"\\e6fe\";\n}\n\n.mdi-content-add-circle-outline:before {\n  content: \"\\e6ff\";\n}\n\n.mdi-content-add-circle:before {\n  content: \"\\e700\";\n}\n\n.mdi-content-add:before {\n  content: \"\\e701\";\n}\n\n.mdi-content-archive:before {\n  content: \"\\e702\";\n}\n\n.mdi-content-backspace:before {\n  content: \"\\e703\";\n}\n\n.mdi-content-block:before {\n  content: \"\\e704\";\n}\n\n.mdi-content-clear:before {\n  content: \"\\e705\";\n}\n\n.mdi-content-content-copy:before {\n  content: \"\\e706\";\n}\n\n.mdi-content-content-cut:before {\n  content: \"\\e707\";\n}\n\n.mdi-content-content-paste:before {\n  content: \"\\e708\";\n}\n\n.mdi-content-create:before {\n  content: \"\\e709\";\n}\n\n.mdi-content-drafts:before {\n  content: \"\\e70a\";\n}\n\n.mdi-content-filter-list:before {\n  content: \"\\e70b\";\n}\n\n.mdi-content-flag:before {\n  content: \"\\e70c\";\n}\n\n.mdi-content-forward:before {\n  content: \"\\e70d\";\n}\n\n.mdi-content-gesture:before {\n  content: \"\\e70e\";\n}\n\n.mdi-content-inbox:before {\n  content: \"\\e70f\";\n}\n\n.mdi-content-link:before {\n  content: \"\\e710\";\n}\n\n.mdi-content-mail:before {\n  content: \"\\e711\";\n}\n\n.mdi-content-markunread:before {\n  content: \"\\e712\";\n}\n\n.mdi-content-redo:before {\n  content: \"\\e713\";\n}\n\n.mdi-content-remove-circle-outline:before {\n  content: \"\\e714\";\n}\n\n.mdi-content-remove-circle:before {\n  content: \"\\e715\";\n}\n\n.mdi-content-remove:before {\n  content: \"\\e716\";\n}\n\n.mdi-content-reply-all:before {\n  content: \"\\e717\";\n}\n\n.mdi-content-reply:before {\n  content: \"\\e718\";\n}\n\n.mdi-content-report:before {\n  content: \"\\e719\";\n}\n\n.mdi-content-save:before {\n  content: \"\\e71a\";\n}\n\n.mdi-content-select-all:before {\n  content: \"\\e71b\";\n}\n\n.mdi-content-send:before {\n  content: \"\\e71c\";\n}\n\n.mdi-content-sort:before {\n  content: \"\\e71d\";\n}\n\n.mdi-content-text-format:before {\n  content: \"\\e71e\";\n}\n\n.mdi-content-undo:before {\n  content: \"\\e71f\";\n}\n\n.mdi-editor-attach-file:before {\n  content: \"\\e776\";\n}\n\n.mdi-editor-attach-money:before {\n  content: \"\\e777\";\n}\n\n.mdi-editor-border-all:before {\n  content: \"\\e778\";\n}\n\n.mdi-editor-border-bottom:before {\n  content: \"\\e779\";\n}\n\n.mdi-editor-border-clear:before {\n  content: \"\\e77a\";\n}\n\n.mdi-editor-border-color:before {\n  content: \"\\e77b\";\n}\n\n.mdi-editor-border-horizontal:before {\n  content: \"\\e77c\";\n}\n\n.mdi-editor-border-inner:before {\n  content: \"\\e77d\";\n}\n\n.mdi-editor-border-left:before {\n  content: \"\\e77e\";\n}\n\n.mdi-editor-border-outer:before {\n  content: \"\\e77f\";\n}\n\n.mdi-editor-border-right:before {\n  content: \"\\e780\";\n}\n\n.mdi-editor-border-style:before {\n  content: \"\\e781\";\n}\n\n.mdi-editor-border-top:before {\n  content: \"\\e782\";\n}\n\n.mdi-editor-border-vertical:before {\n  content: \"\\e783\";\n}\n\n.mdi-editor-format-align-center:before {\n  content: \"\\e784\";\n}\n\n.mdi-editor-format-align-justify:before {\n  content: \"\\e785\";\n}\n\n.mdi-editor-format-align-left:before {\n  content: \"\\e786\";\n}\n\n.mdi-editor-format-align-right:before {\n  content: \"\\e787\";\n}\n\n.mdi-editor-format-bold:before {\n  content: \"\\e788\";\n}\n\n.mdi-editor-format-clear:before {\n  content: \"\\e789\";\n}\n\n.mdi-editor-format-color-fill:before {\n  content: \"\\e78a\";\n}\n\n.mdi-editor-format-color-reset:before {\n  content: \"\\e78b\";\n}\n\n.mdi-editor-format-color-text:before {\n  content: \"\\e78c\";\n}\n\n.mdi-editor-format-indent-decrease:before {\n  content: \"\\e78d\";\n}\n\n.mdi-editor-format-indent-increase:before {\n  content: \"\\e78e\";\n}\n\n.mdi-editor-format-italic:before {\n  content: \"\\e78f\";\n}\n\n.mdi-editor-format-line-spacing:before {\n  content: \"\\e790\";\n}\n\n.mdi-editor-format-list-bulleted:before {\n  content: \"\\e791\";\n}\n\n.mdi-editor-format-list-numbered:before {\n  content: \"\\e792\";\n}\n\n.mdi-editor-format-paint:before {\n  content: \"\\e793\";\n}\n\n.mdi-editor-format-quote:before {\n  content: \"\\e794\";\n}\n\n.mdi-editor-format-size:before {\n  content: \"\\e795\";\n}\n\n.mdi-editor-format-strikethrough:before {\n  content: \"\\e796\";\n}\n\n.mdi-editor-format-textdirection-l-to-r:before {\n  content: \"\\e797\";\n}\n\n.mdi-editor-format-textdirection-r-to-l:before {\n  content: \"\\e798\";\n}\n\n.mdi-editor-format-underline:before {\n  content: \"\\e799\";\n}\n\n.mdi-editor-functions:before {\n  content: \"\\e79a\";\n}\n\n.mdi-editor-insert-chart:before {\n  content: \"\\e79b\";\n}\n\n.mdi-editor-insert-comment:before {\n  content: \"\\e79c\";\n}\n\n.mdi-editor-insert-drive-file:before {\n  content: \"\\e79d\";\n}\n\n.mdi-editor-insert-emoticon:before {\n  content: \"\\e79e\";\n}\n\n.mdi-editor-insert-invitation:before {\n  content: \"\\e79f\";\n}\n\n.mdi-editor-insert-link:before {\n  content: \"\\e7a0\";\n}\n\n.mdi-editor-insert-photo:before {\n  content: \"\\e7a1\";\n}\n\n.mdi-editor-merge-type:before {\n  content: \"\\e7a2\";\n}\n\n.mdi-editor-mode-comment:before {\n  content: \"\\e7a3\";\n}\n\n.mdi-editor-mode-edit:before {\n  content: \"\\e7a4\";\n}\n\n.mdi-editor-publish:before {\n  content: \"\\e7a5\";\n}\n\n.mdi-editor-vertical-align-bottom:before {\n  content: \"\\e7a6\";\n}\n\n.mdi-editor-vertical-align-center:before {\n  content: \"\\e7a7\";\n}\n\n.mdi-editor-vertical-align-top:before {\n  content: \"\\e7a8\";\n}\n\n.mdi-editor-wrap-text:before {\n  content: \"\\e7a9\";\n}\n\n.mdi-file-attachment:before {\n  content: \"\\e7aa\";\n}\n\n.mdi-file-cloud-circle:before {\n  content: \"\\e7ab\";\n}\n\n.mdi-file-cloud-done:before {\n  content: \"\\e7ac\";\n}\n\n.mdi-file-cloud-download:before {\n  content: \"\\e7ad\";\n}\n\n.mdi-file-cloud-off:before {\n  content: \"\\e7ae\";\n}\n\n.mdi-file-cloud-queue:before {\n  content: \"\\e7af\";\n}\n\n.mdi-file-cloud-upload:before {\n  content: \"\\e7b0\";\n}\n\n.mdi-file-cloud:before {\n  content: \"\\e7b1\";\n}\n\n.mdi-file-file-download:before {\n  content: \"\\e7b2\";\n}\n\n.mdi-file-file-upload:before {\n  content: \"\\e7b3\";\n}\n\n.mdi-file-folder-open:before {\n  content: \"\\e7b4\";\n}\n\n.mdi-file-folder-shared:before {\n  content: \"\\e7b5\";\n}\n\n.mdi-file-folder:before {\n  content: \"\\e7b6\";\n}\n\n.mdi-device-access-alarm:before {\n  content: \"\\e720\";\n}\n\n.mdi-device-access-alarms:before {\n  content: \"\\e721\";\n}\n\n.mdi-device-access-time:before {\n  content: \"\\e722\";\n}\n\n.mdi-device-add-alarm:before {\n  content: \"\\e723\";\n}\n\n.mdi-device-airplanemode-off:before {\n  content: \"\\e724\";\n}\n\n.mdi-device-airplanemode-on:before {\n  content: \"\\e725\";\n}\n\n.mdi-device-battery-20:before {\n  content: \"\\e726\";\n}\n\n.mdi-device-battery-30:before {\n  content: \"\\e727\";\n}\n\n.mdi-device-battery-50:before {\n  content: \"\\e728\";\n}\n\n.mdi-device-battery-60:before {\n  content: \"\\e729\";\n}\n\n.mdi-device-battery-80:before {\n  content: \"\\e72a\";\n}\n\n.mdi-device-battery-90:before {\n  content: \"\\e72b\";\n}\n\n.mdi-device-battery-alert:before {\n  content: \"\\e72c\";\n}\n\n.mdi-device-battery-charging-20:before {\n  content: \"\\e72d\";\n}\n\n.mdi-device-battery-charging-30:before {\n  content: \"\\e72e\";\n}\n\n.mdi-device-battery-charging-50:before {\n  content: \"\\e72f\";\n}\n\n.mdi-device-battery-charging-60:before {\n  content: \"\\e730\";\n}\n\n.mdi-device-battery-charging-80:before {\n  content: \"\\e731\";\n}\n\n.mdi-device-battery-charging-90:before {\n  content: \"\\e732\";\n}\n\n.mdi-device-battery-charging-full:before {\n  content: \"\\e733\";\n}\n\n.mdi-device-battery-full:before {\n  content: \"\\e734\";\n}\n\n.mdi-device-battery-std:before {\n  content: \"\\e735\";\n}\n\n.mdi-device-battery-unknown:before {\n  content: \"\\e736\";\n}\n\n.mdi-device-bluetooth-connected:before {\n  content: \"\\e737\";\n}\n\n.mdi-device-bluetooth-disabled:before {\n  content: \"\\e738\";\n}\n\n.mdi-device-bluetooth-searching:before {\n  content: \"\\e739\";\n}\n\n.mdi-device-bluetooth:before {\n  content: \"\\e73a\";\n}\n\n.mdi-device-brightness-auto:before {\n  content: \"\\e73b\";\n}\n\n.mdi-device-brightness-high:before {\n  content: \"\\e73c\";\n}\n\n.mdi-device-brightness-low:before {\n  content: \"\\e73d\";\n}\n\n.mdi-device-brightness-medium:before {\n  content: \"\\e73e\";\n}\n\n.mdi-device-data-usage:before {\n  content: \"\\e73f\";\n}\n\n.mdi-device-developer-mode:before {\n  content: \"\\e740\";\n}\n\n.mdi-device-devices:before {\n  content: \"\\e741\";\n}\n\n.mdi-device-dvr:before {\n  content: \"\\e742\";\n}\n\n.mdi-device-gps-fixed:before {\n  content: \"\\e743\";\n}\n\n.mdi-device-gps-not-fixed:before {\n  content: \"\\e744\";\n}\n\n.mdi-device-gps-off:before {\n  content: \"\\e745\";\n}\n\n.mdi-device-location-disabled:before {\n  content: \"\\e746\";\n}\n\n.mdi-device-location-searching:before {\n  content: \"\\e747\";\n}\n\n.mdi-device-multitrack-audio:before {\n  content: \"\\e748\";\n}\n\n.mdi-device-network-cell:before {\n  content: \"\\e749\";\n}\n\n.mdi-device-network-wifi:before {\n  content: \"\\e74a\";\n}\n\n.mdi-device-nfc:before {\n  content: \"\\e74b\";\n}\n\n.mdi-device-now-wallpaper:before {\n  content: \"\\e74c\";\n}\n\n.mdi-device-now-widgets:before {\n  content: \"\\e74d\";\n}\n\n.mdi-device-screen-lock-landscape:before {\n  content: \"\\e74e\";\n}\n\n.mdi-device-screen-lock-portrait:before {\n  content: \"\\e74f\";\n}\n\n.mdi-device-screen-lock-rotation:before {\n  content: \"\\e750\";\n}\n\n.mdi-device-screen-rotation:before {\n  content: \"\\e751\";\n}\n\n.mdi-device-sd-storage:before {\n  content: \"\\e752\";\n}\n\n.mdi-device-settings-system-daydream:before {\n  content: \"\\e753\";\n}\n\n.mdi-device-signal-cellular-0-bar:before {\n  content: \"\\e754\";\n}\n\n.mdi-device-signal-cellular-1-bar:before {\n  content: \"\\e755\";\n}\n\n.mdi-device-signal-cellular-2-bar:before {\n  content: \"\\e756\";\n}\n\n.mdi-device-signal-cellular-3-bar:before {\n  content: \"\\e757\";\n}\n\n.mdi-device-signal-cellular-4-bar:before {\n  content: \"\\e758\";\n}\n\n.mdi-signal-wifi-statusbar-connected-no-internet-after:before {\n  content: \"\\e8f6\";\n}\n\n.mdi-device-signal-cellular-connected-no-internet-0-bar:before {\n  content: \"\\e759\";\n}\n\n.mdi-device-signal-cellular-connected-no-internet-1-bar:before {\n  content: \"\\e75a\";\n}\n\n.mdi-device-signal-cellular-connected-no-internet-2-bar:before {\n  content: \"\\e75b\";\n}\n\n.mdi-device-signal-cellular-connected-no-internet-3-bar:before {\n  content: \"\\e75c\";\n}\n\n.mdi-device-signal-cellular-connected-no-internet-4-bar:before {\n  content: \"\\e75d\";\n}\n\n.mdi-device-signal-cellular-no-sim:before {\n  content: \"\\e75e\";\n}\n\n.mdi-device-signal-cellular-null:before {\n  content: \"\\e75f\";\n}\n\n.mdi-device-signal-cellular-off:before {\n  content: \"\\e760\";\n}\n\n.mdi-device-signal-wifi-0-bar:before {\n  content: \"\\e761\";\n}\n\n.mdi-device-signal-wifi-1-bar:before {\n  content: \"\\e762\";\n}\n\n.mdi-device-signal-wifi-2-bar:before {\n  content: \"\\e763\";\n}\n\n.mdi-device-signal-wifi-3-bar:before {\n  content: \"\\e764\";\n}\n\n.mdi-device-signal-wifi-4-bar:before {\n  content: \"\\e765\";\n}\n\n.mdi-device-signal-wifi-off:before {\n  content: \"\\e766\";\n}\n\n.mdi-device-signal-wifi-statusbar-1-bar:before {\n  content: \"\\e767\";\n}\n\n.mdi-device-signal-wifi-statusbar-2-bar:before {\n  content: \"\\e768\";\n}\n\n.mdi-device-signal-wifi-statusbar-3-bar:before {\n  content: \"\\e769\";\n}\n\n.mdi-device-signal-wifi-statusbar-4-bar:before {\n  content: \"\\e76a\";\n}\n\n.mdi-device-signal-wifi-statusbar-connected-no-internet-:before {\n  content: \"\\e76b\";\n}\n\n.mdi-device-signal-wifi-statusbar-connected-no-internet:before {\n  content: \"\\e76f\";\n}\n\n.mdi-device-signal-wifi-statusbar-connected-no-internet-2:before {\n  content: \"\\e76c\";\n}\n\n.mdi-device-signal-wifi-statusbar-connected-no-internet-3:before {\n  content: \"\\e76d\";\n}\n\n.mdi-device-signal-wifi-statusbar-connected-no-internet-4:before {\n  content: \"\\e76e\";\n}\n\n.mdi-signal-wifi-statusbar-not-connected-after:before {\n  content: \"\\e8f7\";\n}\n\n.mdi-device-signal-wifi-statusbar-not-connected:before {\n  content: \"\\e770\";\n}\n\n.mdi-device-signal-wifi-statusbar-null:before {\n  content: \"\\e771\";\n}\n\n.mdi-device-storage:before {\n  content: \"\\e772\";\n}\n\n.mdi-device-usb:before {\n  content: \"\\e773\";\n}\n\n.mdi-device-wifi-lock:before {\n  content: \"\\e774\";\n}\n\n.mdi-device-wifi-tethering:before {\n  content: \"\\e775\";\n}\n\n.mdi-hardware-cast-connected:before {\n  content: \"\\e7b7\";\n}\n\n.mdi-hardware-cast:before {\n  content: \"\\e7b8\";\n}\n\n.mdi-hardware-computer:before {\n  content: \"\\e7b9\";\n}\n\n.mdi-hardware-desktop-mac:before {\n  content: \"\\e7ba\";\n}\n\n.mdi-hardware-desktop-windows:before {\n  content: \"\\e7bb\";\n}\n\n.mdi-hardware-dock:before {\n  content: \"\\e7bc\";\n}\n\n.mdi-hardware-gamepad:before {\n  content: \"\\e7bd\";\n}\n\n.mdi-hardware-headset-mic:before {\n  content: \"\\e7be\";\n}\n\n.mdi-hardware-headset:before {\n  content: \"\\e7bf\";\n}\n\n.mdi-hardware-keyboard-alt:before {\n  content: \"\\e7c0\";\n}\n\n.mdi-hardware-keyboard-arrow-down:before {\n  content: \"\\e7c1\";\n}\n\n.mdi-hardware-keyboard-arrow-left:before {\n  content: \"\\e7c2\";\n}\n\n.mdi-hardware-keyboard-arrow-right:before {\n  content: \"\\e7c3\";\n}\n\n.mdi-hardware-keyboard-arrow-up:before {\n  content: \"\\e7c4\";\n}\n\n.mdi-hardware-keyboard-backspace:before {\n  content: \"\\e7c5\";\n}\n\n.mdi-hardware-keyboard-capslock:before {\n  content: \"\\e7c6\";\n}\n\n.mdi-hardware-keyboard-control:before {\n  content: \"\\e7c7\";\n}\n\n.mdi-hardware-keyboard-hide:before {\n  content: \"\\e7c8\";\n}\n\n.mdi-hardware-keyboard-return:before {\n  content: \"\\e7c9\";\n}\n\n.mdi-hardware-keyboard-tab:before {\n  content: \"\\e7ca\";\n}\n\n.mdi-hardware-keyboard-voice:before {\n  content: \"\\e7cb\";\n}\n\n.mdi-hardware-keyboard:before {\n  content: \"\\e7cc\";\n}\n\n.mdi-hardware-laptop-chromebook:before {\n  content: \"\\e7cd\";\n}\n\n.mdi-hardware-laptop-mac:before {\n  content: \"\\e7ce\";\n}\n\n.mdi-hardware-laptop-windows:before {\n  content: \"\\e7cf\";\n}\n\n.mdi-hardware-laptop:before {\n  content: \"\\e7d0\";\n}\n\n.mdi-hardware-memory:before {\n  content: \"\\e7d1\";\n}\n\n.mdi-hardware-mouse:before {\n  content: \"\\e7d2\";\n}\n\n.mdi-hardware-phone-android:before {\n  content: \"\\e7d3\";\n}\n\n.mdi-hardware-phone-iphone:before {\n  content: \"\\e7d4\";\n}\n\n.mdi-hardware-phonelink-off:before {\n  content: \"\\e7d5\";\n}\n\n.mdi-hardware-phonelink:before {\n  content: \"\\e7d6\";\n}\n\n.mdi-hardware-security:before {\n  content: \"\\e7d7\";\n}\n\n.mdi-hardware-sim-card:before {\n  content: \"\\e7d8\";\n}\n\n.mdi-hardware-smartphone:before {\n  content: \"\\e7d9\";\n}\n\n.mdi-hardware-speaker:before {\n  content: \"\\e7da\";\n}\n\n.mdi-hardware-tablet-android:before {\n  content: \"\\e7db\";\n}\n\n.mdi-hardware-tablet-mac:before {\n  content: \"\\e7dc\";\n}\n\n.mdi-hardware-tablet:before {\n  content: \"\\e7dd\";\n}\n\n.mdi-hardware-tv:before {\n  content: \"\\e7de\";\n}\n\n.mdi-hardware-watch:before {\n  content: \"\\e7df\";\n}\n\n.mdi-image-add-to-photos:before {\n  content: \"\\e7e0\";\n}\n\n.mdi-image-adjust:before {\n  content: \"\\e7e1\";\n}\n\n.mdi-image-assistant-photo:before {\n  content: \"\\e7e2\";\n}\n\n.mdi-image-audiotrack:before {\n  content: \"\\e7e3\";\n}\n\n.mdi-image-blur-circular:before {\n  content: \"\\e7e4\";\n}\n\n.mdi-image-blur-linear:before {\n  content: \"\\e7e5\";\n}\n\n.mdi-image-blur-off:before {\n  content: \"\\e7e6\";\n}\n\n.mdi-image-blur-on:before {\n  content: \"\\e7e7\";\n}\n\n.mdi-image-brightness-1:before {\n  content: \"\\e7e8\";\n}\n\n.mdi-image-brightness-2:before {\n  content: \"\\e7e9\";\n}\n\n.mdi-image-brightness-3:before {\n  content: \"\\e7ea\";\n}\n\n.mdi-image-brightness-4:before {\n  content: \"\\e7eb\";\n}\n\n.mdi-image-brightness-5:before {\n  content: \"\\e7ec\";\n}\n\n.mdi-image-brightness-6:before {\n  content: \"\\e7ed\";\n}\n\n.mdi-image-brightness-7:before {\n  content: \"\\e7ee\";\n}\n\n.mdi-image-brush:before {\n  content: \"\\e7ef\";\n}\n\n.mdi-image-camera-alt:before {\n  content: \"\\e7f0\";\n}\n\n.mdi-image-camera-front:before {\n  content: \"\\e7f1\";\n}\n\n.mdi-image-camera-rear:before {\n  content: \"\\e7f2\";\n}\n\n.mdi-image-camera-roll:before {\n  content: \"\\e7f3\";\n}\n\n.mdi-image-camera:before {\n  content: \"\\e7f4\";\n}\n\n.mdi-image-center-focus-strong:before {\n  content: \"\\e7f5\";\n}\n\n.mdi-image-center-focus-weak:before {\n  content: \"\\e7f6\";\n}\n\n.mdi-image-collections:before {\n  content: \"\\e7f7\";\n}\n\n.mdi-image-color-lens:before {\n  content: \"\\e7f8\";\n}\n\n.mdi-image-colorize:before {\n  content: \"\\e7f9\";\n}\n\n.mdi-image-compare:before {\n  content: \"\\e7fa\";\n}\n\n.mdi-image-control-point-duplicate:before {\n  content: \"\\e7fb\";\n}\n\n.mdi-image-control-point:before {\n  content: \"\\e7fc\";\n}\n\n.mdi-image-crop-3-2:before {\n  content: \"\\e7fd\";\n}\n\n.mdi-image-crop-5-4:before {\n  content: \"\\e7fe\";\n}\n\n.mdi-image-crop-7-5:before {\n  content: \"\\e7ff\";\n}\n\n.mdi-image-crop-16-9:before {\n  content: \"\\e800\";\n}\n\n.mdi-image-crop-din:before {\n  content: \"\\e801\";\n}\n\n.mdi-image-crop-free:before {\n  content: \"\\e802\";\n}\n\n.mdi-image-crop-landscape:before {\n  content: \"\\e803\";\n}\n\n.mdi-image-crop-original:before {\n  content: \"\\e804\";\n}\n\n.mdi-image-crop-portrait:before {\n  content: \"\\e805\";\n}\n\n.mdi-image-crop-square:before {\n  content: \"\\e806\";\n}\n\n.mdi-image-crop:before {\n  content: \"\\e807\";\n}\n\n.mdi-image-dehaze:before {\n  content: \"\\e808\";\n}\n\n.mdi-image-details:before {\n  content: \"\\e809\";\n}\n\n.mdi-image-edit:before {\n  content: \"\\e80a\";\n}\n\n.mdi-image-exposure-minus-1:before {\n  content: \"\\e80b\";\n}\n\n.mdi-image-exposure-minus-2:before {\n  content: \"\\e80c\";\n}\n\n.mdi-image-exposure-plus-1:before {\n  content: \"\\e80d\";\n}\n\n.mdi-image-exposure-plus-2:before {\n  content: \"\\e80e\";\n}\n\n.mdi-image-exposure-zero:before {\n  content: \"\\e80f\";\n}\n\n.mdi-image-exposure:before {\n  content: \"\\e810\";\n}\n\n.mdi-image-filter-1:before {\n  content: \"\\e811\";\n}\n\n.mdi-image-filter-2:before {\n  content: \"\\e812\";\n}\n\n.mdi-image-filter-3:before {\n  content: \"\\e813\";\n}\n\n.mdi-image-filter-4:before {\n  content: \"\\e814\";\n}\n\n.mdi-image-filter-5:before {\n  content: \"\\e815\";\n}\n\n.mdi-image-filter-6:before {\n  content: \"\\e816\";\n}\n\n.mdi-image-filter-7:before {\n  content: \"\\e817\";\n}\n\n.mdi-image-filter-8:before {\n  content: \"\\e818\";\n}\n\n.mdi-image-filter-9-plus:before {\n  content: \"\\e819\";\n}\n\n.mdi-image-filter-9:before {\n  content: \"\\e81a\";\n}\n\n.mdi-image-filter-b-and-w:before {\n  content: \"\\e81b\";\n}\n\n.mdi-image-filter-center-focus:before {\n  content: \"\\e81c\";\n}\n\n.mdi-image-filter-drama:before {\n  content: \"\\e81d\";\n}\n\n.mdi-image-filter-frames:before {\n  content: \"\\e81e\";\n}\n\n.mdi-image-filter-hdr:before {\n  content: \"\\e81f\";\n}\n\n.mdi-image-filter-none:before {\n  content: \"\\e820\";\n}\n\n.mdi-image-filter-tilt-shift:before {\n  content: \"\\e821\";\n}\n\n.mdi-image-filter-vintage:before {\n  content: \"\\e822\";\n}\n\n.mdi-image-filter:before {\n  content: \"\\e823\";\n}\n\n.mdi-image-flare:before {\n  content: \"\\e824\";\n}\n\n.mdi-image-flash-auto:before {\n  content: \"\\e825\";\n}\n\n.mdi-image-flash-off:before {\n  content: \"\\e826\";\n}\n\n.mdi-image-flash-on:before {\n  content: \"\\e827\";\n}\n\n.mdi-image-flip:before {\n  content: \"\\e828\";\n}\n\n.mdi-image-gradient:before {\n  content: \"\\e829\";\n}\n\n.mdi-image-grain:before {\n  content: \"\\e82a\";\n}\n\n.mdi-image-grid-off:before {\n  content: \"\\e82b\";\n}\n\n.mdi-image-grid-on:before {\n  content: \"\\e82c\";\n}\n\n.mdi-image-hdr-off:before {\n  content: \"\\e82d\";\n}\n\n.mdi-image-hdr-on:before {\n  content: \"\\e82e\";\n}\n\n.mdi-image-hdr-strong:before {\n  content: \"\\e82f\";\n}\n\n.mdi-image-hdr-weak:before {\n  content: \"\\e830\";\n}\n\n.mdi-image-healing:before {\n  content: \"\\e831\";\n}\n\n.mdi-image-image-aspect-ratio:before {\n  content: \"\\e832\";\n}\n\n.mdi-image-image:before {\n  content: \"\\e833\";\n}\n\n.mdi-image-iso:before {\n  content: \"\\e834\";\n}\n\n.mdi-image-landscape:before {\n  content: \"\\e835\";\n}\n\n.mdi-image-leak-add:before {\n  content: \"\\e836\";\n}\n\n.mdi-image-leak-remove:before {\n  content: \"\\e837\";\n}\n\n.mdi-image-lens:before {\n  content: \"\\e838\";\n}\n\n.mdi-image-looks-3:before {\n  content: \"\\e839\";\n}\n\n.mdi-image-looks-4:before {\n  content: \"\\e83a\";\n}\n\n.mdi-image-looks-5:before {\n  content: \"\\e83b\";\n}\n\n.mdi-image-looks-6:before {\n  content: \"\\e83c\";\n}\n\n.mdi-image-looks-one:before {\n  content: \"\\e83d\";\n}\n\n.mdi-image-looks-two:before {\n  content: \"\\e83e\";\n}\n\n.mdi-image-looks:before {\n  content: \"\\e83f\";\n}\n\n.mdi-image-loupe:before {\n  content: \"\\e840\";\n}\n\n.mdi-image-movie-creation:before {\n  content: \"\\e841\";\n}\n\n.mdi-image-nature-people:before {\n  content: \"\\e842\";\n}\n\n.mdi-image-nature:before {\n  content: \"\\e843\";\n}\n\n.mdi-image-navigate-before:before {\n  content: \"\\e844\";\n}\n\n.mdi-image-navigate-next:before {\n  content: \"\\e845\";\n}\n\n.mdi-image-palette:before {\n  content: \"\\e846\";\n}\n\n.mdi-image-panorama-fisheye:before {\n  content: \"\\e847\";\n}\n\n.mdi-image-panorama-horizontal:before {\n  content: \"\\e848\";\n}\n\n.mdi-image-panorama-vertical:before {\n  content: \"\\e849\";\n}\n\n.mdi-image-panorama-wide-angle:before {\n  content: \"\\e84a\";\n}\n\n.mdi-image-panorama:before {\n  content: \"\\e84b\";\n}\n\n.mdi-image-photo-album:before {\n  content: \"\\e84c\";\n}\n\n.mdi-image-photo-camera:before {\n  content: \"\\e84d\";\n}\n\n.mdi-image-photo-library:before {\n  content: \"\\e84e\";\n}\n\n.mdi-image-photo:before {\n  content: \"\\e84f\";\n}\n\n.mdi-image-portrait:before {\n  content: \"\\e850\";\n}\n\n.mdi-image-remove-red-eye:before {\n  content: \"\\e851\";\n}\n\n.mdi-image-rotate-left:before {\n  content: \"\\e852\";\n}\n\n.mdi-image-rotate-right:before {\n  content: \"\\e853\";\n}\n\n.mdi-image-slideshow:before {\n  content: \"\\e854\";\n}\n\n.mdi-image-straighten:before {\n  content: \"\\e855\";\n}\n\n.mdi-image-style:before {\n  content: \"\\e856\";\n}\n\n.mdi-image-switch-camera:before {\n  content: \"\\e857\";\n}\n\n.mdi-image-switch-video:before {\n  content: \"\\e858\";\n}\n\n.mdi-image-tag-faces:before {\n  content: \"\\e859\";\n}\n\n.mdi-image-texture:before {\n  content: \"\\e85a\";\n}\n\n.mdi-image-timelapse:before {\n  content: \"\\e85b\";\n}\n\n.mdi-image-timer-3:before {\n  content: \"\\e85c\";\n}\n\n.mdi-image-timer-10:before {\n  content: \"\\e85d\";\n}\n\n.mdi-image-timer-auto:before {\n  content: \"\\e85e\";\n}\n\n.mdi-image-timer-off:before {\n  content: \"\\e85f\";\n}\n\n.mdi-image-timer:before {\n  content: \"\\e860\";\n}\n\n.mdi-image-tonality:before {\n  content: \"\\e861\";\n}\n\n.mdi-image-transform:before {\n  content: \"\\e862\";\n}\n\n.mdi-image-tune:before {\n  content: \"\\e863\";\n}\n\n.mdi-image-wb-auto:before {\n  content: \"\\e864\";\n}\n\n.mdi-image-wb-cloudy:before {\n  content: \"\\e865\";\n}\n\n.mdi-image-wb-incandescent:before {\n  content: \"\\e866\";\n}\n\n.mdi-image-wb-irradescent:before {\n  content: \"\\e867\";\n}\n\n.mdi-image-wb-sunny:before {\n  content: \"\\e868\";\n}\n\n.mdi-maps-beenhere:before {\n  content: \"\\e869\";\n}\n\n.mdi-maps-directions-bike:before {\n  content: \"\\e86a\";\n}\n\n.mdi-maps-directions-bus:before {\n  content: \"\\e86b\";\n}\n\n.mdi-maps-directions-car:before {\n  content: \"\\e86c\";\n}\n\n.mdi-maps-directions-ferry:before {\n  content: \"\\e86d\";\n}\n\n.mdi-maps-directions-subway:before {\n  content: \"\\e86e\";\n}\n\n.mdi-maps-directions-train:before {\n  content: \"\\e86f\";\n}\n\n.mdi-maps-directions-transit:before {\n  content: \"\\e870\";\n}\n\n.mdi-maps-directions-walk:before {\n  content: \"\\e871\";\n}\n\n.mdi-maps-directions:before {\n  content: \"\\e872\";\n}\n\n.mdi-maps-flight:before {\n  content: \"\\e873\";\n}\n\n.mdi-maps-hotel:before {\n  content: \"\\e874\";\n}\n\n.mdi-maps-layers-clear:before {\n  content: \"\\e875\";\n}\n\n.mdi-maps-layers:before {\n  content: \"\\e876\";\n}\n\n.mdi-maps-local-airport:before {\n  content: \"\\e877\";\n}\n\n.mdi-maps-local-atm:before {\n  content: \"\\e878\";\n}\n\n.mdi-maps-local-attraction:before {\n  content: \"\\e879\";\n}\n\n.mdi-maps-local-bar:before {\n  content: \"\\e87a\";\n}\n\n.mdi-maps-local-cafe:before {\n  content: \"\\e87b\";\n}\n\n.mdi-maps-local-car-wash:before {\n  content: \"\\e87c\";\n}\n\n.mdi-maps-local-convenience-store:before {\n  content: \"\\e87d\";\n}\n\n.mdi-maps-local-drink:before {\n  content: \"\\e87e\";\n}\n\n.mdi-maps-local-florist:before {\n  content: \"\\e87f\";\n}\n\n.mdi-maps-local-gas-station:before {\n  content: \"\\e880\";\n}\n\n.mdi-maps-local-grocery-store:before {\n  content: \"\\e881\";\n}\n\n.mdi-maps-local-hospital:before {\n  content: \"\\e882\";\n}\n\n.mdi-maps-local-hotel:before {\n  content: \"\\e883\";\n}\n\n.mdi-maps-local-laundry-service:before {\n  content: \"\\e884\";\n}\n\n.mdi-maps-local-library:before {\n  content: \"\\e885\";\n}\n\n.mdi-maps-local-mall:before {\n  content: \"\\e886\";\n}\n\n.mdi-maps-local-movies:before {\n  content: \"\\e887\";\n}\n\n.mdi-maps-local-offer:before {\n  content: \"\\e888\";\n}\n\n.mdi-maps-local-parking:before {\n  content: \"\\e889\";\n}\n\n.mdi-maps-local-pharmacy:before {\n  content: \"\\e88a\";\n}\n\n.mdi-maps-local-phone:before {\n  content: \"\\e88b\";\n}\n\n.mdi-maps-local-pizza:before {\n  content: \"\\e88c\";\n}\n\n.mdi-maps-local-play:before {\n  content: \"\\e88d\";\n}\n\n.mdi-maps-local-post-office:before {\n  content: \"\\e88e\";\n}\n\n.mdi-maps-local-print-shop:before {\n  content: \"\\e88f\";\n}\n\n.mdi-maps-local-restaurant:before {\n  content: \"\\e890\";\n}\n\n.mdi-maps-local-see:before {\n  content: \"\\e891\";\n}\n\n.mdi-maps-local-shipping:before {\n  content: \"\\e892\";\n}\n\n.mdi-maps-local-taxi:before {\n  content: \"\\e893\";\n}\n\n.mdi-maps-location-history:before {\n  content: \"\\e894\";\n}\n\n.mdi-maps-map:before {\n  content: \"\\e895\";\n}\n\n.mdi-maps-my-location:before {\n  content: \"\\e896\";\n}\n\n.mdi-maps-navigation:before {\n  content: \"\\e897\";\n}\n\n.mdi-maps-pin-drop:before {\n  content: \"\\e898\";\n}\n\n.mdi-maps-place:before {\n  content: \"\\e899\";\n}\n\n.mdi-maps-rate-review:before {\n  content: \"\\e89a\";\n}\n\n.mdi-maps-restaurant-menu:before {\n  content: \"\\e89b\";\n}\n\n.mdi-maps-satellite:before {\n  content: \"\\e89c\";\n}\n\n.mdi-maps-store-mall-directory:before {\n  content: \"\\e89d\";\n}\n\n.mdi-maps-terrain:before {\n  content: \"\\e89e\";\n}\n\n.mdi-maps-traffic:before {\n  content: \"\\e89f\";\n}\n\n.mdi-navigation-apps:before {\n  content: \"\\e8a0\";\n}\n\n.mdi-navigation-arrow-back:before {\n  content: \"\\e8a1\";\n}\n\n.mdi-navigation-arrow-drop-down-circle:before {\n  content: \"\\e8a2\";\n}\n\n.mdi-navigation-arrow-drop-down:before {\n  content: \"\\e8a3\";\n}\n\n.mdi-navigation-arrow-drop-up:before {\n  content: \"\\e8a4\";\n}\n\n.mdi-navigation-arrow-forward:before {\n  content: \"\\e8a5\";\n}\n\n.mdi-navigation-cancel:before {\n  content: \"\\e8a6\";\n}\n\n.mdi-navigation-check:before {\n  content: \"\\e8a7\";\n}\n\n.mdi-navigation-chevron-left:before {\n  content: \"\\e8a8\";\n}\n\n.mdi-navigation-chevron-right:before {\n  content: \"\\e8a9\";\n}\n\n.mdi-navigation-close:before {\n  content: \"\\e8aa\";\n}\n\n.mdi-navigation-expand-less:before {\n  content: \"\\e8ab\";\n}\n\n.mdi-navigation-expand-more:before {\n  content: \"\\e8ac\";\n}\n\n.mdi-navigation-fullscreen-exit:before {\n  content: \"\\e8ad\";\n}\n\n.mdi-navigation-fullscreen:before {\n  content: \"\\e8ae\";\n}\n\n.mdi-navigation-menu:before {\n  content: \"\\e8af\";\n}\n\n.mdi-navigation-more-horiz:before {\n  content: \"\\e8b0\";\n}\n\n.mdi-navigation-more-vert:before {\n  content: \"\\e8b1\";\n}\n\n.mdi-navigation-refresh:before {\n  content: \"\\e8b2\";\n}\n\n.mdi-navigation-unfold-less:before {\n  content: \"\\e8b3\";\n}\n\n.mdi-navigation-unfold-more:before {\n  content: \"\\e8b4\";\n}\n\n.mdi-notification-adb:before {\n  content: \"\\e8b5\";\n}\n\n.mdi-notification-bluetooth-audio:before {\n  content: \"\\e8b6\";\n}\n\n.mdi-notification-disc-full:before {\n  content: \"\\e8b7\";\n}\n\n.mdi-notification-dnd-forwardslash:before {\n  content: \"\\e8b8\";\n}\n\n.mdi-notification-do-not-disturb:before {\n  content: \"\\e8b9\";\n}\n\n.mdi-notification-drive-eta:before {\n  content: \"\\e8ba\";\n}\n\n.mdi-notification-event-available:before {\n  content: \"\\e8bb\";\n}\n\n.mdi-notification-event-busy:before {\n  content: \"\\e8bc\";\n}\n\n.mdi-notification-event-note:before {\n  content: \"\\e8bd\";\n}\n\n.mdi-notification-folder-special:before {\n  content: \"\\e8be\";\n}\n\n.mdi-notification-mms:before {\n  content: \"\\e8bf\";\n}\n\n.mdi-notification-more:before {\n  content: \"\\e8c0\";\n}\n\n.mdi-notification-network-locked:before {\n  content: \"\\e8c1\";\n}\n\n.mdi-notification-phone-bluetooth-speaker:before {\n  content: \"\\e8c2\";\n}\n\n.mdi-notification-phone-forwarded:before {\n  content: \"\\e8c3\";\n}\n\n.mdi-notification-phone-in-talk:before {\n  content: \"\\e8c4\";\n}\n\n.mdi-notification-phone-locked:before {\n  content: \"\\e8c5\";\n}\n\n.mdi-notification-phone-missed:before {\n  content: \"\\e8c6\";\n}\n\n.mdi-notification-phone-paused:before {\n  content: \"\\e8c7\";\n}\n\n.mdi-notification-play-download:before {\n  content: \"\\e8c8\";\n}\n\n.mdi-notification-play-install:before {\n  content: \"\\e8c9\";\n}\n\n.mdi-notification-sd-card:before {\n  content: \"\\e8ca\";\n}\n\n.mdi-notification-sim-card-alert:before {\n  content: \"\\e8cb\";\n}\n\n.mdi-notification-sms-failed:before {\n  content: \"\\e8cc\";\n}\n\n.mdi-notification-sms:before {\n  content: \"\\e8cd\";\n}\n\n.mdi-notification-sync-disabled:before {\n  content: \"\\e8ce\";\n}\n\n.mdi-notification-sync-problem:before {\n  content: \"\\e8cf\";\n}\n\n.mdi-notification-sync:before {\n  content: \"\\e8d0\";\n}\n\n.mdi-notification-system-update:before {\n  content: \"\\e8d1\";\n}\n\n.mdi-notification-tap-and-play:before {\n  content: \"\\e8d2\";\n}\n\n.mdi-notification-time-to-leave:before {\n  content: \"\\e8d3\";\n}\n\n.mdi-notification-vibration:before {\n  content: \"\\e8d4\";\n}\n\n.mdi-notification-voice-chat:before {\n  content: \"\\e8d5\";\n}\n\n.mdi-notification-vpn-lock:before {\n  content: \"\\e8d6\";\n}\n\n.mdi-social-cake:before {\n  content: \"\\e8d7\";\n}\n\n.mdi-social-domain:before {\n  content: \"\\e8d8\";\n}\n\n.mdi-social-group-add:before {\n  content: \"\\e8d9\";\n}\n\n.mdi-social-group:before {\n  content: \"\\e8da\";\n}\n\n.mdi-social-location-city:before {\n  content: \"\\e8db\";\n}\n\n.mdi-social-mood:before {\n  content: \"\\e8dc\";\n}\n\n.mdi-social-notifications-none:before {\n  content: \"\\e8dd\";\n}\n\n.mdi-social-notifications-off:before {\n  content: \"\\e8de\";\n}\n\n.mdi-social-notifications-on:before {\n  content: \"\\e8df\";\n}\n\n.mdi-social-notifications-paused:before {\n  content: \"\\e8e0\";\n}\n\n.mdi-social-notifications:before {\n  content: \"\\e8e1\";\n}\n\n.mdi-social-pages:before {\n  content: \"\\e8e2\";\n}\n\n.mdi-social-party-mode:before {\n  content: \"\\e8e3\";\n}\n\n.mdi-social-people-outline:before {\n  content: \"\\e8e4\";\n}\n\n.mdi-social-people:before {\n  content: \"\\e8e5\";\n}\n\n.mdi-social-person-add:before {\n  content: \"\\e8e6\";\n}\n\n.mdi-social-person-outline:before {\n  content: \"\\e8e7\";\n}\n\n.mdi-social-person:before {\n  content: \"\\e8e8\";\n}\n\n.mdi-social-plus-one:before {\n  content: \"\\e8e9\";\n}\n\n.mdi-social-poll:before {\n  content: \"\\e8ea\";\n}\n\n.mdi-social-public:before {\n  content: \"\\e8eb\";\n}\n\n.mdi-social-school:before {\n  content: \"\\e8ec\";\n}\n\n.mdi-social-share:before {\n  content: \"\\e8ed\";\n}\n\n.mdi-social-whatshot:before {\n  content: \"\\e8ee\";\n}\n\n.mdi-toggle-check-box-outline-blank:before {\n  content: \"\\e8ef\";\n}\n\n.mdi-toggle-check-box:before {\n  content: \"\\e8f0\";\n}\n\n.mdi-toggle-radio-button-off:before {\n  content: \"\\e8f1\";\n}\n\n.mdi-toggle-radio-button-on:before {\n  content: \"\\e8f2\";\n}\n\n.mdi-toggle-star-half:before {\n  content: \"\\e8f3\";\n}\n\n.mdi-toggle-star-outline:before {\n  content: \"\\e8f4\";\n}\n\n.mdi-toggle-star:before {\n  content: \"\\e8f5\";\n}\n\n.container {\n  margin: 0 auto;\n  max-width: 1280px;\n  width: 90%;\n}\n\n@media only screen and (min-width: 601px) {\n  .container {\n    width: 85%;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  .container {\n    width: 70%;\n  }\n}\n\n.container .row {\n  margin-left: -0.75rem;\n  margin-right: -0.75rem;\n}\n\n.section {\n  padding-top: 1rem;\n  padding-bottom: 1rem;\n}\n\n.section.no-pad {\n  padding: 0;\n}\n\n.section.no-pad-bot {\n  padding-bottom: 0;\n}\n\n.section.no-pad-top {\n  padding-top: 0;\n}\n\n.row {\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 20px;\n}\n\n.row:after {\n  content: \"\";\n  display: table;\n  clear: both;\n}\n\n.row .col {\n  float: left;\n  box-sizing: border-box;\n  padding: 0 0.75rem;\n}\n\n.row .col[class*=\"push-\"], .row .col[class*=\"pull-\"] {\n  position: relative;\n}\n\n.row .col.s1 {\n  width: 8.3333333333%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s2 {\n  width: 16.6666666667%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s3 {\n  width: 25%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s4 {\n  width: 33.3333333333%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s5 {\n  width: 41.6666666667%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s6 {\n  width: 50%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s7 {\n  width: 58.3333333333%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s8 {\n  width: 66.6666666667%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s9 {\n  width: 75%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s10 {\n  width: 83.3333333333%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s11 {\n  width: 91.6666666667%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.s12 {\n  width: 100%;\n  margin-left: auto;\n  left: auto;\n  right: auto;\n}\n\n.row .col.offset-s1 {\n  margin-left: 8.3333333333%;\n}\n\n.row .col.pull-s1 {\n  right: 8.3333333333%;\n}\n\n.row .col.push-s1 {\n  left: 8.3333333333%;\n}\n\n.row .col.offset-s2 {\n  margin-left: 16.6666666667%;\n}\n\n.row .col.pull-s2 {\n  right: 16.6666666667%;\n}\n\n.row .col.push-s2 {\n  left: 16.6666666667%;\n}\n\n.row .col.offset-s3 {\n  margin-left: 25%;\n}\n\n.row .col.pull-s3 {\n  right: 25%;\n}\n\n.row .col.push-s3 {\n  left: 25%;\n}\n\n.row .col.offset-s4 {\n  margin-left: 33.3333333333%;\n}\n\n.row .col.pull-s4 {\n  right: 33.3333333333%;\n}\n\n.row .col.push-s4 {\n  left: 33.3333333333%;\n}\n\n.row .col.offset-s5 {\n  margin-left: 41.6666666667%;\n}\n\n.row .col.pull-s5 {\n  right: 41.6666666667%;\n}\n\n.row .col.push-s5 {\n  left: 41.6666666667%;\n}\n\n.row .col.offset-s6 {\n  margin-left: 50%;\n}\n\n.row .col.pull-s6 {\n  right: 50%;\n}\n\n.row .col.push-s6 {\n  left: 50%;\n}\n\n.row .col.offset-s7 {\n  margin-left: 58.3333333333%;\n}\n\n.row .col.pull-s7 {\n  right: 58.3333333333%;\n}\n\n.row .col.push-s7 {\n  left: 58.3333333333%;\n}\n\n.row .col.offset-s8 {\n  margin-left: 66.6666666667%;\n}\n\n.row .col.pull-s8 {\n  right: 66.6666666667%;\n}\n\n.row .col.push-s8 {\n  left: 66.6666666667%;\n}\n\n.row .col.offset-s9 {\n  margin-left: 75%;\n}\n\n.row .col.pull-s9 {\n  right: 75%;\n}\n\n.row .col.push-s9 {\n  left: 75%;\n}\n\n.row .col.offset-s10 {\n  margin-left: 83.3333333333%;\n}\n\n.row .col.pull-s10 {\n  right: 83.3333333333%;\n}\n\n.row .col.push-s10 {\n  left: 83.3333333333%;\n}\n\n.row .col.offset-s11 {\n  margin-left: 91.6666666667%;\n}\n\n.row .col.pull-s11 {\n  right: 91.6666666667%;\n}\n\n.row .col.push-s11 {\n  left: 91.6666666667%;\n}\n\n.row .col.offset-s12 {\n  margin-left: 100%;\n}\n\n.row .col.pull-s12 {\n  right: 100%;\n}\n\n.row .col.push-s12 {\n  left: 100%;\n}\n\n@media only screen and (min-width: 601px) {\n  .row .col.m1 {\n    width: 8.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m2 {\n    width: 16.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m3 {\n    width: 25%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m4 {\n    width: 33.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m5 {\n    width: 41.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m6 {\n    width: 50%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m7 {\n    width: 58.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m8 {\n    width: 66.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m9 {\n    width: 75%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m10 {\n    width: 83.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m11 {\n    width: 91.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.m12 {\n    width: 100%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.offset-m1 {\n    margin-left: 8.3333333333%;\n  }\n  .row .col.pull-m1 {\n    right: 8.3333333333%;\n  }\n  .row .col.push-m1 {\n    left: 8.3333333333%;\n  }\n  .row .col.offset-m2 {\n    margin-left: 16.6666666667%;\n  }\n  .row .col.pull-m2 {\n    right: 16.6666666667%;\n  }\n  .row .col.push-m2 {\n    left: 16.6666666667%;\n  }\n  .row .col.offset-m3 {\n    margin-left: 25%;\n  }\n  .row .col.pull-m3 {\n    right: 25%;\n  }\n  .row .col.push-m3 {\n    left: 25%;\n  }\n  .row .col.offset-m4 {\n    margin-left: 33.3333333333%;\n  }\n  .row .col.pull-m4 {\n    right: 33.3333333333%;\n  }\n  .row .col.push-m4 {\n    left: 33.3333333333%;\n  }\n  .row .col.offset-m5 {\n    margin-left: 41.6666666667%;\n  }\n  .row .col.pull-m5 {\n    right: 41.6666666667%;\n  }\n  .row .col.push-m5 {\n    left: 41.6666666667%;\n  }\n  .row .col.offset-m6 {\n    margin-left: 50%;\n  }\n  .row .col.pull-m6 {\n    right: 50%;\n  }\n  .row .col.push-m6 {\n    left: 50%;\n  }\n  .row .col.offset-m7 {\n    margin-left: 58.3333333333%;\n  }\n  .row .col.pull-m7 {\n    right: 58.3333333333%;\n  }\n  .row .col.push-m7 {\n    left: 58.3333333333%;\n  }\n  .row .col.offset-m8 {\n    margin-left: 66.6666666667%;\n  }\n  .row .col.pull-m8 {\n    right: 66.6666666667%;\n  }\n  .row .col.push-m8 {\n    left: 66.6666666667%;\n  }\n  .row .col.offset-m9 {\n    margin-left: 75%;\n  }\n  .row .col.pull-m9 {\n    right: 75%;\n  }\n  .row .col.push-m9 {\n    left: 75%;\n  }\n  .row .col.offset-m10 {\n    margin-left: 83.3333333333%;\n  }\n  .row .col.pull-m10 {\n    right: 83.3333333333%;\n  }\n  .row .col.push-m10 {\n    left: 83.3333333333%;\n  }\n  .row .col.offset-m11 {\n    margin-left: 91.6666666667%;\n  }\n  .row .col.pull-m11 {\n    right: 91.6666666667%;\n  }\n  .row .col.push-m11 {\n    left: 91.6666666667%;\n  }\n  .row .col.offset-m12 {\n    margin-left: 100%;\n  }\n  .row .col.pull-m12 {\n    right: 100%;\n  }\n  .row .col.push-m12 {\n    left: 100%;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  .row .col.l1 {\n    width: 8.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l2 {\n    width: 16.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l3 {\n    width: 25%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l4 {\n    width: 33.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l5 {\n    width: 41.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l6 {\n    width: 50%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l7 {\n    width: 58.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l8 {\n    width: 66.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l9 {\n    width: 75%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l10 {\n    width: 83.3333333333%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l11 {\n    width: 91.6666666667%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.l12 {\n    width: 100%;\n    margin-left: auto;\n    left: auto;\n    right: auto;\n  }\n  .row .col.offset-l1 {\n    margin-left: 8.3333333333%;\n  }\n  .row .col.pull-l1 {\n    right: 8.3333333333%;\n  }\n  .row .col.push-l1 {\n    left: 8.3333333333%;\n  }\n  .row .col.offset-l2 {\n    margin-left: 16.6666666667%;\n  }\n  .row .col.pull-l2 {\n    right: 16.6666666667%;\n  }\n  .row .col.push-l2 {\n    left: 16.6666666667%;\n  }\n  .row .col.offset-l3 {\n    margin-left: 25%;\n  }\n  .row .col.pull-l3 {\n    right: 25%;\n  }\n  .row .col.push-l3 {\n    left: 25%;\n  }\n  .row .col.offset-l4 {\n    margin-left: 33.3333333333%;\n  }\n  .row .col.pull-l4 {\n    right: 33.3333333333%;\n  }\n  .row .col.push-l4 {\n    left: 33.3333333333%;\n  }\n  .row .col.offset-l5 {\n    margin-left: 41.6666666667%;\n  }\n  .row .col.pull-l5 {\n    right: 41.6666666667%;\n  }\n  .row .col.push-l5 {\n    left: 41.6666666667%;\n  }\n  .row .col.offset-l6 {\n    margin-left: 50%;\n  }\n  .row .col.pull-l6 {\n    right: 50%;\n  }\n  .row .col.push-l6 {\n    left: 50%;\n  }\n  .row .col.offset-l7 {\n    margin-left: 58.3333333333%;\n  }\n  .row .col.pull-l7 {\n    right: 58.3333333333%;\n  }\n  .row .col.push-l7 {\n    left: 58.3333333333%;\n  }\n  .row .col.offset-l8 {\n    margin-left: 66.6666666667%;\n  }\n  .row .col.pull-l8 {\n    right: 66.6666666667%;\n  }\n  .row .col.push-l8 {\n    left: 66.6666666667%;\n  }\n  .row .col.offset-l9 {\n    margin-left: 75%;\n  }\n  .row .col.pull-l9 {\n    right: 75%;\n  }\n  .row .col.push-l9 {\n    left: 75%;\n  }\n  .row .col.offset-l10 {\n    margin-left: 83.3333333333%;\n  }\n  .row .col.pull-l10 {\n    right: 83.3333333333%;\n  }\n  .row .col.push-l10 {\n    left: 83.3333333333%;\n  }\n  .row .col.offset-l11 {\n    margin-left: 91.6666666667%;\n  }\n  .row .col.pull-l11 {\n    right: 91.6666666667%;\n  }\n  .row .col.push-l11 {\n    left: 91.6666666667%;\n  }\n  .row .col.offset-l12 {\n    margin-left: 100%;\n  }\n  .row .col.pull-l12 {\n    right: 100%;\n  }\n  .row .col.push-l12 {\n    left: 100%;\n  }\n}\n\nnav {\n  color: #fff;\n  background-color: #ee6e73;\n  width: 100%;\n  height: 56px;\n  line-height: 56px;\n}\n\nnav a {\n  color: #fff;\n}\n\nnav i,\nnav [class^=\"mdi-\"], nav [class*=\"mdi-\"],\nnav i.material-icons {\n  display: block;\n  font-size: 2rem;\n  height: 56px;\n  line-height: 56px;\n}\n\nnav .nav-wrapper {\n  position: relative;\n  height: 100%;\n}\n\n@media only screen and (min-width: 993px) {\n  nav a.button-collapse {\n    display: none;\n  }\n}\n\nnav .button-collapse {\n  float: left;\n  position: relative;\n  z-index: 1;\n  height: 56px;\n}\n\nnav .button-collapse i {\n  font-size: 2.7rem;\n  height: 56px;\n  line-height: 56px;\n}\n\nnav .brand-logo {\n  position: absolute;\n  color: #fff;\n  display: inline-block;\n  font-size: 2.1rem;\n  padding: 0;\n  white-space: nowrap;\n}\n\nnav .brand-logo.center {\n  left: 50%;\n  -webkit-transform: translateX(-50%);\n          transform: translateX(-50%);\n}\n\n@media only screen and (max-width: 992px) {\n  nav .brand-logo {\n    left: 50%;\n    -webkit-transform: translateX(-50%);\n            transform: translateX(-50%);\n  }\n  nav .brand-logo.left, nav .brand-logo.right {\n    padding: 0;\n    -webkit-transform: none;\n            transform: none;\n  }\n  nav .brand-logo.left {\n    left: 0.5rem;\n  }\n  nav .brand-logo.right {\n    right: 0.5rem;\n    left: auto;\n  }\n}\n\nnav .brand-logo.right {\n  right: 0.5rem;\n  padding: 0;\n}\n\nnav ul {\n  margin: 0;\n}\n\nnav ul li {\n  transition: background-color .3s;\n  float: left;\n  padding: 0;\n}\n\nnav ul li.active {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\nnav ul a {\n  transition: background-color .3s;\n  font-size: 1rem;\n  color: #fff;\n  display: block;\n  padding: 0 15px;\n  cursor: pointer;\n}\n\nnav ul a.btn, nav ul a.btn-large, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {\n  margin-top: -2px;\n  margin-left: 15px;\n  margin-right: 15px;\n}\n\nnav ul a:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\nnav ul.left {\n  float: left;\n}\n\nnav .input-field {\n  margin: 0;\n}\n\nnav .input-field input {\n  height: 100%;\n  font-size: 1.2rem;\n  border: none;\n  padding-left: 2rem;\n}\n\nnav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid {\n  border: none;\n  box-shadow: none;\n}\n\nnav .input-field label {\n  top: 0;\n  left: 0;\n}\n\nnav .input-field label i {\n  color: rgba(255, 255, 255, 0.7);\n  transition: color .3s;\n}\n\nnav .input-field label.active i {\n  color: #fff;\n}\n\nnav .input-field label.active {\n  -webkit-transform: translateY(0);\n          transform: translateY(0);\n}\n\n.navbar-fixed {\n  position: relative;\n  height: 56px;\n  z-index: 998;\n}\n\n.navbar-fixed nav {\n  position: fixed;\n}\n\n@media only screen and (min-width: 601px) {\n  nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i {\n    height: 64px;\n    line-height: 64px;\n  }\n  .navbar-fixed {\n    height: 64px;\n  }\n}\n\n@font-face {\n  font-family: \"Roboto\";\n  src: local(Roboto Thin), url(\"../font/roboto/Roboto-Thin.eot\");\n  src: url(\"../font/roboto/Roboto-Thin.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/roboto/Roboto-Thin.woff2\") format(\"woff2\"), url(\"../font/roboto/Roboto-Thin.woff\") format(\"woff\"), url(\"../font/roboto/Roboto-Thin.ttf\") format(\"truetype\");\n  font-weight: 200;\n}\n\n@font-face {\n  font-family: \"Roboto\";\n  src: local(Roboto Light), url(\"../font/roboto/Roboto-Light.eot\");\n  src: url(\"../font/roboto/Roboto-Light.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/roboto/Roboto-Light.woff2\") format(\"woff2\"), url(\"../font/roboto/Roboto-Light.woff\") format(\"woff\"), url(\"../font/roboto/Roboto-Light.ttf\") format(\"truetype\");\n  font-weight: 300;\n}\n\n@font-face {\n  font-family: \"Roboto\";\n  src: local(Roboto Regular), url(\"../font/roboto/Roboto-Regular.eot\");\n  src: url(\"../font/roboto/Roboto-Regular.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/roboto/Roboto-Regular.woff2\") format(\"woff2\"), url(\"../font/roboto/Roboto-Regular.woff\") format(\"woff\"), url(\"../font/roboto/Roboto-Regular.ttf\") format(\"truetype\");\n  font-weight: 400;\n}\n\n@font-face {\n  font-family: \"Roboto\";\n  src: url(\"../font/roboto/Roboto-Medium.eot\");\n  src: url(\"../font/roboto/Roboto-Medium.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/roboto/Roboto-Medium.woff2\") format(\"woff2\"), url(\"../font/roboto/Roboto-Medium.woff\") format(\"woff\"), url(\"../font/roboto/Roboto-Medium.ttf\") format(\"truetype\");\n  font-weight: 500;\n}\n\n@font-face {\n  font-family: \"Roboto\";\n  src: url(\"../font/roboto/Roboto-Bold.eot\");\n  src: url(\"../font/roboto/Roboto-Bold.eot?#iefix\") format(\"embedded-opentype\"), url(\"../font/roboto/Roboto-Bold.woff2\") format(\"woff2\"), url(\"../font/roboto/Roboto-Bold.woff\") format(\"woff\"), url(\"../font/roboto/Roboto-Bold.ttf\") format(\"truetype\");\n  font-weight: 700;\n}\n\na {\n  text-decoration: none;\n}\n\nhtml {\n  line-height: 1.5;\n  font-family: \"Roboto\", sans-serif;\n  font-weight: normal;\n  color: rgba(0, 0, 0, 0.87);\n}\n\n@media only screen and (min-width: 0) {\n  html {\n    font-size: 14px;\n  }\n}\n\n@media only screen and (min-width: 992px) {\n  html {\n    font-size: 14.5px;\n  }\n}\n\n@media only screen and (min-width: 1200px) {\n  html {\n    font-size: 15px;\n  }\n}\n\nh1, h2, h3, h4, h5, h6 {\n  font-weight: 400;\n  line-height: 1.1;\n}\n\nh1 a, h2 a, h3 a, h4 a, h5 a, h6 a {\n  font-weight: inherit;\n}\n\nh1 {\n  font-size: 4.2rem;\n  line-height: 110%;\n  margin: 2.1rem 0 1.68rem 0;\n}\n\nh2 {\n  font-size: 3.56rem;\n  line-height: 110%;\n  margin: 1.78rem 0 1.424rem 0;\n}\n\nh3 {\n  font-size: 2.92rem;\n  line-height: 110%;\n  margin: 1.46rem 0 1.168rem 0;\n}\n\nh4 {\n  font-size: 2.28rem;\n  line-height: 110%;\n  margin: 1.14rem 0 0.912rem 0;\n}\n\nh5 {\n  font-size: 1.64rem;\n  line-height: 110%;\n  margin: 0.82rem 0 0.656rem 0;\n}\n\nh6 {\n  font-size: 1rem;\n  line-height: 110%;\n  margin: 0.5rem 0 0.4rem 0;\n}\n\nem {\n  font-style: italic;\n}\n\nstrong {\n  font-weight: 500;\n}\n\nsmall {\n  font-size: 75%;\n}\n\n.light, footer.page-footer .footer-copyright {\n  font-weight: 300;\n}\n\n.thin {\n  font-weight: 200;\n}\n\n.flow-text {\n  font-weight: 300;\n}\n\n@media only screen and (min-width: 360px) {\n  .flow-text {\n    font-size: 1.2rem;\n  }\n}\n\n@media only screen and (min-width: 390px) {\n  .flow-text {\n    font-size: 1.224rem;\n  }\n}\n\n@media only screen and (min-width: 420px) {\n  .flow-text {\n    font-size: 1.248rem;\n  }\n}\n\n@media only screen and (min-width: 450px) {\n  .flow-text {\n    font-size: 1.272rem;\n  }\n}\n\n@media only screen and (min-width: 480px) {\n  .flow-text {\n    font-size: 1.296rem;\n  }\n}\n\n@media only screen and (min-width: 510px) {\n  .flow-text {\n    font-size: 1.32rem;\n  }\n}\n\n@media only screen and (min-width: 540px) {\n  .flow-text {\n    font-size: 1.344rem;\n  }\n}\n\n@media only screen and (min-width: 570px) {\n  .flow-text {\n    font-size: 1.368rem;\n  }\n}\n\n@media only screen and (min-width: 600px) {\n  .flow-text {\n    font-size: 1.392rem;\n  }\n}\n\n@media only screen and (min-width: 630px) {\n  .flow-text {\n    font-size: 1.416rem;\n  }\n}\n\n@media only screen and (min-width: 660px) {\n  .flow-text {\n    font-size: 1.44rem;\n  }\n}\n\n@media only screen and (min-width: 690px) {\n  .flow-text {\n    font-size: 1.464rem;\n  }\n}\n\n@media only screen and (min-width: 720px) {\n  .flow-text {\n    font-size: 1.488rem;\n  }\n}\n\n@media only screen and (min-width: 750px) {\n  .flow-text {\n    font-size: 1.512rem;\n  }\n}\n\n@media only screen and (min-width: 780px) {\n  .flow-text {\n    font-size: 1.536rem;\n  }\n}\n\n@media only screen and (min-width: 810px) {\n  .flow-text {\n    font-size: 1.56rem;\n  }\n}\n\n@media only screen and (min-width: 840px) {\n  .flow-text {\n    font-size: 1.584rem;\n  }\n}\n\n@media only screen and (min-width: 870px) {\n  .flow-text {\n    font-size: 1.608rem;\n  }\n}\n\n@media only screen and (min-width: 900px) {\n  .flow-text {\n    font-size: 1.632rem;\n  }\n}\n\n@media only screen and (min-width: 930px) {\n  .flow-text {\n    font-size: 1.656rem;\n  }\n}\n\n@media only screen and (min-width: 960px) {\n  .flow-text {\n    font-size: 1.68rem;\n  }\n}\n\n@media only screen and (max-width: 360px) {\n  .flow-text {\n    font-size: 1.2rem;\n  }\n}\n\n.card-panel {\n  transition: box-shadow .25s;\n  padding: 20px;\n  margin: 0.5rem 0 1rem 0;\n  border-radius: 2px;\n  background-color: #fff;\n}\n\n.card {\n  position: relative;\n  margin: 0.5rem 0 1rem 0;\n  background-color: #fff;\n  transition: box-shadow .25s;\n  border-radius: 2px;\n}\n\n.card .card-title {\n  font-size: 24px;\n  font-weight: 300;\n}\n\n.card .card-title.activator {\n  cursor: pointer;\n}\n\n.card.small, .card.medium, .card.large {\n  position: relative;\n}\n\n.card.small .card-image, .card.medium .card-image, .card.large .card-image {\n  max-height: 60%;\n  overflow: hidden;\n}\n\n.card.small .card-content, .card.medium .card-content, .card.large .card-content {\n  max-height: 40%;\n  overflow: hidden;\n}\n\n.card.small .card-action, .card.medium .card-action, .card.large .card-action {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  z-index: 1;\n  background-color: inherit;\n}\n\n.card.small {\n  height: 300px;\n}\n\n.card.medium {\n  height: 400px;\n}\n\n.card.large {\n  height: 500px;\n}\n\n.card .card-image {\n  position: relative;\n}\n\n.card .card-image img {\n  display: block;\n  border-radius: 2px 2px 0 0;\n  position: relative;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n  width: 100%;\n}\n\n.card .card-image .card-title {\n  color: #fff;\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  padding: 20px;\n}\n\n.card .card-content {\n  padding: 20px;\n  border-radius: 0 0 2px 2px;\n}\n\n.card .card-content p {\n  margin: 0;\n  color: inherit;\n}\n\n.card .card-content .card-title {\n  line-height: 48px;\n}\n\n.card .card-action {\n  border-top: 1px solid rgba(160, 160, 160, 0.2);\n  padding: 20px;\n}\n\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating) {\n  color: #ffab40;\n  margin-right: 20px;\n  transition: color .3s ease;\n  text-transform: uppercase;\n}\n\n.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating):hover {\n  color: #ffd8a6;\n}\n\n.card .card-reveal {\n  padding: 20px;\n  position: absolute;\n  background-color: #fff;\n  width: 100%;\n  overflow-y: auto;\n  top: 100%;\n  height: 100%;\n  z-index: 1;\n  display: none;\n}\n\n.card .card-reveal .card-title {\n  cursor: pointer;\n  display: block;\n}\n\n#toast-container {\n  display: block;\n  position: fixed;\n  z-index: 10000;\n}\n\n@media only screen and (max-width: 600px) {\n  #toast-container {\n    min-width: 100%;\n    bottom: 0%;\n  }\n}\n\n@media only screen and (min-width: 601px) and (max-width: 992px) {\n  #toast-container {\n    left: 5%;\n    bottom: 7%;\n    max-width: 90%;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  #toast-container {\n    top: 10%;\n    right: 7%;\n    max-width: 86%;\n  }\n}\n\n.toast {\n  border-radius: 2px;\n  top: 0;\n  width: auto;\n  clear: both;\n  margin-top: 10px;\n  position: relative;\n  max-width: 100%;\n  height: auto;\n  min-height: 48px;\n  line-height: 1.5em;\n  word-break: break-all;\n  background-color: #323232;\n  padding: 10px 25px;\n  font-size: 1.1rem;\n  font-weight: 300;\n  color: #fff;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n      -ms-flex-align: center;\n          align-items: center;\n  -webkit-justify-content: space-between;\n      -ms-flex-pack: justify;\n          justify-content: space-between;\n}\n\n.toast .btn, .toast .btn-large, .toast .btn-flat {\n  margin: 0;\n  margin-left: 3rem;\n}\n\n.toast.rounded {\n  border-radius: 24px;\n}\n\n@media only screen and (max-width: 600px) {\n  .toast {\n    width: 100%;\n    border-radius: 0;\n  }\n}\n\n@media only screen and (min-width: 601px) and (max-width: 992px) {\n  .toast {\n    float: left;\n  }\n}\n\n@media only screen and (min-width: 993px) {\n  .toast {\n    float: right;\n  }\n}\n\n.tabs {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  position: relative;\n  overflow-x: auto;\n  overflow-y: hidden;\n  height: 48px;\n  background-color: #fff;\n  margin: 0 auto;\n  width: 100%;\n  white-space: nowrap;\n}\n\n.tabs .tab {\n  -webkit-box-flex: 1;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  display: block;\n  float: left;\n  text-align: center;\n  line-height: 48px;\n  height: 48px;\n  padding: 0;\n  margin: 0;\n  text-transform: uppercase;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  letter-spacing: .8px;\n  width: 15%;\n  min-width: 80px;\n}\n\n.tabs .tab a {\n  color: #ee6e73;\n  display: block;\n  width: 100%;\n  height: 100%;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  transition: color .28s ease;\n}\n\n.tabs .tab a:hover {\n  color: #f9c9cb;\n}\n\n.tabs .tab.disabled a {\n  color: #f9c9cb;\n  cursor: default;\n}\n\n.tabs .indicator {\n  position: absolute;\n  bottom: 0;\n  height: 2px;\n  background-color: #f6b2b5;\n  will-change: left, right;\n}\n\n.material-tooltip {\n  padding: 10px 8px;\n  font-size: 1rem;\n  z-index: 2000;\n  background-color: transparent;\n  border-radius: 2px;\n  color: #fff;\n  min-height: 36px;\n  line-height: 120%;\n  opacity: 0;\n  display: none;\n  position: absolute;\n  text-align: center;\n  max-width: calc(100% - 4px);\n  overflow: hidden;\n  left: 0;\n  top: 0;\n  will-change: top, left;\n}\n\n.backdrop {\n  position: absolute;\n  opacity: 0;\n  display: none;\n  height: 7px;\n  width: 14px;\n  border-radius: 0 0 14px 14px;\n  background-color: #323232;\n  z-index: -1;\n  -webkit-transform-origin: 50% 10%;\n          transform-origin: 50% 10%;\n  will-change: transform, opacity;\n}\n\n.btn, .btn-large, .btn-flat {\n  border: none;\n  border-radius: 2px;\n  display: inline-block;\n  height: 36px;\n  line-height: 36px;\n  outline: 0;\n  padding: 0 2rem;\n  text-transform: uppercase;\n  vertical-align: middle;\n  -webkit-tap-highlight-color: transparent;\n}\n\n.btn.disabled, .disabled.btn-large, .btn-floating.disabled, .btn-large.disabled, .btn:disabled, .btn-large:disabled, .btn-large:disabled, .btn-floating:disabled {\n  background-color: #DFDFDF !important;\n  box-shadow: none;\n  color: #9F9F9F !important;\n  cursor: default;\n}\n\n.btn.disabled *, .disabled.btn-large *, .btn-floating.disabled *, .btn-large.disabled *, .btn:disabled *, .btn-large:disabled *, .btn-large:disabled *, .btn-floating:disabled * {\n  pointer-events: none;\n}\n\n.btn.disabled:hover, .disabled.btn-large:hover, .btn-floating.disabled:hover, .btn-large.disabled:hover, .btn:disabled:hover, .btn-large:disabled:hover, .btn-large:disabled:hover, .btn-floating:disabled:hover {\n  background-color: #DFDFDF;\n  color: #9F9F9F;\n}\n\n.btn i, .btn-large i, .btn-floating i, .btn-large i, .btn-flat i {\n  font-size: 1.3rem;\n  line-height: inherit;\n}\n\n.btn, .btn-large {\n  text-decoration: none;\n  color: #fff;\n  background-color: #26a69a;\n  text-align: center;\n  letter-spacing: .5px;\n  transition: .2s ease-out;\n  cursor: pointer;\n}\n\n.btn:hover, .btn-large:hover {\n  background-color: #2bbbad;\n}\n\n.btn-floating {\n  display: inline-block;\n  color: #fff;\n  position: relative;\n  overflow: hidden;\n  z-index: 1;\n  width: 37px;\n  height: 37px;\n  line-height: 37px;\n  padding: 0;\n  background-color: #26a69a;\n  border-radius: 50%;\n  transition: .3s;\n  cursor: pointer;\n  vertical-align: middle;\n}\n\n.btn-floating i {\n  width: inherit;\n  display: inline-block;\n  text-align: center;\n  color: #fff;\n  font-size: 1.6rem;\n  line-height: 37px;\n}\n\n.btn-floating:hover {\n  background-color: #26a69a;\n}\n\n.btn-floating:before {\n  border-radius: 0;\n}\n\n.btn-floating.btn-large {\n  width: 55.5px;\n  height: 55.5px;\n}\n\n.btn-floating.btn-large i {\n  line-height: 55.5px;\n}\n\nbutton.btn-floating {\n  border: none;\n}\n\n.fixed-action-btn {\n  position: fixed;\n  right: 23px;\n  bottom: 23px;\n  padding-top: 15px;\n  margin-bottom: 0;\n  z-index: 998;\n}\n\n.fixed-action-btn.active ul {\n  visibility: visible;\n}\n\n.fixed-action-btn.horizontal {\n  padding: 0 0 0 15px;\n}\n\n.fixed-action-btn.horizontal ul {\n  text-align: right;\n  right: 64px;\n  top: 50%;\n  -webkit-transform: translateY(-50%);\n          transform: translateY(-50%);\n  height: 100%;\n  left: initial;\n  width: 500px;\n  /*width 100% only goes to width of button container */\n}\n\n.fixed-action-btn.horizontal ul li {\n  display: inline-block;\n  margin: 15px 15px 0 0;\n}\n\n.fixed-action-btn ul {\n  left: 0;\n  right: 0;\n  text-align: center;\n  position: absolute;\n  bottom: 64px;\n  margin: 0;\n  visibility: hidden;\n}\n\n.fixed-action-btn ul li {\n  margin-bottom: 15px;\n}\n\n.fixed-action-btn ul a.btn-floating {\n  opacity: 0;\n}\n\n.btn-flat {\n  box-shadow: none;\n  background-color: transparent;\n  color: #343434;\n  cursor: pointer;\n}\n\n.btn-flat.disabled {\n  color: #b3b3b3;\n  cursor: default;\n}\n\n.btn-large {\n  height: 54px;\n  line-height: 56px;\n}\n\n.btn-large i {\n  font-size: 1.6rem;\n}\n\n.btn-block {\n  display: block;\n}\n\n.dropdown-content {\n  background-color: #fff;\n  margin: 0;\n  display: none;\n  min-width: 100px;\n  max-height: 650px;\n  overflow-y: auto;\n  opacity: 0;\n  position: absolute;\n  z-index: 999;\n  will-change: width, height;\n}\n\n.dropdown-content li {\n  clear: both;\n  color: rgba(0, 0, 0, 0.87);\n  cursor: pointer;\n  min-height: 50px;\n  line-height: 1.5rem;\n  width: 100%;\n  text-align: left;\n  text-transform: none;\n}\n\n.dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected {\n  background-color: #eee;\n}\n\n.dropdown-content li.active.selected {\n  background-color: #e1e1e1;\n}\n\n.dropdown-content li.divider {\n  min-height: 0;\n  height: 1px;\n}\n\n.dropdown-content li > a, .dropdown-content li > span {\n  font-size: 16px;\n  color: #26a69a;\n  display: block;\n  line-height: 22px;\n  padding: 14px 16px;\n}\n\n.dropdown-content li > span > label {\n  top: 1px;\n  left: 3px;\n  height: 18px;\n}\n\n.dropdown-content li > a > i {\n  height: inherit;\n  line-height: inherit;\n}\n\n/*!\n * Waves v0.6.0\n * http://fian.my.id/Waves\n *\n * Copyright 2014 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE\n */\n.waves-effect {\n  position: relative;\n  cursor: pointer;\n  display: inline-block;\n  overflow: hidden;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  -webkit-tap-highlight-color: transparent;\n  vertical-align: middle;\n  z-index: 1;\n  will-change: opacity, transform;\n  transition: all .3s ease-out;\n}\n\n.waves-effect .waves-ripple {\n  position: absolute;\n  border-radius: 50%;\n  width: 20px;\n  height: 20px;\n  margin-top: -10px;\n  margin-left: -10px;\n  opacity: 0;\n  background: rgba(0, 0, 0, 0.2);\n  transition: all 0.7s ease-out;\n  transition-property: opacity, -webkit-transform;\n  transition-property: transform, opacity;\n  transition-property: transform, opacity, -webkit-transform;\n  -webkit-transform: scale(0);\n          transform: scale(0);\n  pointer-events: none;\n}\n\n.waves-effect.waves-light .waves-ripple {\n  background-color: rgba(255, 255, 255, 0.45);\n}\n\n.waves-effect.waves-red .waves-ripple {\n  background-color: rgba(244, 67, 54, 0.7);\n}\n\n.waves-effect.waves-yellow .waves-ripple {\n  background-color: rgba(255, 235, 59, 0.7);\n}\n\n.waves-effect.waves-orange .waves-ripple {\n  background-color: rgba(255, 152, 0, 0.7);\n}\n\n.waves-effect.waves-purple .waves-ripple {\n  background-color: rgba(156, 39, 176, 0.7);\n}\n\n.waves-effect.waves-green .waves-ripple {\n  background-color: rgba(76, 175, 80, 0.7);\n}\n\n.waves-effect.waves-teal .waves-ripple {\n  background-color: rgba(0, 150, 136, 0.7);\n}\n\n.waves-effect input[type=\"button\"], .waves-effect input[type=\"reset\"], .waves-effect input[type=\"submit\"] {\n  border: 0;\n  font-style: normal;\n  font-size: inherit;\n  text-transform: inherit;\n  background: none;\n}\n\n.waves-notransition {\n  transition: none !important;\n}\n\n.waves-circle {\n  -webkit-transform: translateZ(0);\n          transform: translateZ(0);\n  -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n\n.waves-input-wrapper {\n  border-radius: 0.2em;\n  vertical-align: bottom;\n}\n\n.waves-input-wrapper .waves-button-input {\n  position: relative;\n  top: 0;\n  left: 0;\n  z-index: 1;\n}\n\n.waves-circle {\n  text-align: center;\n  width: 2.5em;\n  height: 2.5em;\n  line-height: 2.5em;\n  border-radius: 50%;\n  -webkit-mask-image: none;\n}\n\n.waves-block {\n  display: block;\n}\n\n/* Firefox Bug: link not triggered */\na.waves-effect .waves-ripple {\n  z-index: -1;\n}\n\n.modal {\n  display: none;\n  position: fixed;\n  left: 0;\n  right: 0;\n  background-color: #fafafa;\n  padding: 0;\n  max-height: 70%;\n  width: 55%;\n  margin: auto;\n  overflow-y: auto;\n  border-radius: 2px;\n  will-change: top, opacity;\n}\n\n@media only screen and (max-width: 992px) {\n  .modal {\n    width: 80%;\n  }\n}\n\n.modal h1, .modal h2, .modal h3, .modal h4 {\n  margin-top: 0;\n}\n\n.modal .modal-content {\n  padding: 24px;\n}\n\n.modal .modal-close {\n  cursor: pointer;\n}\n\n.modal .modal-footer {\n  border-radius: 0 0 2px 2px;\n  background-color: #fafafa;\n  padding: 4px 6px;\n  height: 56px;\n  width: 100%;\n}\n\n.modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {\n  float: right;\n  margin: 6px 0;\n}\n\n.lean-overlay {\n  position: fixed;\n  z-index: 999;\n  top: -100px;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  height: 125%;\n  width: 100%;\n  background: #000;\n  display: none;\n  will-change: opacity;\n}\n\n.modal.modal-fixed-footer {\n  padding: 0;\n  height: 70%;\n}\n\n.modal.modal-fixed-footer .modal-content {\n  position: absolute;\n  height: calc(100% - 56px);\n  max-height: 100%;\n  width: 100%;\n  overflow-y: auto;\n}\n\n.modal.modal-fixed-footer .modal-footer {\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n  position: absolute;\n  bottom: 0;\n}\n\n.modal.bottom-sheet {\n  top: auto;\n  bottom: -100%;\n  margin: 0;\n  width: 100%;\n  max-height: 45%;\n  border-radius: 0;\n  will-change: bottom, opacity;\n}\n\n.collapsible {\n  border-top: 1px solid #ddd;\n  border-right: 1px solid #ddd;\n  border-left: 1px solid #ddd;\n  margin: 0.5rem 0 1rem 0;\n}\n\n.collapsible-header {\n  display: block;\n  cursor: pointer;\n  min-height: 3rem;\n  line-height: 3rem;\n  padding: 0 1rem;\n  background-color: #fff;\n  border-bottom: 1px solid #ddd;\n}\n\n.collapsible-header i {\n  width: 2rem;\n  font-size: 1.6rem;\n  line-height: 3rem;\n  display: block;\n  float: left;\n  text-align: center;\n  margin-right: 1rem;\n}\n\n.collapsible-body {\n  display: none;\n  border-bottom: 1px solid #ddd;\n  box-sizing: border-box;\n}\n\n.collapsible-body p {\n  margin: 0;\n  padding: 2rem;\n}\n\n.side-nav .collapsible {\n  border: none;\n  box-shadow: none;\n}\n\n.side-nav .collapsible li {\n  padding: 0;\n}\n\n.side-nav .collapsible-header {\n  background-color: transparent;\n  border: none;\n  line-height: inherit;\n  height: inherit;\n  margin: 0 1rem;\n}\n\n.side-nav .collapsible-header i {\n  line-height: inherit;\n}\n\n.side-nav .collapsible-body {\n  border: 0;\n  background-color: #fff;\n}\n\n.side-nav .collapsible-body li a {\n  margin: 0 1rem 0 2rem;\n}\n\n.collapsible.popout {\n  border: none;\n  box-shadow: none;\n}\n\n.collapsible.popout > li {\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n  margin: 0 24px;\n  transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n\n.collapsible.popout > li.active {\n  box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n  margin: 16px 0;\n}\n\n.chip {\n  display: inline-block;\n  height: 32px;\n  font-size: 13px;\n  font-weight: 500;\n  color: rgba(0, 0, 0, 0.6);\n  line-height: 32px;\n  padding: 0 12px;\n  border-radius: 16px;\n  background-color: #e4e4e4;\n}\n\n.chip img {\n  float: left;\n  margin: 0 8px 0 -12px;\n  height: 32px;\n  width: 32px;\n  border-radius: 50%;\n}\n\n.chip i.material-icons {\n  cursor: pointer;\n  float: right;\n  font-size: 16px;\n  line-height: 32px;\n  padding-left: 8px;\n}\n\n.materialboxed {\n  display: block;\n  cursor: -webkit-zoom-in;\n  cursor: zoom-in;\n  position: relative;\n  transition: opacity .4s;\n}\n\n.materialboxed:hover {\n  will-change: left, top, width, height;\n}\n\n.materialboxed:hover:not(.active) {\n  opacity: .8;\n}\n\n.materialboxed.active {\n  cursor: -webkit-zoom-out;\n  cursor: zoom-out;\n}\n\n#materialbox-overlay {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background-color: #292929;\n  z-index: 999;\n  will-change: opacity;\n}\n\n.materialbox-caption {\n  position: fixed;\n  display: none;\n  color: #fff;\n  line-height: 50px;\n  bottom: 0;\n  width: 100%;\n  text-align: center;\n  padding: 0% 15%;\n  height: 50px;\n  z-index: 1000;\n  -webkit-font-smoothing: antialiased;\n}\n\n/* Remove Focus Boxes */\nselect:focus {\n  outline: 1px solid #c9f3ef;\n}\n\nbutton:focus {\n  outline: none;\n  background-color: #2ab7a9;\n}\n\nlabel {\n  font-size: 0.8rem;\n  color: #9e9e9e;\n}\n\n/***************************\n   Text Inputs + Textarea\n****************************/\n::-webkit-input-placeholder {\n  color: #d1d1d1;\n}\n\n:-moz-placeholder {\n  /* Firefox 18- */\n  color: #d1d1d1;\n}\n\n::-moz-placeholder {\n  /* Firefox 19+ */\n  color: #d1d1d1;\n}\n\n:-ms-input-placeholder {\n  color: #d1d1d1;\n}\n\ninput:not([type]),\ninput[type=text],\ninput[type=password],\ninput[type=email],\ninput[type=url],\ninput[type=time],\ninput[type=date],\ninput[type=datetime-local],\ninput[type=tel],\ninput[type=number],\ninput[type=search],\ntextarea.materialize-textarea {\n  background-color: transparent;\n  border: none;\n  border-bottom: 1px solid #9e9e9e;\n  border-radius: 0;\n  outline: none;\n  height: 3rem;\n  width: 100%;\n  font-size: 1rem;\n  margin: 0 0 15px 0;\n  padding: 0;\n  box-shadow: none;\n  box-sizing: content-box;\n  transition: all .3s;\n}\n\ninput:not([type]):disabled, input:not([type])[readonly=\"readonly\"],\ninput[type=text]:disabled,\ninput[type=text][readonly=\"readonly\"],\ninput[type=password]:disabled,\ninput[type=password][readonly=\"readonly\"],\ninput[type=email]:disabled,\ninput[type=email][readonly=\"readonly\"],\ninput[type=url]:disabled,\ninput[type=url][readonly=\"readonly\"],\ninput[type=time]:disabled,\ninput[type=time][readonly=\"readonly\"],\ninput[type=date]:disabled,\ninput[type=date][readonly=\"readonly\"],\ninput[type=datetime-local]:disabled,\ninput[type=datetime-local][readonly=\"readonly\"],\ninput[type=tel]:disabled,\ninput[type=tel][readonly=\"readonly\"],\ninput[type=number]:disabled,\ninput[type=number][readonly=\"readonly\"],\ninput[type=search]:disabled,\ninput[type=search][readonly=\"readonly\"],\ntextarea.materialize-textarea:disabled,\ntextarea.materialize-textarea[readonly=\"readonly\"] {\n  color: rgba(0, 0, 0, 0.26);\n  border-bottom: 1px dotted rgba(0, 0, 0, 0.26);\n}\n\ninput:not([type]):disabled + label, input:not([type])[readonly=\"readonly\"] + label,\ninput[type=text]:disabled + label,\ninput[type=text][readonly=\"readonly\"] + label,\ninput[type=password]:disabled + label,\ninput[type=password][readonly=\"readonly\"] + label,\ninput[type=email]:disabled + label,\ninput[type=email][readonly=\"readonly\"] + label,\ninput[type=url]:disabled + label,\ninput[type=url][readonly=\"readonly\"] + label,\ninput[type=time]:disabled + label,\ninput[type=time][readonly=\"readonly\"] + label,\ninput[type=date]:disabled + label,\ninput[type=date][readonly=\"readonly\"] + label,\ninput[type=datetime-local]:disabled + label,\ninput[type=datetime-local][readonly=\"readonly\"] + label,\ninput[type=tel]:disabled + label,\ninput[type=tel][readonly=\"readonly\"] + label,\ninput[type=number]:disabled + label,\ninput[type=number][readonly=\"readonly\"] + label,\ninput[type=search]:disabled + label,\ninput[type=search][readonly=\"readonly\"] + label,\ntextarea.materialize-textarea:disabled + label,\ntextarea.materialize-textarea[readonly=\"readonly\"] + label {\n  color: rgba(0, 0, 0, 0.26);\n}\n\ninput:not([type]):focus:not([readonly]),\ninput[type=text]:focus:not([readonly]),\ninput[type=password]:focus:not([readonly]),\ninput[type=email]:focus:not([readonly]),\ninput[type=url]:focus:not([readonly]),\ninput[type=time]:focus:not([readonly]),\ninput[type=date]:focus:not([readonly]),\ninput[type=datetime-local]:focus:not([readonly]),\ninput[type=tel]:focus:not([readonly]),\ninput[type=number]:focus:not([readonly]),\ninput[type=search]:focus:not([readonly]),\ntextarea.materialize-textarea:focus:not([readonly]) {\n  border-bottom: 1px solid #26a69a;\n  box-shadow: 0 1px 0 0 #26a69a;\n}\n\ninput:not([type]):focus:not([readonly]) + label,\ninput[type=text]:focus:not([readonly]) + label,\ninput[type=password]:focus:not([readonly]) + label,\ninput[type=email]:focus:not([readonly]) + label,\ninput[type=url]:focus:not([readonly]) + label,\ninput[type=time]:focus:not([readonly]) + label,\ninput[type=date]:focus:not([readonly]) + label,\ninput[type=datetime-local]:focus:not([readonly]) + label,\ninput[type=tel]:focus:not([readonly]) + label,\ninput[type=number]:focus:not([readonly]) + label,\ninput[type=search]:focus:not([readonly]) + label,\ntextarea.materialize-textarea:focus:not([readonly]) + label {\n  color: #26a69a;\n}\n\ninput:not([type]).valid, input:not([type]):focus.valid,\ninput[type=text].valid,\ninput[type=text]:focus.valid,\ninput[type=password].valid,\ninput[type=password]:focus.valid,\ninput[type=email].valid,\ninput[type=email]:focus.valid,\ninput[type=url].valid,\ninput[type=url]:focus.valid,\ninput[type=time].valid,\ninput[type=time]:focus.valid,\ninput[type=date].valid,\ninput[type=date]:focus.valid,\ninput[type=datetime-local].valid,\ninput[type=datetime-local]:focus.valid,\ninput[type=tel].valid,\ninput[type=tel]:focus.valid,\ninput[type=number].valid,\ninput[type=number]:focus.valid,\ninput[type=search].valid,\ninput[type=search]:focus.valid,\ntextarea.materialize-textarea.valid,\ntextarea.materialize-textarea:focus.valid {\n  border-bottom: 1px solid #4CAF50;\n  box-shadow: 0 1px 0 0 #4CAF50;\n}\n\ninput:not([type]).valid + label:after,\ninput:not([type]):focus.valid + label:after,\ninput[type=text].valid + label:after,\ninput[type=text]:focus.valid + label:after,\ninput[type=password].valid + label:after,\ninput[type=password]:focus.valid + label:after,\ninput[type=email].valid + label:after,\ninput[type=email]:focus.valid + label:after,\ninput[type=url].valid + label:after,\ninput[type=url]:focus.valid + label:after,\ninput[type=time].valid + label:after,\ninput[type=time]:focus.valid + label:after,\ninput[type=date].valid + label:after,\ninput[type=date]:focus.valid + label:after,\ninput[type=datetime-local].valid + label:after,\ninput[type=datetime-local]:focus.valid + label:after,\ninput[type=tel].valid + label:after,\ninput[type=tel]:focus.valid + label:after,\ninput[type=number].valid + label:after,\ninput[type=number]:focus.valid + label:after,\ninput[type=search].valid + label:after,\ninput[type=search]:focus.valid + label:after,\ntextarea.materialize-textarea.valid + label:after,\ntextarea.materialize-textarea:focus.valid + label:after {\n  content: attr(data-success);\n  color: #4CAF50;\n  opacity: 1;\n}\n\ninput:not([type]).invalid, input:not([type]):focus.invalid,\ninput[type=text].invalid,\ninput[type=text]:focus.invalid,\ninput[type=password].invalid,\ninput[type=password]:focus.invalid,\ninput[type=email].invalid,\ninput[type=email]:focus.invalid,\ninput[type=url].invalid,\ninput[type=url]:focus.invalid,\ninput[type=time].invalid,\ninput[type=time]:focus.invalid,\ninput[type=date].invalid,\ninput[type=date]:focus.invalid,\ninput[type=datetime-local].invalid,\ninput[type=datetime-local]:focus.invalid,\ninput[type=tel].invalid,\ninput[type=tel]:focus.invalid,\ninput[type=number].invalid,\ninput[type=number]:focus.invalid,\ninput[type=search].invalid,\ninput[type=search]:focus.invalid,\ntextarea.materialize-textarea.invalid,\ntextarea.materialize-textarea:focus.invalid {\n  border-bottom: 1px solid #F44336;\n  box-shadow: 0 1px 0 0 #F44336;\n}\n\ninput:not([type]).invalid + label:after,\ninput:not([type]):focus.invalid + label:after,\ninput[type=text].invalid + label:after,\ninput[type=text]:focus.invalid + label:after,\ninput[type=password].invalid + label:after,\ninput[type=password]:focus.invalid + label:after,\ninput[type=email].invalid + label:after,\ninput[type=email]:focus.invalid + label:after,\ninput[type=url].invalid + label:after,\ninput[type=url]:focus.invalid + label:after,\ninput[type=time].invalid + label:after,\ninput[type=time]:focus.invalid + label:after,\ninput[type=date].invalid + label:after,\ninput[type=date]:focus.invalid + label:after,\ninput[type=datetime-local].invalid + label:after,\ninput[type=datetime-local]:focus.invalid + label:after,\ninput[type=tel].invalid + label:after,\ninput[type=tel]:focus.invalid + label:after,\ninput[type=number].invalid + label:after,\ninput[type=number]:focus.invalid + label:after,\ninput[type=search].invalid + label:after,\ninput[type=search]:focus.invalid + label:after,\ntextarea.materialize-textarea.invalid + label:after,\ntextarea.materialize-textarea:focus.invalid + label:after {\n  content: attr(data-error);\n  color: #F44336;\n  opacity: 1;\n}\n\ninput:not([type]) + label:after,\ninput[type=text] + label:after,\ninput[type=password] + label:after,\ninput[type=email] + label:after,\ninput[type=url] + label:after,\ninput[type=time] + label:after,\ninput[type=date] + label:after,\ninput[type=datetime-local] + label:after,\ninput[type=tel] + label:after,\ninput[type=number] + label:after,\ninput[type=search] + label:after,\ntextarea.materialize-textarea + label:after {\n  display: block;\n  content: \"\";\n  position: absolute;\n  top: 65px;\n  opacity: 0;\n  transition: .2s opacity ease-out, .2s color ease-out;\n}\n\n.input-field {\n  position: relative;\n  margin-top: 1rem;\n}\n\n.input-field label {\n  color: #9e9e9e;\n  position: absolute;\n  top: 0.8rem;\n  left: 0.75rem;\n  font-size: 1rem;\n  cursor: text;\n  transition: .2s ease-out;\n}\n\n.input-field label.active {\n  font-size: 0.8rem;\n  -webkit-transform: translateY(-140%);\n          transform: translateY(-140%);\n}\n\n.input-field .prefix {\n  position: absolute;\n  width: 3rem;\n  font-size: 2rem;\n  transition: color .2s;\n}\n\n.input-field .prefix.active {\n  color: #26a69a;\n}\n\n.input-field .prefix ~ input,\n.input-field .prefix ~ textarea {\n  margin-left: 3rem;\n  width: 92%;\n  width: calc(100% - 3rem);\n}\n\n.input-field .prefix ~ textarea {\n  padding-top: .8rem;\n}\n\n.input-field .prefix ~ label {\n  margin-left: 3rem;\n}\n\n@media only screen and (max-width: 992px) {\n  .input-field .prefix ~ input {\n    width: 86%;\n    width: calc(100% - 3rem);\n  }\n}\n\n@media only screen and (max-width: 600px) {\n  .input-field .prefix ~ input {\n    width: 80%;\n    width: calc(100% - 3rem);\n  }\n}\n\n.input-field input[type=search] {\n  display: block;\n  line-height: inherit;\n  padding-left: 4rem;\n  width: calc(100% - 4rem);\n}\n\n.input-field input[type=search]:focus {\n  background-color: #fff;\n  border: 0;\n  box-shadow: none;\n  color: #444;\n}\n\n.input-field input[type=search]:focus + label i,\n.input-field input[type=search]:focus ~ .mdi-navigation-close,\n.input-field input[type=search]:focus ~ .material-icons {\n  color: #444;\n}\n\n.input-field input[type=search] + label {\n  left: 1rem;\n}\n\n.input-field input[type=search] ~ .mdi-navigation-close,\n.input-field input[type=search] ~ .material-icons {\n  position: absolute;\n  top: 0;\n  right: 1rem;\n  color: transparent;\n  cursor: pointer;\n  font-size: 2rem;\n  transition: .3s color;\n}\n\ntextarea {\n  width: 100%;\n  height: 3rem;\n  background-color: transparent;\n}\n\ntextarea.materialize-textarea {\n  overflow-y: hidden;\n  /* prevents scroll bar flash */\n  padding: 1.6rem 0;\n  /* prevents text jump on Enter keypress */\n  resize: none;\n  min-height: 3rem;\n}\n\n.hiddendiv {\n  display: none;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  overflow-wrap: break-word;\n  /* future version of deprecated 'word-wrap' */\n  padding-top: 1.2rem;\n  /* prevents text jump on Enter keypress */\n}\n\n/***************\n  Radio Buttons\n***************/\n/* Remove default Radio Buttons */\n[type=\"radio\"]:not(:checked),\n[type=\"radio\"]:checked {\n  position: absolute;\n  left: -9999px;\n  visibility: hidden;\n}\n\n[type=\"radio\"]:not(:checked) + label,\n[type=\"radio\"]:checked + label {\n  position: relative;\n  padding-left: 35px;\n  cursor: pointer;\n  display: inline-block;\n  height: 25px;\n  line-height: 25px;\n  font-size: 1rem;\n  transition: .28s ease;\n  /* webkit (konqueror) browsers */\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n}\n\n[type=\"radio\"] + label:before,\n[type=\"radio\"] + label:after {\n  content: '';\n  position: absolute;\n  left: 0;\n  top: 0;\n  margin: 4px;\n  width: 16px;\n  height: 16px;\n  z-index: 0;\n  transition: .28s ease;\n}\n\n/* Unchecked styles */\n[type=\"radio\"]:not(:checked) + label:before {\n  border-radius: 50%;\n  border: 2px solid #5a5a5a;\n}\n\n[type=\"radio\"]:not(:checked) + label:after {\n  border-radius: 50%;\n  border: 2px solid #5a5a5a;\n  z-index: -1;\n  -webkit-transform: scale(0);\n          transform: scale(0);\n}\n\n/* Checked styles */\n[type=\"radio\"]:checked + label:before {\n  border-radius: 50%;\n  border: 2px solid transparent;\n}\n\n[type=\"radio\"]:checked + label:after {\n  border-radius: 50%;\n  border: 2px solid #26a69a;\n  background-color: #26a69a;\n  z-index: 0;\n  -webkit-transform: scale(1.02);\n          transform: scale(1.02);\n}\n\n/* Radio With gap */\n[type=\"radio\"].with-gap:checked + label:before {\n  border-radius: 50%;\n  border: 2px solid #26a69a;\n}\n\n[type=\"radio\"].with-gap:checked + label:after {\n  border-radius: 50%;\n  border: 2px solid #26a69a;\n  background-color: #26a69a;\n  z-index: 0;\n  -webkit-transform: scale(0.5);\n          transform: scale(0.5);\n}\n\n/* Disabled Radio With gap */\n[type=\"radio\"].with-gap:disabled:checked + label:before {\n  border: 2px solid rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"].with-gap:disabled:checked + label:after {\n  border: none;\n  background-color: rgba(0, 0, 0, 0.26);\n}\n\n/* Disabled style */\n[type=\"radio\"]:disabled:not(:checked) + label:before,\n[type=\"radio\"]:disabled:checked + label:before {\n  background-color: transparent;\n  border-color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"]:disabled + label {\n  color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"]:disabled:not(:checked) + label:before {\n  border-color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"radio\"]:disabled:checked + label:after {\n  background-color: rgba(0, 0, 0, 0.26);\n  border-color: #BDBDBD;\n}\n\n/***************\n   Checkboxes\n***************/\n/* CUSTOM CSS CHECKBOXES */\nform p {\n  margin-bottom: 10px;\n  text-align: left;\n}\n\nform p:last-child {\n  margin-bottom: 0;\n}\n\n/* Remove default checkbox */\n[type=\"checkbox\"]:not(:checked),\n[type=\"checkbox\"]:checked {\n  position: absolute;\n  left: -9999px;\n  visibility: hidden;\n}\n\n[type=\"checkbox\"] {\n  /* checkbox aspect */\n}\n\n[type=\"checkbox\"] + label {\n  position: relative;\n  padding-left: 35px;\n  cursor: pointer;\n  display: inline-block;\n  height: 25px;\n  line-height: 25px;\n  font-size: 1rem;\n  -webkit-user-select: none;\n  /* webkit (safari, chrome) browsers */\n  -moz-user-select: none;\n  /* mozilla browsers */\n  -khtml-user-select: none;\n  /* webkit (konqueror) browsers */\n  -ms-user-select: none;\n  /* IE10+ */\n}\n\n[type=\"checkbox\"] + label:before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 18px;\n  height: 18px;\n  z-index: 0;\n  border: 2px solid #5a5a5a;\n  border-radius: 1px;\n  margin-top: 2px;\n  transition: .2s;\n}\n\n[type=\"checkbox\"]:not(:checked):disabled + label:before {\n  border: none;\n  background-color: rgba(0, 0, 0, 0.26);\n}\n\n[type=\"checkbox\"]:checked + label:before {\n  top: -4px;\n  left: -3px;\n  width: 12px;\n  height: 22px;\n  border-top: 2px solid transparent;\n  border-left: 2px solid transparent;\n  border-right: 2px solid #26a69a;\n  border-bottom: 2px solid #26a69a;\n  -webkit-transform: rotate(40deg);\n          transform: rotate(40deg);\n  -webkit-backface-visibility: hidden;\n          backface-visibility: hidden;\n  -webkit-transform-origin: 100% 100%;\n          transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"]:checked:disabled + label:before {\n  border-right: 2px solid rgba(0, 0, 0, 0.26);\n  border-bottom: 2px solid rgba(0, 0, 0, 0.26);\n}\n\n/* Indeterminate checkbox */\n[type=\"checkbox\"]:indeterminate + label:before {\n  left: -10px;\n  top: -11px;\n  width: 10px;\n  height: 22px;\n  border-top: none;\n  border-left: none;\n  border-right: 2px solid #26a69a;\n  border-bottom: none;\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg);\n  -webkit-backface-visibility: hidden;\n          backface-visibility: hidden;\n  -webkit-transform-origin: 100% 100%;\n          transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"]:indeterminate:disabled + label:before {\n  border-right: 2px solid rgba(0, 0, 0, 0.26);\n  background-color: transparent;\n}\n\n[type=\"checkbox\"].filled-in + label:after {\n  border-radius: 2px;\n}\n\n[type=\"checkbox\"].filled-in + label:before,\n[type=\"checkbox\"].filled-in + label:after {\n  content: '';\n  left: 0;\n  position: absolute;\n  /* .1s delay is for check animation */\n  transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;\n  z-index: 1;\n}\n\n[type=\"checkbox\"].filled-in:not(:checked) + label:before {\n  width: 0;\n  height: 0;\n  border: 3px solid transparent;\n  left: 6px;\n  top: 10px;\n  -webkit-transform: rotateZ(37deg);\n  transform: rotateZ(37deg);\n  -webkit-transform-origin: 20% 40%;\n  transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"].filled-in:not(:checked) + label:after {\n  height: 20px;\n  width: 20px;\n  background-color: transparent;\n  border: 2px solid #5a5a5a;\n  top: 0px;\n  z-index: 0;\n}\n\n[type=\"checkbox\"].filled-in:checked + label:before {\n  top: 0;\n  left: 1px;\n  width: 8px;\n  height: 13px;\n  border-top: 2px solid transparent;\n  border-left: 2px solid transparent;\n  border-right: 2px solid #fff;\n  border-bottom: 2px solid #fff;\n  -webkit-transform: rotateZ(37deg);\n  transform: rotateZ(37deg);\n  -webkit-transform-origin: 100% 100%;\n  transform-origin: 100% 100%;\n}\n\n[type=\"checkbox\"].filled-in:checked + label:after {\n  top: 0px;\n  width: 20px;\n  height: 20px;\n  border: 2px solid #26a69a;\n  background-color: #26a69a;\n  z-index: 0;\n}\n\n[type=\"checkbox\"].filled-in:disabled:not(:checked) + label:before {\n  background-color: transparent;\n  border: 2px solid transparent;\n}\n\n[type=\"checkbox\"].filled-in:disabled:not(:checked) + label:after {\n  border-color: transparent;\n  background-color: #BDBDBD;\n}\n\n[type=\"checkbox\"].filled-in:disabled:checked + label:before {\n  background-color: transparent;\n}\n\n[type=\"checkbox\"].filled-in:disabled:checked + label:after {\n  background-color: #BDBDBD;\n  border-color: #BDBDBD;\n}\n\n/***************\n     Switch\n***************/\n.switch,\n.switch * {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -khtml-user-select: none;\n  -ms-user-select: none;\n}\n\n.switch label {\n  cursor: pointer;\n}\n\n.switch label input[type=checkbox] {\n  opacity: 0;\n  width: 0;\n  height: 0;\n}\n\n.switch label input[type=checkbox]:checked + .lever {\n  background-color: #84c7c1;\n}\n\n.switch label input[type=checkbox]:checked + .lever:after {\n  background-color: #26a69a;\n}\n\n.switch label .lever {\n  content: \"\";\n  display: inline-block;\n  position: relative;\n  width: 40px;\n  height: 15px;\n  background-color: #818181;\n  border-radius: 15px;\n  margin-right: 10px;\n  transition: background 0.3s ease;\n  vertical-align: middle;\n  margin: 0 16px;\n}\n\n.switch label .lever:after {\n  content: \"\";\n  position: absolute;\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  background-color: #F1F1F1;\n  border-radius: 21px;\n  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);\n  left: -5px;\n  top: -3px;\n  transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease;\n}\n\ninput[type=checkbox]:checked:not(:disabled) ~ .lever:active:after {\n  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1);\n}\n\ninput[type=checkbox]:not(:disabled) ~ .lever:active:after {\n  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08);\n}\n\n.switch label input[type=checkbox]:checked + .lever:after {\n  left: 24px;\n}\n\n.switch input[type=checkbox][disabled] + .lever {\n  cursor: default;\n}\n\n.switch label input[type=checkbox][disabled] + .lever:after,\n.switch label input[type=checkbox][disabled]:checked + .lever:after {\n  background-color: #BDBDBD;\n}\n\n/***************\n  Select Field\n***************/\n.select-label {\n  position: absolute;\n}\n\n.select-wrapper {\n  position: relative;\n}\n\n.select-wrapper input.select-dropdown {\n  position: relative;\n  cursor: pointer;\n  background-color: transparent;\n  border: none;\n  border-bottom: 1px solid #9e9e9e;\n  outline: none;\n  height: 3rem;\n  line-height: 3rem;\n  width: 100%;\n  font-size: 1rem;\n  margin: 0 0 15px 0;\n  padding: 0;\n  display: block;\n}\n\n.select-wrapper span.caret {\n  color: initial;\n  position: absolute;\n  right: 0;\n  top: 16px;\n  font-size: 10px;\n}\n\n.select-wrapper span.caret.disabled {\n  color: rgba(0, 0, 0, 0.26);\n}\n\n.select-wrapper + label {\n  position: absolute;\n  top: -14px;\n  font-size: 0.8rem;\n}\n\nselect {\n  display: none;\n}\n\nselect.browser-default {\n  display: block;\n}\n\nselect:disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.select-wrapper input.select-dropdown:disabled {\n  color: rgba(0, 0, 0, 0.3);\n  cursor: default;\n  -webkit-user-select: none;\n  /* webkit (safari, chrome) browsers */\n  -moz-user-select: none;\n  /* mozilla browsers */\n  -ms-user-select: none;\n  /* IE10+ */\n  border-bottom: 1px solid rgba(0, 0, 0, 0.3);\n}\n\n.select-wrapper i {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.select-dropdown li.disabled,\n.select-dropdown li.disabled > span,\n.select-dropdown li.optgroup {\n  color: rgba(0, 0, 0, 0.3);\n  background-color: transparent;\n}\n\n.select-dropdown li img {\n  height: 40px;\n  width: 40px;\n  margin: 5px 15px;\n  float: right;\n}\n\n.select-dropdown li.optgroup {\n  border-top: 1px solid #eee;\n}\n\n.select-dropdown li.optgroup.selected > span {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.select-dropdown li.optgroup > span {\n  color: rgba(0, 0, 0, 0.4);\n}\n\n.select-dropdown li.optgroup ~ li:not(.optgroup) {\n  padding-left: 1rem;\n}\n\n/*********************\n      File Input\n**********************/\n.file-field {\n  position: relative;\n}\n\n.file-field .file-path-wrapper {\n  overflow: hidden;\n  padding-left: 10px;\n}\n\n.file-field input.file-path {\n  width: 100%;\n}\n\n.file-field .btn, .file-field .btn-large {\n  float: left;\n  height: 3rem;\n  line-height: 3rem;\n}\n\n.file-field span {\n  cursor: pointer;\n}\n\n.file-field input[type=file] {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  bottom: 0;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n  font-size: 20px;\n  cursor: pointer;\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n\n/***************\n      Range\n***************/\n.range-field {\n  position: relative;\n}\n\ninput[type=range], input[type=range] + .thumb {\n  cursor: pointer;\n}\n\ninput[type=range] {\n  position: relative;\n  background-color: transparent;\n  border: none;\n  outline: none;\n  width: 100%;\n  margin: 15px 0px;\n  padding: 0;\n}\n\ninput[type=range] + .thumb {\n  position: absolute;\n  border: none;\n  height: 0;\n  width: 0;\n  border-radius: 50%;\n  background-color: #26a69a;\n  top: 10px;\n  margin-left: -6px;\n  -webkit-transform-origin: 50% 50%;\n          transform-origin: 50% 50%;\n  -webkit-transform: rotate(-45deg);\n          transform: rotate(-45deg);\n}\n\ninput[type=range] + .thumb .value {\n  display: block;\n  width: 30px;\n  text-align: center;\n  color: #26a69a;\n  font-size: 0;\n  -webkit-transform: rotate(45deg);\n          transform: rotate(45deg);\n}\n\ninput[type=range] + .thumb.active {\n  border-radius: 50% 50% 50% 0;\n}\n\ninput[type=range] + .thumb.active .value {\n  color: #fff;\n  margin-left: -1px;\n  margin-top: 8px;\n  font-size: 10px;\n}\n\ninput[type=range]:focus {\n  outline: none;\n}\n\ninput[type=range] {\n  -webkit-appearance: none;\n}\n\ninput[type=range]::-webkit-slider-runnable-track {\n  height: 3px;\n  background: #c2c0c2;\n  border: none;\n}\n\ninput[type=range]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  border: none;\n  height: 14px;\n  width: 14px;\n  border-radius: 50%;\n  background-color: #26a69a;\n  -webkit-transform-origin: 50% 50%;\n          transform-origin: 50% 50%;\n  margin: -5px 0 0 0;\n  transition: .3s;\n}\n\ninput[type=range]:focus::-webkit-slider-runnable-track {\n  background: #ccc;\n}\n\ninput[type=range] {\n  /* fix for FF unable to apply focus style bug  */\n  border: 1px solid white;\n  /*required for proper track sizing in FF*/\n}\n\ninput[type=range]::-moz-range-track {\n  height: 3px;\n  background: #ddd;\n  border: none;\n}\n\ninput[type=range]::-moz-range-thumb {\n  border: none;\n  height: 14px;\n  width: 14px;\n  border-radius: 50%;\n  background: #26a69a;\n  margin-top: -5px;\n}\n\n/*hide the outline behind the border*/\ninput[type=range]:-moz-focusring {\n  outline: 1px solid white;\n  outline-offset: -1px;\n}\n\ninput[type=range]:focus::-moz-range-track {\n  background: #ccc;\n}\n\ninput[type=range]::-ms-track {\n  height: 3px;\n  /*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */\n  background: transparent;\n  /*leave room for the larger thumb to overflow with a transparent border */\n  border-color: transparent;\n  border-width: 6px 0;\n  /*remove default tick marks*/\n  color: transparent;\n}\n\ninput[type=range]::-ms-fill-lower {\n  background: #777;\n}\n\ninput[type=range]::-ms-fill-upper {\n  background: #ddd;\n}\n\ninput[type=range]::-ms-thumb {\n  border: none;\n  height: 14px;\n  width: 14px;\n  border-radius: 50%;\n  background: #26a69a;\n}\n\ninput[type=range]:focus::-ms-fill-lower {\n  background: #888;\n}\n\ninput[type=range]:focus::-ms-fill-upper {\n  background: #ccc;\n}\n\n/***************************\n   Text Inputs + Textarea\n****************************/\nselect {\n  background-color: rgba(255, 255, 255, 0.9);\n  width: 100%;\n  padding: 5px;\n  border: 1px solid #f2f2f2;\n  border-radius: 2px;\n  height: 3rem;\n}\n\n/***************\n    Nav List\n***************/\n.table-of-contents.fixed {\n  position: fixed;\n}\n\n.table-of-contents li {\n  padding: 2px 0;\n}\n\n.table-of-contents a {\n  display: inline-block;\n  font-weight: 300;\n  color: #757575;\n  padding-left: 20px;\n  height: 1.5rem;\n  line-height: 1.5rem;\n  letter-spacing: .4;\n  display: inline-block;\n}\n\n.table-of-contents a:hover {\n  color: #a8a8a8;\n  padding-left: 19px;\n  border-left: 1px solid #ea4a4f;\n}\n\n.table-of-contents a.active {\n  font-weight: 500;\n  padding-left: 18px;\n  border-left: 2px solid #ea4a4f;\n}\n\n.side-nav {\n  position: fixed;\n  width: 240px;\n  left: -105%;\n  top: 0;\n  margin: 0;\n  height: 100%;\n  height: calc(100% + 60px);\n  height: -moz-calc(100%);\n  padding-bottom: 60px;\n  background-color: #fff;\n  z-index: 999;\n  overflow-y: auto;\n  will-change: left;\n}\n\n.side-nav.right-aligned {\n  will-change: right;\n  right: -105%;\n  left: auto;\n}\n\n.side-nav .collapsible {\n  margin: 0;\n}\n\n.side-nav li {\n  float: none;\n  padding: 0 15px;\n  line-height: 64px;\n}\n\n.side-nav li:hover, .side-nav li.active {\n  background-color: #ddd;\n}\n\n.side-nav a {\n  color: #444;\n  display: block;\n  font-size: 1rem;\n  height: 64px;\n  line-height: 64px;\n  padding: 0 15px;\n}\n\n.drag-target {\n  height: 100%;\n  width: 10px;\n  position: fixed;\n  top: 0;\n  z-index: 998;\n}\n\n.side-nav.fixed a {\n  display: block;\n  padding: 0 15px;\n  color: #444;\n}\n\n.side-nav.fixed {\n  left: 0;\n  position: fixed;\n}\n\n.side-nav.fixed.right-aligned {\n  right: 0;\n  left: auto;\n}\n\n@media only screen and (max-width: 992px) {\n  .side-nav.fixed {\n    left: -105%;\n  }\n  .side-nav.fixed.right-aligned {\n    right: -105%;\n    left: auto;\n  }\n}\n\n.side-nav .collapsible-body li.active,\n.side-nav.fixed .collapsible-body li.active {\n  background-color: #ee6e73;\n}\n\n.side-nav .collapsible-body li.active a,\n.side-nav.fixed .collapsible-body li.active a {\n  color: #fff;\n}\n\n#sidenav-overlay {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  height: 120vh;\n  background-color: rgba(0, 0, 0, 0.5);\n  z-index: 997;\n  will-change: opacity;\n}\n\n/*\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n    Code distributed by Google as part of the polymer project is also\n    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n/**************************/\n/* STYLES FOR THE SPINNER */\n/**************************/\n/*\n * Constants:\n *      STROKEWIDTH = 3px\n *      ARCSIZE     = 270 degrees (amount of circle the arc takes up)\n *      ARCTIME     = 1333ms (time it takes to expand and contract arc)\n *      ARCSTARTROT = 216 degrees (how much the start location of the arc\n *                                should rotate each time, 216 gives us a\n *                                5 pointed star shape (it's 360/5 * 3).\n *                                For a 7 pointed star, we might do\n *                                360/7 * 3 = 154.286)\n *      CONTAINERWIDTH = 28px\n *      SHRINK_TIME = 400ms\n */\n.preloader-wrapper {\n  display: inline-block;\n  position: relative;\n  width: 48px;\n  height: 48px;\n}\n\n.preloader-wrapper.small {\n  width: 36px;\n  height: 36px;\n}\n\n.preloader-wrapper.big {\n  width: 64px;\n  height: 64px;\n}\n\n.preloader-wrapper.active {\n  /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */\n  -webkit-animation: container-rotate 1568ms linear infinite;\n  animation: container-rotate 1568ms linear infinite;\n}\n\n@-webkit-keyframes container-rotate {\n  to {\n    -webkit-transform: rotate(360deg);\n  }\n}\n\n@keyframes container-rotate {\n  to {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg);\n  }\n}\n\n.spinner-layer {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  opacity: 0;\n  border-color: #26a69a;\n}\n\n.spinner-blue,\n.spinner-blue-only {\n  border-color: #4285f4;\n}\n\n.spinner-red,\n.spinner-red-only {\n  border-color: #db4437;\n}\n\n.spinner-yellow,\n.spinner-yellow-only {\n  border-color: #f4b400;\n}\n\n.spinner-green,\n.spinner-green-only {\n  border-color: #0f9d58;\n}\n\n/**\n * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):\n *\n * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't\n * guarantee that the animation will start _exactly_ after that value. So we avoid using\n * animation-delay and instead set custom keyframes for each color (as redundant as it\n * seems).\n *\n * We write out each animation in full (instead of separating animation-name,\n * animation-duration, etc.) because under the polyfill, Safari does not recognize those\n * specific properties properly, treats them as -webkit-animation, and overrides the\n * other animation rules. See https://github.com/Polymer/platform/issues/53.\n */\n.active .spinner-layer.spinner-blue {\n  /* durations: 4 * ARCTIME */\n  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-red {\n  /* durations: 4 * ARCTIME */\n  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-yellow {\n  /* durations: 4 * ARCTIME */\n  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer.spinner-green {\n  /* durations: 4 * ARCTIME */\n  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .spinner-layer,\n.active .spinner-layer.spinner-blue-only,\n.active .spinner-layer.spinner-red-only,\n.active .spinner-layer.spinner-yellow-only,\n.active .spinner-layer.spinner-green-only {\n  /* durations: 4 * ARCTIME */\n  opacity: 1;\n  -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes fill-unfill-rotate {\n  12.5% {\n    -webkit-transform: rotate(135deg);\n  }\n  /* 0.5 * ARCSIZE */\n  25% {\n    -webkit-transform: rotate(270deg);\n  }\n  /* 1   * ARCSIZE */\n  37.5% {\n    -webkit-transform: rotate(405deg);\n  }\n  /* 1.5 * ARCSIZE */\n  50% {\n    -webkit-transform: rotate(540deg);\n  }\n  /* 2   * ARCSIZE */\n  62.5% {\n    -webkit-transform: rotate(675deg);\n  }\n  /* 2.5 * ARCSIZE */\n  75% {\n    -webkit-transform: rotate(810deg);\n  }\n  /* 3   * ARCSIZE */\n  87.5% {\n    -webkit-transform: rotate(945deg);\n  }\n  /* 3.5 * ARCSIZE */\n  to {\n    -webkit-transform: rotate(1080deg);\n  }\n  /* 4   * ARCSIZE */\n}\n\n@keyframes fill-unfill-rotate {\n  12.5% {\n    -webkit-transform: rotate(135deg);\n            transform: rotate(135deg);\n  }\n  /* 0.5 * ARCSIZE */\n  25% {\n    -webkit-transform: rotate(270deg);\n            transform: rotate(270deg);\n  }\n  /* 1   * ARCSIZE */\n  37.5% {\n    -webkit-transform: rotate(405deg);\n            transform: rotate(405deg);\n  }\n  /* 1.5 * ARCSIZE */\n  50% {\n    -webkit-transform: rotate(540deg);\n            transform: rotate(540deg);\n  }\n  /* 2   * ARCSIZE */\n  62.5% {\n    -webkit-transform: rotate(675deg);\n            transform: rotate(675deg);\n  }\n  /* 2.5 * ARCSIZE */\n  75% {\n    -webkit-transform: rotate(810deg);\n            transform: rotate(810deg);\n  }\n  /* 3   * ARCSIZE */\n  87.5% {\n    -webkit-transform: rotate(945deg);\n            transform: rotate(945deg);\n  }\n  /* 3.5 * ARCSIZE */\n  to {\n    -webkit-transform: rotate(1080deg);\n            transform: rotate(1080deg);\n  }\n  /* 4   * ARCSIZE */\n}\n\n@-webkit-keyframes blue-fade-in-out {\n  from {\n    opacity: 1;\n  }\n  25% {\n    opacity: 1;\n  }\n  26% {\n    opacity: 0;\n  }\n  89% {\n    opacity: 0;\n  }\n  90% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 1;\n  }\n}\n\n@keyframes blue-fade-in-out {\n  from {\n    opacity: 1;\n  }\n  25% {\n    opacity: 1;\n  }\n  26% {\n    opacity: 0;\n  }\n  89% {\n    opacity: 0;\n  }\n  90% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes red-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  15% {\n    opacity: 0;\n  }\n  25% {\n    opacity: 1;\n  }\n  50% {\n    opacity: 1;\n  }\n  51% {\n    opacity: 0;\n  }\n}\n\n@keyframes red-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  15% {\n    opacity: 0;\n  }\n  25% {\n    opacity: 1;\n  }\n  50% {\n    opacity: 1;\n  }\n  51% {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes yellow-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  40% {\n    opacity: 0;\n  }\n  50% {\n    opacity: 1;\n  }\n  75% {\n    opacity: 1;\n  }\n  76% {\n    opacity: 0;\n  }\n}\n\n@keyframes yellow-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  40% {\n    opacity: 0;\n  }\n  50% {\n    opacity: 1;\n  }\n  75% {\n    opacity: 1;\n  }\n  76% {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes green-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  65% {\n    opacity: 0;\n  }\n  75% {\n    opacity: 1;\n  }\n  90% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n  }\n}\n\n@keyframes green-fade-in-out {\n  from {\n    opacity: 0;\n  }\n  65% {\n    opacity: 0;\n  }\n  75% {\n    opacity: 1;\n  }\n  90% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n  }\n}\n\n/**\n * Patch the gap that appear between the two adjacent div.circle-clipper while the\n * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).\n */\n.gap-patch {\n  position: absolute;\n  top: 0;\n  left: 45%;\n  width: 10%;\n  height: 100%;\n  overflow: hidden;\n  border-color: inherit;\n}\n\n.gap-patch .circle {\n  width: 1000%;\n  left: -450%;\n}\n\n.circle-clipper {\n  display: inline-block;\n  position: relative;\n  width: 50%;\n  height: 100%;\n  overflow: hidden;\n  border-color: inherit;\n}\n\n.circle-clipper .circle {\n  width: 200%;\n  height: 100%;\n  border-width: 3px;\n  /* STROKEWIDTH */\n  border-style: solid;\n  border-color: inherit;\n  border-bottom-color: transparent !important;\n  border-radius: 50%;\n  -webkit-animation: none;\n  animation: none;\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.circle-clipper.left .circle {\n  left: 0;\n  border-right-color: transparent !important;\n  -webkit-transform: rotate(129deg);\n  transform: rotate(129deg);\n}\n\n.circle-clipper.right .circle {\n  left: -100%;\n  border-left-color: transparent !important;\n  -webkit-transform: rotate(-129deg);\n  transform: rotate(-129deg);\n}\n\n.active .circle-clipper.left .circle {\n  /* duration: ARCTIME */\n  -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n.active .circle-clipper.right .circle {\n  /* duration: ARCTIME */\n  -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n  animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n\n@-webkit-keyframes left-spin {\n  from {\n    -webkit-transform: rotate(130deg);\n  }\n  50% {\n    -webkit-transform: rotate(-5deg);\n  }\n  to {\n    -webkit-transform: rotate(130deg);\n  }\n}\n\n@keyframes left-spin {\n  from {\n    -webkit-transform: rotate(130deg);\n            transform: rotate(130deg);\n  }\n  50% {\n    -webkit-transform: rotate(-5deg);\n            transform: rotate(-5deg);\n  }\n  to {\n    -webkit-transform: rotate(130deg);\n            transform: rotate(130deg);\n  }\n}\n\n@-webkit-keyframes right-spin {\n  from {\n    -webkit-transform: rotate(-130deg);\n  }\n  50% {\n    -webkit-transform: rotate(5deg);\n  }\n  to {\n    -webkit-transform: rotate(-130deg);\n  }\n}\n\n@keyframes right-spin {\n  from {\n    -webkit-transform: rotate(-130deg);\n            transform: rotate(-130deg);\n  }\n  50% {\n    -webkit-transform: rotate(5deg);\n            transform: rotate(5deg);\n  }\n  to {\n    -webkit-transform: rotate(-130deg);\n            transform: rotate(-130deg);\n  }\n}\n\n#spinnerContainer.cooldown {\n  /* duration: SHRINK_TIME */\n  -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n  animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@-webkit-keyframes fade-out {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fade-out {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n.slider {\n  position: relative;\n  height: 400px;\n  width: 100%;\n}\n\n.slider.fullscreen {\n  height: 100%;\n  width: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.slider.fullscreen ul.slides {\n  height: 100%;\n}\n\n.slider.fullscreen ul.indicators {\n  z-index: 2;\n  bottom: 30px;\n}\n\n.slider .slides {\n  background-color: #9e9e9e;\n  margin: 0;\n  height: 400px;\n}\n\n.slider .slides li {\n  opacity: 0;\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1;\n  width: 100%;\n  height: inherit;\n  overflow: hidden;\n}\n\n.slider .slides li img {\n  height: 100%;\n  width: 100%;\n  background-size: cover;\n  background-position: center;\n}\n\n.slider .slides li .caption {\n  color: #fff;\n  position: absolute;\n  top: 15%;\n  left: 15%;\n  width: 70%;\n  opacity: 0;\n}\n\n.slider .slides li .caption p {\n  color: #e0e0e0;\n}\n\n.slider .slides li.active {\n  z-index: 2;\n}\n\n.slider .indicators {\n  position: absolute;\n  text-align: center;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  margin: 0;\n}\n\n.slider .indicators .indicator-item {\n  display: inline-block;\n  position: relative;\n  cursor: pointer;\n  height: 16px;\n  width: 16px;\n  margin: 0 12px;\n  background-color: #e0e0e0;\n  transition: background-color .3s;\n  border-radius: 50%;\n}\n\n.slider .indicators .indicator-item.active {\n  background-color: #4CAF50;\n}\n\n.carousel {\n  overflow: hidden;\n  position: relative;\n  width: 100%;\n  height: 400px;\n  -webkit-perspective: 500px;\n          perspective: 500px;\n  -webkit-transform-style: preserve-3d;\n          transform-style: preserve-3d;\n  -webkit-transform-origin: 0% 50%;\n          transform-origin: 0% 50%;\n}\n\n.carousel .carousel-item {\n  width: 200px;\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\n.carousel .carousel-item img {\n  width: 100%;\n}\n\n.carousel.carousel-slider {\n  top: 0;\n  left: 0;\n  height: 0;\n}\n\n.carousel.carousel-slider .carousel-item {\n  width: 100%;\n  height: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\n/* ==========================================================================\n   $BASE-PICKER\n   ========================================================================== */\n/**\n * Note: the root picker element should *NOT* be styled more than what's here.\n */\n.picker {\n  font-size: 16px;\n  text-align: left;\n  line-height: 1.2;\n  color: #000000;\n  position: absolute;\n  z-index: 10000;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n/**\n * The picker input element.\n */\n.picker__input {\n  cursor: default;\n}\n\n/**\n * When the picker is opened, the input element is \"activated\".\n */\n.picker__input.picker__input--active {\n  border-color: #0089ec;\n}\n\n/**\n * The holder is the only \"scrollable\" top-level container element.\n */\n.picker__holder {\n  width: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/*!\n * Default mobile-first, responsive styling for pickadate.js\n * Demo: http://amsul.github.io/pickadate.js\n */\n/**\n * Note: the root picker element should *NOT* be styled more than what's here.\n */\n/**\n * Make the holder and frame fullscreen.\n */\n.picker__holder,\n.picker__frame {\n  bottom: 0;\n  left: 0;\n  right: 0;\n  top: 100%;\n}\n\n/**\n * The holder should overlay the entire screen.\n */\n.picker__holder {\n  position: fixed;\n  transition: background 0.15s ease-out, top 0s 0.15s;\n  -webkit-backface-visibility: hidden;\n}\n\n/**\n * The frame that bounds the box contents of the picker.\n */\n.picker__frame {\n  position: absolute;\n  margin: 0 auto;\n  min-width: 256px;\n  width: 300px;\n  max-height: 350px;\n  -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";\n  filter: alpha(opacity=0);\n  -moz-opacity: 0;\n  opacity: 0;\n  transition: all 0.15s ease-out;\n}\n\n@media (min-height: 28.875em) {\n  .picker__frame {\n    overflow: visible;\n    top: auto;\n    bottom: -100%;\n    max-height: 80%;\n  }\n}\n\n@media (min-height: 40.125em) {\n  .picker__frame {\n    margin-bottom: 7.5%;\n  }\n}\n\n/**\n * The wrapper sets the stage to vertically align the box contents.\n */\n.picker__wrap {\n  display: table;\n  width: 100%;\n  height: 100%;\n}\n\n@media (min-height: 28.875em) {\n  .picker__wrap {\n    display: block;\n  }\n}\n\n/**\n * The box contains all the picker contents.\n */\n.picker__box {\n  background: #ffffff;\n  display: table-cell;\n  vertical-align: middle;\n}\n\n@media (min-height: 28.875em) {\n  .picker__box {\n    display: block;\n    border: 1px solid #777777;\n    border-top-color: #898989;\n    border-bottom-width: 0;\n    border-radius: 5px 5px 0 0;\n    box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);\n  }\n}\n\n/**\n * When the picker opens...\n */\n.picker--opened .picker__holder {\n  top: 0;\n  background: transparent;\n  -ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)\";\n  zoom: 1;\n  background: rgba(0, 0, 0, 0.32);\n  transition: background 0.15s ease-out;\n}\n\n.picker--opened .picker__frame {\n  top: 0;\n  -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)\";\n  filter: alpha(opacity=100);\n  -moz-opacity: 1;\n  opacity: 1;\n}\n\n@media (min-height: 35.875em) {\n  .picker--opened .picker__frame {\n    top: 10%;\n    bottom: 20%auto;\n  }\n}\n\n/**\n * For `large` screens, transform into an inline picker.\n */\n/* ==========================================================================\n   CUSTOM MATERIALIZE STYLES\n   ========================================================================== */\n.picker__input.picker__input--active {\n  border-color: #E3F2FD;\n}\n\n.picker__frame {\n  margin: 0 auto;\n  max-width: 325px;\n}\n\n@media (min-height: 38.875em) {\n  .picker--opened .picker__frame {\n    top: 10%;\n    bottom: auto;\n  }\n}\n\n/* ==========================================================================\n   $BASE-DATE-PICKER\n   ========================================================================== */\n/**\n * The picker box.\n */\n.picker__box {\n  padding: 0 1em;\n}\n\n/**\n * The header containing the month and year stuff.\n */\n.picker__header {\n  text-align: center;\n  position: relative;\n  margin-top: .75em;\n}\n\n/**\n * The month and year labels.\n */\n.picker__month,\n.picker__year {\n  display: inline-block;\n  margin-left: .25em;\n  margin-right: .25em;\n}\n\n/**\n * The month and year selectors.\n */\n.picker__select--month,\n.picker__select--year {\n  height: 2em;\n  padding: 0;\n  margin-left: .25em;\n  margin-right: .25em;\n}\n\n.picker__select--month.browser-default {\n  display: inline;\n  background-color: #FFFFFF;\n  width: 40%;\n}\n\n.picker__select--year.browser-default {\n  display: inline;\n  background-color: #FFFFFF;\n  width: 25%;\n}\n\n.picker__select--month:focus,\n.picker__select--year:focus {\n  border-color: rgba(0, 0, 0, 0.05);\n}\n\n/**\n * The month navigation buttons.\n */\n.picker__nav--prev,\n.picker__nav--next {\n  position: absolute;\n  padding: .5em 1.25em;\n  width: 1em;\n  height: 1em;\n  box-sizing: content-box;\n  top: -0.25em;\n}\n\n.picker__nav--prev {\n  left: -1em;\n  padding-right: 1.25em;\n}\n\n.picker__nav--next {\n  right: -1em;\n  padding-left: 1.25em;\n}\n\n.picker__nav--disabled,\n.picker__nav--disabled:hover,\n.picker__nav--disabled:before,\n.picker__nav--disabled:before:hover {\n  cursor: default;\n  background: none;\n  border-right-color: #f5f5f5;\n  border-left-color: #f5f5f5;\n}\n\n/**\n * The calendar table of dates\n */\n.picker__table {\n  text-align: center;\n  border-collapse: collapse;\n  border-spacing: 0;\n  table-layout: fixed;\n  font-size: 1rem;\n  width: 100%;\n  margin-top: .75em;\n  margin-bottom: .5em;\n}\n\n.picker__table th, .picker__table td {\n  text-align: center;\n}\n\n.picker__table td {\n  margin: 0;\n  padding: 0;\n}\n\n/**\n * The weekday labels\n */\n.picker__weekday {\n  width: 14.285714286%;\n  font-size: .75em;\n  padding-bottom: .25em;\n  color: #999999;\n  font-weight: 500;\n  /* Increase the spacing a tad */\n}\n\n@media (min-height: 33.875em) {\n  .picker__weekday {\n    padding-bottom: .5em;\n  }\n}\n\n/**\n * The days on the calendar\n */\n.picker__day--today {\n  position: relative;\n  color: #595959;\n  letter-spacing: -.3;\n  padding: .75rem 0;\n  font-weight: 400;\n  border: 1px solid transparent;\n}\n\n.picker__day--disabled:before {\n  border-top-color: #aaaaaa;\n}\n\n.picker__day--infocus:hover {\n  cursor: pointer;\n  color: #000;\n  font-weight: 500;\n}\n\n.picker__day--outfocus {\n  display: none;\n  padding: .75rem 0;\n  color: #fff;\n}\n\n.picker__day--outfocus:hover {\n  cursor: pointer;\n  color: #dddddd;\n  font-weight: 500;\n}\n\n.picker__day--highlighted:hover,\n.picker--focused .picker__day--highlighted {\n  cursor: pointer;\n}\n\n.picker__day--selected,\n.picker__day--selected:hover,\n.picker--focused .picker__day--selected {\n  border-radius: 50%;\n  -webkit-transform: scale(0.75);\n          transform: scale(0.75);\n  background: #0089ec;\n  color: #ffffff;\n}\n\n.picker__day--disabled,\n.picker__day--disabled:hover,\n.picker--focused .picker__day--disabled {\n  background: #f5f5f5;\n  border-color: #f5f5f5;\n  color: #dddddd;\n  cursor: default;\n}\n\n.picker__day--highlighted.picker__day--disabled,\n.picker__day--highlighted.picker__day--disabled:hover {\n  background: #bbbbbb;\n}\n\n/**\n * The footer containing the \"today\", \"clear\", and \"close\" buttons.\n */\n.picker__footer {\n  text-align: center;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n      -ms-flex-align: center;\n          align-items: center;\n  -webkit-justify-content: space-between;\n      -ms-flex-pack: justify;\n          justify-content: space-between;\n}\n\n.picker__button--today,\n.picker__button--clear,\n.picker__button--close {\n  border: 1px solid #ffffff;\n  background: #ffffff;\n  font-size: .8em;\n  padding: .66em 0;\n  font-weight: bold;\n  width: 33%;\n  display: inline-block;\n  vertical-align: bottom;\n}\n\n.picker__button--today:hover,\n.picker__button--clear:hover,\n.picker__button--close:hover {\n  cursor: pointer;\n  color: #000000;\n  background: #b1dcfb;\n  border-bottom-color: #b1dcfb;\n}\n\n.picker__button--today:focus,\n.picker__button--clear:focus,\n.picker__button--close:focus {\n  background: #b1dcfb;\n  border-color: rgba(0, 0, 0, 0.05);\n  outline: none;\n}\n\n.picker__button--today:before,\n.picker__button--clear:before,\n.picker__button--close:before {\n  position: relative;\n  display: inline-block;\n  height: 0;\n}\n\n.picker__button--today:before,\n.picker__button--clear:before {\n  content: \" \";\n  margin-right: .45em;\n}\n\n.picker__button--today:before {\n  top: -0.05em;\n  width: 0;\n  border-top: 0.66em solid #0059bc;\n  border-left: .66em solid transparent;\n}\n\n.picker__button--clear:before {\n  top: -0.25em;\n  width: .66em;\n  border-top: 3px solid #ee2200;\n}\n\n.picker__button--close:before {\n  content: \"\\D7\";\n  top: -0.1em;\n  vertical-align: top;\n  font-size: 1.1em;\n  margin-right: .35em;\n  color: #777777;\n}\n\n.picker__button--today[disabled],\n.picker__button--today[disabled]:hover {\n  background: #f5f5f5;\n  border-color: #f5f5f5;\n  color: #dddddd;\n  cursor: default;\n}\n\n.picker__button--today[disabled]:before {\n  border-top-color: #aaaaaa;\n}\n\n/* ==========================================================================\n   CUSTOM MATERIALIZE STYLES\n   ========================================================================== */\n.picker__box {\n  border-radius: 2px;\n  overflow: hidden;\n}\n\n.picker__date-display {\n  text-align: center;\n  background-color: #26a69a;\n  color: #fff;\n  padding-bottom: 15px;\n  font-weight: 300;\n}\n\n.picker__nav--prev:hover,\n.picker__nav--next:hover {\n  cursor: pointer;\n  color: #000000;\n  background: #a1ded8;\n}\n\n.picker__weekday-display {\n  background-color: #1f897f;\n  padding: 10px;\n  font-weight: 200;\n  letter-spacing: .5;\n  font-size: 1rem;\n  margin-bottom: 15px;\n}\n\n.picker__month-display {\n  text-transform: uppercase;\n  font-size: 2rem;\n}\n\n.picker__day-display {\n  font-size: 4.5rem;\n  font-weight: 400;\n}\n\n.picker__year-display {\n  font-size: 1.8rem;\n  color: rgba(255, 255, 255, 0.4);\n}\n\n.picker__box {\n  padding: 0;\n}\n\n.picker__calendar-container {\n  padding: 0 1rem;\n}\n\n.picker__calendar-container thead {\n  border: none;\n}\n\n.picker__table {\n  margin-top: 0;\n  margin-bottom: .5em;\n}\n\n.picker__day--infocus {\n  color: #595959;\n  letter-spacing: -.3;\n  padding: .75rem 0;\n  font-weight: 400;\n  border: 1px solid transparent;\n}\n\n.picker__day.picker__day--today {\n  color: #26a69a;\n}\n\n.picker__day.picker__day--today.picker__day--selected {\n  color: #fff;\n}\n\n.picker__weekday {\n  font-size: .9rem;\n}\n\n.picker__day--selected,\n.picker__day--selected:hover,\n.picker--focused .picker__day--selected {\n  border-radius: 50%;\n  -webkit-transform: scale(0.9);\n          transform: scale(0.9);\n  background-color: #26a69a;\n  color: #ffffff;\n}\n\n.picker__day--selected.picker__day--outfocus,\n.picker__day--selected:hover.picker__day--outfocus,\n.picker--focused .picker__day--selected.picker__day--outfocus {\n  background-color: #a1ded8;\n}\n\n.picker__footer {\n  text-align: right;\n  padding: 5px 10px;\n}\n\n.picker__close, .picker__today {\n  font-size: 1.1rem;\n  padding: 0 1rem;\n  color: #26a69a;\n}\n\n.picker__nav--prev:before,\n.picker__nav--next:before {\n  content: \" \";\n  border-top: .5em solid transparent;\n  border-bottom: .5em solid transparent;\n  border-right: 0.75em solid #676767;\n  width: 0;\n  height: 0;\n  display: block;\n  margin: 0 auto;\n}\n\n.picker__nav--next:before {\n  border-right: 0;\n  border-left: 0.75em solid #676767;\n}\n\nbutton.picker__today:focus, button.picker__clear:focus, button.picker__close:focus {\n  background-color: #a1ded8;\n}\n\n/* ==========================================================================\n   $BASE-TIME-PICKER\n   ========================================================================== */\n/**\n * The list of times.\n */\n.picker__list {\n  list-style: none;\n  padding: 0.75em 0 4.2em;\n  margin: 0;\n}\n\n/**\n * The times on the clock.\n */\n.picker__list-item {\n  border-bottom: 1px solid #dddddd;\n  border-top: 1px solid #dddddd;\n  margin-bottom: -1px;\n  position: relative;\n  background: #ffffff;\n  padding: .75em 1.25em;\n}\n\n@media (min-height: 46.75em) {\n  .picker__list-item {\n    padding: .5em 1em;\n  }\n}\n\n/* Hovered time */\n.picker__list-item:hover {\n  cursor: pointer;\n  color: #000000;\n  background: #b1dcfb;\n  border-color: #0089ec;\n  z-index: 10;\n}\n\n/* Highlighted and hovered/focused time */\n.picker__list-item--highlighted {\n  border-color: #0089ec;\n  z-index: 10;\n}\n\n.picker__list-item--highlighted:hover,\n.picker--focused .picker__list-item--highlighted {\n  cursor: pointer;\n  color: #000000;\n  background: #b1dcfb;\n}\n\n/* Selected and hovered/focused time */\n.picker__list-item--selected,\n.picker__list-item--selected:hover,\n.picker--focused .picker__list-item--selected {\n  background: #0089ec;\n  color: #ffffff;\n  z-index: 10;\n}\n\n/* Disabled time */\n.picker__list-item--disabled,\n.picker__list-item--disabled:hover,\n.picker--focused .picker__list-item--disabled {\n  background: #f5f5f5;\n  border-color: #f5f5f5;\n  color: #dddddd;\n  cursor: default;\n  border-color: #dddddd;\n  z-index: auto;\n}\n\n/**\n * The clear button\n */\n.picker--time .picker__button--clear {\n  display: block;\n  width: 80%;\n  margin: 1em auto 0;\n  padding: 1em 1.25em;\n  background: none;\n  border: 0;\n  font-weight: 500;\n  font-size: .67em;\n  text-align: center;\n  text-transform: uppercase;\n  color: #666;\n}\n\n.picker--time .picker__button--clear:hover,\n.picker--time .picker__button--clear:focus {\n  color: #000000;\n  background: #b1dcfb;\n  background: #ee2200;\n  border-color: #ee2200;\n  cursor: pointer;\n  color: #ffffff;\n  outline: none;\n}\n\n.picker--time .picker__button--clear:before {\n  top: -0.25em;\n  color: #666;\n  font-size: 1.25em;\n  font-weight: bold;\n}\n\n.picker--time .picker__button--clear:hover:before,\n.picker--time .picker__button--clear:focus:before {\n  color: #ffffff;\n}\n\n/* ==========================================================================\n   $DEFAULT-TIME-PICKER\n   ========================================================================== */\n/**\n * The frame the bounds the time picker.\n */\n.picker--time .picker__frame {\n  min-width: 256px;\n  max-width: 320px;\n}\n\n/**\n * The picker box.\n */\n.picker--time .picker__box {\n  font-size: 1em;\n  background: #f2f2f2;\n  padding: 0;\n}\n\n@media (min-height: 40.125em) {\n  .picker--time .picker__box {\n    margin-bottom: 5em;\n  }\n}\n","[data-badge^=\"1\"]:after,\n[data-badge^=\"2\"]:after,\n[data-badge^=\"3\"]:after,\n[data-badge^=\"4\"]:after,\n[data-badge^=\"5\"]:after,\n[data-badge^=\"6\"]:after,\n[data-badge^=\"7\"]:after,\n[data-badge^=\"8\"]:after,\n[data-badge^=\"9\"]:after {\n  content: attr(data-badge);\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-content: center;\n  -ms-flex-line-pack: center;\n  align-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  position: absolute;\n  top: 3px;\n  right: 3px;\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-weight: 600;\n  font-size: 12px;\n  width: 19px;\n  height: 19px;\n  border-radius: 50%;\n  background: #ff8532;\n  color: #fff;\n}\n#about [data-badge^=\"1\"]:after,\n#about [data-badge^=\"2\"]:after,\n#about [data-badge^=\"3\"]:after,\n#about [data-badge^=\"4\"]:after,\n#about [data-badge^=\"5\"]:after,\n#about [data-badge^=\"6\"]:after,\n#about [data-badge^=\"7\"]:after,\n#about [data-badge^=\"8\"]:after,\n#about [data-badge^=\"9\"]:after {\n  content: attr(data-badge);\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-content: center;\n  -ms-flex-line-pack: center;\n  align-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  position: absolute;\n  top: 15px;\n  right: 20px;\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-weight: 600;\n  font-size: 12px;\n  width: 19px;\n  height: 19px;\n  border-radius: 50%;\n  background: #ff8532;\n  color: #fff;\n}\n","nav li .fa {\n  display: block;\n}\n#slide-out .fa {\n  padding-left: 0.5rem;\n  line-height: 64px;\n}\n@media screen and (max-width: 400px) {\n  nav li .fa {\n    line-height: 56px;\n  }\n}\n",".mdi-navigation-menu {\n  padding-left: 0.5rem;\n}\n#slide-out .card {\n  margin: 0;\n}\n#slide-out .card img {\n  height: 140px;\n}\n#slide-out .card-title {\n  left: 0;\n  top: -25px;\n  width: 100%;\n  height: 100%;\n}\n#slide-out .card-title span {\n  display: block;\n  line-height: 30px;\n}\n#slide-out .card-title .menu-title {\n  font-weight: bold;\n}\n#slide-out .card-title .menu-speach {\n  font-size: 1rem;\n  line-height: 20px;\n}\n#slide-out .card-title .menu-footer {\n  font-size: 1rem;\n  line-height: 20px;\n  position: relative;\n  bottom: -45px;\n  left: 145px;\n}\n#slide-out i {\n  color: #1a687f;\n  width: 5rem;\n  float: left;\n}\n#slide-out a {\n  padding-left: 7px;\n  font-size: 1.5rem;\n}\n.side-nav.side-nav-icons {\n  width: 5rem;\n  z-index: 1000;\n  box-shadow: none;\n}\n#slide-out li {\n  padding: 0;\n}\nul#slide-out li:hover {\n  background-color: #f0f0f0;\n}\n@media screen and (max-width: 400px) {\n  #slide-out {\n    width: 20rem;\n    background-color: #fff;\n    max-width: 95%;\n    -webkit-transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  }\n}\n@media screen and (min-width: 400px) {\n  #slide-out {\n    left: 0;\n    width: 0;\n    background-color: #fff;\n    max-width: 95%;\n    -webkit-transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  }\n  #slide-out:before {\n/*background-image: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent)*/\n    pointer-events: none;\n    content: \"\";\n    display: block;\n    position: absolute;\n    top: 0;\n    right: 0;\n    width: 1rem;\n    height: 100%;\n  }\n  #slide-out li {\n    width: 20rem;\n    padding: 0;\n  }\n}\n.nav-wrapper a {\n  padding-left: 10px;\n}\nhtml {\n  background-color: #fff;\n}\nbody {\n  overflow: hidden;\n}\nbody,\nmain {\n  height: 100%;\n  width: 100%;\n  position: absolute;\n}\nhead,\nmain {\n  background-color: #fff !important;\n  -webkit-transition: opacity 0.3s ease-in-out;\n  transition: opacity 0.3s ease-in-out;\n  transform: translateZ(0);\n}\nmain {\n  overflow: hidden;\n}\n.home-main {\n  padding-top: 64px;\n  padding-bottom: 64px;\n}\nnav {\n  background-color: #1a687f;\n  position: fixed;\n  top: 0;\n  z-index: 10;\n}\n.ui-scrollable {\n  overflow: auto;\n  height: 100%;\n}\n.modal .modal-footer .btn,\n.idty_card button {\n  margin-right: 5px;\n}\n.small {\n  font-size: 0.8rem;\n}\n.home .card.graph {\n  height: inherit;\n}\n.home .card {\n  text-align: center;\n  height: 166px;\n}\n.home .card .fa {\n  z-index: 1;\n  width: 100%;\n  margin-left: auto;\n  margin-right: auto;\n  position: absolute;\n  margin-top: -5px;\n  margin-left: -50%;\n  color: rgba(187,234,249,0.51);\n}\n.home .card-title span {\n  z-index: 2;\n  position: relative;\n  font-size: 3rem;\n  width: 350px;\n}\n.home .card-title p {\n  z-index: 2;\n  position: relative;\n  font-size: 1.4rem;\n  line-height: 27px;\n}\n.home .card-action {\n  padding: 1px;\n}\n.home .card-time .card-content {\n  padding-top: 15px;\n  padding-bottom: 15px;\n}\n.home .card-time .card-content .card-title p:first-child {\n  margin-bottom: 9px;\n}\n#serveractions {\n  width: 170px !important;\n}\n#serveractions button {\n  height: 50px;\n  width: 100%;\n  padding-right: 0px;\n  padding-left: 5px;\n}\n#serveractions i,\n#serveractions span {\n  line-height: 50px;\n  height: 50px;\n}\n#about {\n  width: 260px !important;\n}\n#about button {\n  height: 50px;\n  width: 100%;\n  padding-right: 0px;\n  padding-left: 12px;\n  text-transform: none;\n  overflow: visible;\n}\n#about li {\n  position: relative;\n}\n#about i,\n#about span {\n  line-height: 50px;\n  height: 50px;\n}\n#server_state .card-title {\n  height: 53px;\n}\n#server_state i {\n  font-size: 4.5rem;\n}\n.card-content {\n  width: 100%;\n}\n.tabs {\n  overflow: hidden;\n}\n.tabs .indicator {\n  background-color: #82b6c1;\n}\n.tabs .tab a {\n  color: #1a687f;\n}\n.tabs .tab a:hover {\n  color: #82b6c1;\n}\n.pubkey {\n  background-color: #d7edf5;\n  line-height: 60px;\n}\n.pre,\n.host_listening {\n  background-color: #d7edf5;\n  line-height: 21px;\n  padding-top: 20px;\n  padding-bottom: 20px;\n}\nblockquote {\n  padding-top: 10px;\n  padding-bottom: 10px;\n}\nblockquote.blue {\n  border-left: 5px solid #1b76bf;\n}\nblockquote.info {\n  border-left: 5px solid #1b76bf;\n  background-color: #fbfbff !important;\n}\n.tabs .tab.disabled a {\n  color: #9ea8ac;\n}\n#card-logs {\n  position: fixed;\n  margin: 0;\n  width: 90%;\n}\n#card-logs label {\n  margin-right: 30px;\n}\n#logs {\n  font-size: 12px;\n  padding: 10px;\n  padding-top: 200px;\n  margin: 0;\n  overflow: auto;\n  height: 100%;\n}\n#logs p {\n  line-height: 21px;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n#follow-logs {\n  float: right;\n}\n.log-level.info {\n  color: #00f;\n}\n.log-level.warn {\n  color: #c9c826;\n}\n.log-level.error {\n  color: #f00;\n}\n.log-level.debug {\n  color: #0ff;\n}\n.log-level.trace {\n  color: #d0f;\n}\n.log-msg.info {\n  background-color: none;\n}\n.log-msg.warn {\n  background-color: #fffe99;\n}\n.log-msg.error {\n  background-color: #f8d5d2;\n}\n.log-msg.debug {\n  background-color: rgba(29,255,255,0.23);\n}\n.log-msg.trace {\n  background-color: rgba(217,0,255,0.14);\n}\n.log-time {\n  color: #888;\n}\n.network-alert .card-content p {\n  margin-top: 10px;\n  margin-bottom: 20px;\n}\n#about_card {\n  border: 0;\n  box-shadow: none;\n  padding-top: 30px;\n}\n#about_card .card-image {\n  width: 170px;\n  margin-left: auto;\n  margin-right: auto;\n}\n#about_card a {\n  margin-right: 25px;\n}\n#about_card a span {\n  position: relative;\n  top: -4px;\n  left: 5px;\n}\n.currency {\n  background-color: #699cab;\n  margin: 0;\n  padding: 5px;\n}\n.currency h1 {\n  text-align: center;\n  font-size: 18px;\n  margin: 0;\n  color: #fff;\n}\n.card.sync .iconic.card-title {\n  padding-top: 15px;\n  height: 83px;\n}\n.card.sync .iconic.card-title i {\n  font-size: 4.5rem;\n}\n.card.sync .card-content {\n  padding-top: 5px;\n  padding-bottom: 5px;\n}\n.card.sync .card-content p {\n  font-size: 16px;\n}\n.card.sync .card-content .progress {\n  margin-bottom: 10px;\n}\n.file-field.input-field {\n  margin-top: 0;\n}\n.file-field .btn-large,\n.btn-large input {\n  height: 54px !important;\n  line-height: 56px !important;\n}\n.pre a {\n  color: #039be5 !important;\n  text-transform: none !important;\n}\n.proof-card .card-content {\n  padding-top: 18px !important;\n  padding-bottom: 10px !important;\n}\n.proof-card .card-content .proof-mesure {\n  font-size: 1.5em;\n  line-height: 30px;\n}\n.proof-card .card-content .proof-unit {\n  text-align: center;\n  width: 100%;\n  display: block;\n  font-size: 0.7em;\n  line-height: 20px;\n}\n.proof-card .card-action p.hash {\n  height: 10px;\n}\n.proof-card .card-action .progress {\n  width: 70px !important;\n  margin-left: auto;\n  margin-right: auto;\n}\n.button-cancel {\n  float: left;\n}\n.button-next {\n  float: right;\n}\n.common-network {\n  border-left: 9px solid rgba(0,0,0,0.12);\n}\n.common-network h1 {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.upnp {\n  line-height: 76px;\n}\n.modules blockquote {\n  margin-bottom: 5px;\n}\n.modules blockquote a {\n  font-weight: bold !important;\n  text-transform: none !important;\n  color: #dc6f1d !important;\n}\n.modules blockquote a.close {\n  padding-top: 10px;\n}\n.modules li.collection-item {\n  padding: 20px 20px;\n}\n.modules li .installing {\n  margin-top: 30px !important;\n  margin-bottom: 0 !important;\n}\n.modules li .installing h5 {\n  margin-left: 50px;\n  margin-top: 0;\n}\n.install_package .input-field {\n  margin-top: 0;\n}\n",".mdi-navigation-menu {\n  padding-left: 0.5rem;\n}\n#slide-out .card {\n  margin: 0;\n}\n#slide-out .card img {\n  height: 140px;\n}\n#slide-out .card-title {\n  left: 0;\n  top: -25px;\n  width: 100%;\n  height: 100%;\n}\n#slide-out .card-title span {\n  display: block;\n  line-height: 30px;\n}\n#slide-out .card-title .menu-title {\n  font-weight: bold;\n}\n#slide-out .card-title .menu-speach {\n  font-size: 1rem;\n  line-height: 20px;\n}\n#slide-out .card-title .menu-footer {\n  font-size: 1rem;\n  line-height: 20px;\n  position: relative;\n  bottom: -45px;\n  left: 145px;\n}\n#slide-out i {\n  color: #1a687f;\n  width: 5rem;\n  float: left;\n}\n#slide-out a {\n  padding-left: 7px;\n  font-size: 1.5rem;\n}\n.side-nav.side-nav-icons {\n  width: 5rem;\n  z-index: 1000;\n  box-shadow: none;\n}\n#slide-out li {\n  padding: 0;\n}\nul#slide-out li:hover {\n  background-color: #f0f0f0;\n}\n@media screen and (max-width: 400px) {\n  #slide-out {\n    width: 20rem;\n    background-color: #fff;\n    max-width: 95%;\n    -webkit-transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  }\n}\n@media screen and (min-width: 400px) {\n  #slide-out {\n    left: 0;\n    width: 0;\n    background-color: #fff;\n    max-width: 95%;\n    -webkit-transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  }\n  #slide-out:before {\n/*background-image: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent)*/\n    pointer-events: none;\n    content: \"\";\n    display: block;\n    position: absolute;\n    top: 0;\n    right: 0;\n    width: 1rem;\n    height: 100%;\n  }\n  #slide-out li {\n    width: 20rem;\n    padding: 0;\n  }\n}\n.nav-wrapper a {\n  padding-left: 10px;\n}\n",""]}
\ No newline at end of file
diff --git a/public/app.js b/public/app.js
index c67b2bb..34432c0 100644
--- a/public/app.js
+++ b/public/app.js
@@ -695,25 +695,47 @@ require.register("js/controllers/main/MainController.js", function(exports, requ
 
 var co = require('co');
 
-module.exports = function ($scope, $state, $http, $timeout, $interval, Webmin, summary, UIUtils, Base58) {
-
-  var local_host = summary.host.split(':')[0]; // We suppose IPv4 configuration
-  var local_port = summary.host.split(':')[1];
-  var local_sign_pk = Base58.decode(summary.pubkey);
-  var local_sign_sk = Base58.decode(summary.seckey);
-
-  var DEFAULT_CESIUM_SETTINGS = {
-    "useRelative": true,
-    "timeWarningExpire": 2592000,
-    "useLocalStorage": true,
-    "rememberMe": true,
-    "plugins": {},
-    "node": {
-      "host": local_host,
-      "port": local_port
-    },
-    "showUDHistory": true
-  };
+module.exports = function ($scope, $state, $http, $timeout, $interval, Webmin, uiModules, summary, UIUtils) {
+
+  $scope.externalMenus = [];
+
+  var _iteratorNormalCompletion = true;
+  var _didIteratorError = false;
+  var _iteratorError = undefined;
+
+  try {
+    var _loop = function _loop() {
+      var moduleName = _step.value;
+
+      var module = window.uiModules[moduleName];
+      if (module) {
+        $scope.externalMenus.push({
+          menuOpen: function menuOpen() {
+            return module.menuOpen(summary);
+          },
+          menuIconClass: module.menuIconClass,
+          menuLabel: module.menuLabel
+        });
+      }
+    };
+
+    for (var _iterator = uiModules[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+      _loop();
+    }
+  } catch (err) {
+    _didIteratorError = true;
+    _iteratorError = err;
+  } finally {
+    try {
+      if (!_iteratorNormalCompletion && _iterator.return) {
+        _iterator.return();
+      }
+    } finally {
+      if (_didIteratorError) {
+        throw _iteratorError;
+      }
+    }
+  }
 
   $scope.notifications = {
     help: []
@@ -730,63 +752,6 @@ module.exports = function ($scope, $state, $http, $timeout, $interval, Webmin, s
 
   UIUtils.changeTitle(summary.version);
 
-  $scope.openWallet = function () {
-
-    var walletHeight = parseInt(localStorage.getItem('wallet_height')) || 1000;
-    var walletWidth = parseInt(localStorage.getItem('wallet_width')) || 1400;
-
-    openNewTab(window.location.origin + '/cesium/index.html', {
-      position: 'center',
-      height: walletHeight,
-      width: walletWidth,
-      show: false
-    }, function (win) {
-      var settingsStr = win.window.localStorage.getItem('CESIUM_SETTINGS');
-      var dataStr = win.window.localStorage.getItem('CESIUM_DATA');
-      var settings = settingsStr && JSON.parse(settingsStr);
-      var data = dataStr && JSON.parse(dataStr);
-      var keyPairOK = data && data.keypair && data.keypair.signPk && data.keypair.signSk && true;
-      if (keyPairOK) {
-        data.keypair.signPk.length = local_sign_pk.length;
-        data.keypair.signSk.length = local_sign_sk.length;
-        keyPairOK = Base58.encode(Array.from(data.keypair.signPk)) == summary.pubkey && Base58.encode(Array.from(data.keypair.signSk)) == summary.seckey && data.pubkey == summary.pubkey;
-      }
-      if (!data || !keyPairOK || settings.node.host != local_host || settings.node.port != local_port) {
-        settings = settings || DEFAULT_CESIUM_SETTINGS;
-        data = data || {};
-        console.debug('Configuring Cesium...');
-        settings.node = {
-          "host": local_host,
-          "port": local_port
-        };
-        settings.plugins = {};
-        settings.rememberMe = true;
-        data.pubkey = summary.pubkey;
-        data.keypair = {
-          signPk: local_sign_pk,
-          signSk: local_sign_sk
-        };
-        win.window.localStorage.setItem('CESIUM_SETTINGS', JSON.stringify(settings));
-        win.window.localStorage.setItem('CESIUM_DATA', JSON.stringify(data));
-        win.on('closed', function () {
-          // Reopen the wallet
-          $timeout(function () {
-            return $scope.openWallet();
-          }, 1);
-        });
-        win.close();
-      } else {
-        // Cesium is correctly configured for the network part
-        win.show();
-        win.on('closed', function () {
-          localStorage.setItem('wallet_height', win.window.innerHeight - 8); // Seems to always have 8 pixels more
-          localStorage.setItem('wallet_width', win.window.innerWidth - 16); // Seems to always have 16 pixels more
-          mainWindow.focus();
-        });
-      }
-    });
-  };
-
   var aboutWin = void 0;
 
   $scope.showAbout = function () {
@@ -1770,6 +1735,104 @@ module.exports = function ($scope, Webmin) {
 
 });
 
+require.register("js/controllers/main/settings/tabs/ModulesController.js", function(exports, require, module) {
+"use strict";
+
+var co = require('co');
+
+module.exports = function ($scope, $http, $state, $interval, $timeout, UIUtils, summary, Webmin, allModules, hasAccess) {
+
+  var interval = void 0;
+  $scope.hasAccess = hasAccess;
+  $scope.module_to_install = '';
+  $scope.installing = false;
+  $scope.initialLength = allModules.length;
+
+  $scope.showWarning = function () {
+    return $scope.warningShown = true;
+  };
+  $scope.hideWarning = function () {
+    return $scope.warningShown = false;
+  };
+
+  $scope.modules = modulesTransform(allModules);
+
+  $scope.switchModule = function (mod) {
+    $scope.modules.map(function (m) {
+      return m.disabled = true;
+    });
+    mod.installing = !mod.installing;
+    Webmin.plugin.removePackage(mod.name);
+    $scope.checkModulesInstallation();
+  };
+
+  $scope.installModule = function () {
+    $scope.modules.map(function (m) {
+      return m.disabled = true;
+    });
+    co(regeneratorRuntime.mark(function _callee() {
+      var res;
+      return regeneratorRuntime.wrap(function _callee$(_context) {
+        while (1) {
+          switch (_context.prev = _context.next) {
+            case 0:
+              _context.next = 2;
+              return Webmin.plugin.addPackage($scope.module_to_install);
+
+            case 2:
+              res = _context.sent;
+
+              if (res.success) {
+                $scope.modules.push({
+                  fullName: $scope.module_to_install,
+                  disabled: true,
+                  installing: true,
+                  installed: true
+                });
+                $scope.installing = true;
+                $scope.checkModulesInstallation();
+              } else {
+                $scope.modules = modulesTransform(allModules);
+                UIUtils.toast('settings.modules.already_install');
+              }
+
+            case 4:
+            case 'end':
+              return _context.stop();
+          }
+        }
+      }, _callee, this);
+    }));
+  };
+
+  $scope.checkModulesInstallation = function () {
+    interval = $interval(function () {
+      Webmin.plugin.allModules().then(function (modules) {
+        if (modules.length !== $scope.initialLength) {
+          $scope.initialLength = modules.length;
+          $scope.modules = modulesTransform(modules);
+          $scope.installing = false;
+          $interval.cancel(interval);
+        }
+      });
+    }, 1500);
+  };
+
+  function modulesTransform(modules) {
+    return modules.map(function (m) {
+      return {
+        name: m.name,
+        fullName: [m.name, m.version].join('@'),
+        disabled: !$scope.hasAccess,
+        installing: false,
+        installed: true
+      };
+    });
+  }
+};
+
+});
+
 require.register("js/controllers/main/settings/tabs/NetworkController.js", function(exports, require, module) {
 "use strict";
 
@@ -1860,6 +1923,9 @@ function toArrayOfAddresses(netiScope) {
 'use strict';
 
 module.exports = function () {
+
+  window.uiModules = {};
+
   require('./services/webmin')(angular);
 
   var duniterApp = angular.module('duniterUIApp', ['ui.router', 'homeControllers', 'pascalprecht.translate']);
@@ -1936,6 +2002,7 @@ module.exports = function () {
   homeControllers.controller('CPUController', require('./controllers/main/settings/tabs/CPUController'));
   homeControllers.controller('CurrencyController', require('./controllers/main/settings/tabs/CurrencyController'));
   homeControllers.controller('KeyController', require('./controllers/main/settings/tabs/KeyController'));
+  homeControllers.controller('ModulesController', require('./controllers/main/settings/tabs/ModulesController'));
   homeControllers.controller('GraphsController', require('./controllers/main/graphs/GraphsController'));
   homeControllers.controller('GraphsBlockchainController', require('./controllers/main/graphs/GraphsBlockchainController'));
 };
@@ -2129,6 +2196,7 @@ module.exports = {
   "settings.tabs.network": "Network",
   "settings.tabs.currency": "Currency",
   "settings.tabs.cpu": "CPU",
+  "settings.tabs.modules": "Modules",
   "settings.data.reset.title": "Reset this node",
   "settings.data.reset.message": "If you desire to reset this node's data and sync it again with the network, please select a node to sync against and validate.",
   "settings.data.reset.warning": "This process <strong>will not</strong> reset the node identity and network settings, which will be reused.",
@@ -2167,6 +2235,19 @@ module.exports = {
   "settings.cpu.range": "% of CPU power core dedicated to proof-of-work :",
   "settings.cpu.power": "Core power:",
   "settings.cpu.saved": "CPU settings saved.",
+  "settings.modules.title": "Modules",
+  "settings.modules.message": "You can install extensions to your Duniter node to provide new features. These extensions are called <b>Duniter modules</b>.",
+  "settings.modules.no_access": "This instance does not have enough system rights to install new modules on disk.",
+  "settings.modules.install": "Install this module",
+  "settings.modules.already_install": "Module already installed",
+  "settings.modules.warning": "Please be <b>VERY CAREFUL</b> when choosing to install a module: you should have checked that this module is not a virus, nor wants to steal your informations.<br>A module has <i>a lot of power</i> and can likely access to any part of your computer in the limit of the user's access rights:<ul><li>- your node's keyring (in the computer's memory)</li><li>- your personal files (photos, unencrypted passwords, browser favorites, ...)</li><li>- your internet access</li><li>- your local network</li></ul>You could get informations about a module by looking on the Internet.",
+  "settings.modules.warning_light": "Please read this warning before installing a module!",
+  "settings.modules.warning_close": "Close this message",
+  "settings.modules.on": "On",
+  "settings.modules.off": "Off",
+  "settings.modules.installing": "Installation...",
+  "settings.modules.installing_warn": "Please <b>do not close Duniter</b> during this process!",
+  "settings.modules.uninstalling": "Removal...",
   "graphs.tabs.blockchain": "Blockchain",
   "graphs.tabs.currency": "Currency",
   "graphs.blockchain.range": "Graphs for the last X blocks: (please choose X value)",
@@ -2292,6 +2373,55 @@ module.exports = function (app) {
         },
         summary: function summary(Webmin) {
           return Webmin.summary();
+        },
+        uiModules: function uiModules(Webmin) {
+          return co(regeneratorRuntime.mark(function _callee() {
+            var modules, i, _module, injection, script;
+
+            return regeneratorRuntime.wrap(function _callee$(_context) {
+              while (1) {
+                switch (_context.prev = _context.next) {
+                  case 0:
+                    _context.next = 2;
+                    return Webmin.plugin.uiModules();
+
+                  case 2:
+                    modules = _context.sent;
+                    i = 0;
+
+                  case 4:
+                    if (!(i < modules.length)) {
+                      _context.next = 16;
+                      break;
+                    }
+
+                    _module = modules[i];
+                    _context.next = 8;
+                    return Webmin.plugin.uiGetMenuInjection(_module);
+
+                  case 8:
+                    injection = _context.sent;
+                    script = document.createElement("script");
+
+                    script.type = "text/javascript";
+                    script.text = ";" + injection.menu;
+                    document.body.appendChild(script);
+
+                  case 13:
+                    i++;
+                    _context.next = 4;
+                    break;
+
+                  case 16:
+                    return _context.abrupt('return', modules);
+
+                  case 17:
+                  case 'end':
+                    return _context.stop();
+                }
+              }
+            }, _callee, this);
+          }));
         }
       },
       controller: 'MainController'
@@ -2314,19 +2444,19 @@ module.exports = function (app) {
       template: require('views/main/home/tabs/network'),
       resolve: {
         peers: function peers(Webmin) {
-          return co(regeneratorRuntime.mark(function _callee() {
-            return regeneratorRuntime.wrap(function _callee$(_context) {
+          return co(regeneratorRuntime.mark(function _callee2() {
+            return regeneratorRuntime.wrap(function _callee2$(_context2) {
               while (1) {
-                switch (_context.prev = _context.next) {
+                switch (_context2.prev = _context2.next) {
                   case 0:
-                    return _context.abrupt('return', Webmin.network.peers());
+                    return _context2.abrupt('return', Webmin.network.peers());
 
                   case 1:
                   case 'end':
-                    return _context.stop();
+                    return _context2.stop();
                 }
               }
-            }, _callee, this);
+            }, _callee2, this);
           }));
         }
       },
@@ -2346,40 +2476,40 @@ module.exports = function (app) {
       template: require('views/main/settings/tabs/data'),
       resolve: {
         peers: function peers(Webmin) {
-          return co(regeneratorRuntime.mark(function _callee2() {
+          return co(regeneratorRuntime.mark(function _callee3() {
             var self, res;
-            return regeneratorRuntime.wrap(function _callee2$(_context2) {
+            return regeneratorRuntime.wrap(function _callee3$(_context3) {
               while (1) {
-                switch (_context2.prev = _context2.next) {
+                switch (_context3.prev = _context3.next) {
                   case 0:
-                    _context2.prev = 0;
-                    _context2.next = 3;
+                    _context3.prev = 0;
+                    _context3.next = 3;
                     return Webmin.network.selfPeer();
 
                   case 3:
-                    self = _context2.sent;
-                    _context2.next = 6;
+                    self = _context3.sent;
+                    _context3.next = 6;
                     return Webmin.network.peers();
 
                   case 6:
-                    res = _context2.sent;
-                    return _context2.abrupt('return', _.filter(res.peers, function (p) {
+                    res = _context3.sent;
+                    return _context3.abrupt('return', _.filter(res.peers, function (p) {
                       return p.pubkey != self.pubkey && p.status == 'UP';
                     }));
 
                   case 10:
-                    _context2.prev = 10;
-                    _context2.t0 = _context2['catch'](0);
+                    _context3.prev = 10;
+                    _context3.t0 = _context3['catch'](0);
 
-                    console.error(_context2.t0);
-                    return _context2.abrupt('return', []);
+                    console.error(_context3.t0);
+                    return _context3.abrupt('return', []);
 
                   case 14:
                   case 'end':
-                    return _context2.stop();
+                    return _context3.stop();
                 }
               }
-            }, _callee2, this, [[0, 10]]);
+            }, _callee3, this, [[0, 10]]);
           }));
         }
       },
@@ -2401,6 +2531,40 @@ module.exports = function (app) {
         }
       },
       controller: 'CPUController'
+    }).state('main.settings.modules', {
+      url: '/modules',
+      template: require('views/main/settings/tabs/modules'),
+      resolve: {
+        summary: function summary(Webmin) {
+          return Webmin.summary();
+        },
+        hasAccess: function hasAccess(Webmin) {
+          return Webmin.plugin.checkAccess();
+        },
+        allModules: function allModules(Webmin) {
+          return co(regeneratorRuntime.mark(function _callee4() {
+            var modules;
+            return regeneratorRuntime.wrap(function _callee4$(_context4) {
+              while (1) {
+                switch (_context4.prev = _context4.next) {
+                  case 0:
+                    _context4.next = 2;
+                    return Webmin.plugin.allModules();
+
+                  case 2:
+                    modules = _context4.sent;
+                    return _context4.abrupt('return', modules);
+
+                  case 4:
+                  case 'end':
+                    return _context4.stop();
+                }
+              }
+            }, _callee4, this);
+          }));
+        }
+      },
+      controller: 'ModulesController'
     }).state('main.settings.crypto', {
       url: '/crypto',
       template: require('views/main/settings/tabs/crypto'),
@@ -2421,19 +2585,19 @@ module.exports = function (app) {
       url: '/currency',
       resolve: {
         conf: function conf(summary) {
-          return co(regeneratorRuntime.mark(function _callee3() {
-            return regeneratorRuntime.wrap(function _callee3$(_context3) {
+          return co(regeneratorRuntime.mark(function _callee5() {
+            return regeneratorRuntime.wrap(function _callee5$(_context5) {
               while (1) {
-                switch (_context3.prev = _context3.next) {
+                switch (_context5.prev = _context5.next) {
                   case 0:
-                    return _context3.abrupt('return', summary.parameters);
+                    return _context5.abrupt('return', summary.parameters);
 
                   case 1:
                   case 'end':
-                    return _context3.stop();
+                    return _context5.stop();
                 }
               }
-            }, _callee3, this);
+            }, _callee5, this);
           }));
         }
       },
@@ -2506,25 +2670,25 @@ module.exports = function (app) {
   });
 
   function resolveNetworkAutoConf(Webmin) {
-    return co(regeneratorRuntime.mark(function _callee4() {
+    return co(regeneratorRuntime.mark(function _callee6() {
       var netinterfaces;
-      return regeneratorRuntime.wrap(function _callee4$(_context4) {
+      return regeneratorRuntime.wrap(function _callee6$(_context6) {
         while (1) {
-          switch (_context4.prev = _context4.next) {
+          switch (_context6.prev = _context6.next) {
             case 0:
-              _context4.next = 2;
+              _context6.next = 2;
               return Webmin.network.interfaces();
 
             case 2:
-              netinterfaces = _context4.sent;
-              return _context4.abrupt('return', netinterfaces || { local: {}, remote: {} });
+              netinterfaces = _context6.sent;
+              return _context6.abrupt('return', netinterfaces || { local: {}, remote: {} });
 
             case 4:
             case 'end':
-              return _context4.stop();
+              return _context6.stop();
           }
         }
-      }, _callee4, this);
+      }, _callee6, this);
     }));
   }
 };
@@ -3421,6 +3585,20 @@ module.exports = function (angular) {
         },
         currency: {
           parameters: getResource('/webmin/currency/parameters')
+        },
+        plugin: {
+          allModules: getResource('/webmin/plug/modules'),
+          uiModules: getResource('/webmin/plug/ui_modules'),
+          uiGetMenuInjection: function uiGetMenuInjection(moduleName) {
+            return getResource('/webmin/plug/ui_modules/inject/' + moduleName)();
+          },
+          checkAccess: getResource('/webmin/plug/check_access'),
+          addPackage: function addPackage(pkg) {
+            return getResource('/webmin/plug/add/' + encodeURIComponent(pkg), null, 60000)();
+          },
+          removePackage: function removePackage(pkg) {
+            return getResource('/webmin/plug/rem/' + encodeURIComponent(pkg))();
+          }
         }
       };
     }
diff --git a/public/app.js.map b/public/app.js.map
index b3f9e4e..c48f717 100644
--- a/public/app.js.map
+++ b/public/app.js.map
@@ -1 +1 @@
-{"version":3,"sources":["app/js/controllers/AboutController.js","app/js/controllers/IndexController.js","app/js/controllers/init/create/IdentityController.js","app/js/controllers/init/create/ParametersController.js","app/js/controllers/init/create/RootBlockController.js","app/js/controllers/init/sync/SyncController.js","app/js/controllers/main/MainController.js","app/js/controllers/main/graphs/GraphsBlockchainController.js","app/js/controllers/main/graphs/GraphsController.js","app/js/controllers/main/home/HomeController.js","app/js/controllers/main/home/tabs/HomeNetworkController.js","app/js/controllers/main/home/tabs/OverviewController.js","app/js/controllers/main/settings/SettingsController.js","app/js/controllers/main/settings/tabs/BackupController.js","app/js/controllers/main/settings/tabs/CPUController.js","app/js/controllers/main/settings/tabs/CurrencyController.js","app/js/controllers/main/settings/tabs/DataController.js","app/js/controllers/main/settings/tabs/KeyController.js","app/js/controllers/main/settings/tabs/LogsController.js","app/js/controllers/main/settings/tabs/LogsSettingsController.js","app/js/controllers/main/settings/tabs/NetworkController.js","app/js/app.config.js","app/js/application.js","app/js/lib/conf/conf.js","app/js/lib/conf/i18n/en.json","app/js/lib/conf/routes.js","app/js/lib/conf/translate.js","app/js/lib/entity/peer.js","app/js/lib/mobileDetector.js","app/js/services/base58.js","app/js/services/datetime.js","app/js/services/graphs.js","app/js/services/importer.js","app/js/services/pubkeyGenerator.js","app/js/services/ui_utils.js","app/js/services/webmin.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3BA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1DA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAzNA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAzLA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA9OA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA9JA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtCA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA7PA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtCA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjCA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnDA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAxCA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAzFA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AArDA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlFA;AAAA;CCAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlFA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlBA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3MA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAvVA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnHA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAxFA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlPA;AAAA;CCAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlCA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA7DA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA7CA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AApOA;AAAA","file":"public/app.js","sourcesContent":["\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, version, UIUtils) {\n\n  $scope.version = version;\n\n  return co(regeneratorRuntime.mark(function _callee() {\n    return regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            _context.next = 2;\n            return UIUtils.translate('help.about_duniter.title');\n\n          case 2:\n            $scope.$parent.title = _context.sent;\n\n          case 3:\n          case 'end':\n            return _context.stop();\n        }\n      }\n    }, _callee, this);\n  }));\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $http, $state, Webmin, summary, UIUtils) {\n\n  UIUtils.changeTitle(summary.version);\n\n  $scope.message = 'index.message.loading';\n  co(regeneratorRuntime.mark(function _callee() {\n    var connected, _summary;\n\n    return regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            connected = false;\n            _context.prev = 1;\n            _context.next = 4;\n            return Webmin.summary();\n\n          case 4:\n            _summary = _context.sent;\n\n            if (!_summary.current) {\n              _context.next = 7;\n              break;\n            }\n\n            return _context.abrupt('return', $state.go('main.home.overview'));\n\n          case 7:\n            return _context.abrupt('return', $state.go('configure.choose'));\n\n          case 10:\n            _context.prev = 10;\n            _context.t0 = _context['catch'](1);\n\n            console.error(connected, _context.t0);\n\n            if (connected) {\n              _context.next = 15;\n              break;\n            }\n\n            return _context.abrupt('return', $state.go('error', { err: 'err.connection' }));\n\n          case 15:\n            return _context.abrupt('return', $state.go('error', { err: _context.t0 }));\n\n          case 16:\n          case 'end':\n            return _context.stop();\n        }\n      }\n    }, _callee, this, [[1, 10]]);\n  }));\n};\n","\"use strict\";\n\nvar conf = require('js/lib/conf/conf');\n\nmodule.exports = function ($scope, $state, PubkeyGenerator) {\n\n  setTimeout(function () {\n    $('select').material_select();\n  }, 500);\n\n  $scope.accept = function () {\n    var modal = $('#modal1');\n    if (modal.css('display') == 'none') {\n      $('#modal1').openModal();\n    }\n  };\n\n  PubkeyGenerator($scope);\n\n  if (conf.dev_autoconf) {\n    $scope.$parent.conf.idty_uid = 'dev_' + ~~(Math.random() * 2147483647);\n    $scope.$parent.conf.idty_entropy = ~~(Math.random() * 2147483647) + \"\";\n    $scope.$parent.conf.idty_password = ~~(Math.random() * 2147483647) + \"\";\n    $state.go('configure.create.network');\n  }\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, UIUtils) {\n\n  UIUtils.enableInputs();\n};\n","\"use strict\";\n\nvar co = require('co');\nvar conf = require('js/lib/conf/conf');\n\nmodule.exports = function ($scope, $http, $state, Webmin) {\n\n  $scope.generated = '';\n  $scope.started = false;\n  $scope.message = 'configuration.create_root.need_a_try';\n\n  $scope.start = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var hosts;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.prev = 0;\n              hosts = [];\n\n              if ($scope.$parent.conf.remote_ipv4) {\n                hosts.push([$scope.$parent.conf.remote_ipv4, $scope.$parent.conf.rport].join(':'));\n              }\n              if ($scope.$parent.conf.remote_ipv6) {\n                hosts.push([\"[\" + $scope.$parent.conf.remote_ipv6 + \"]\", $scope.$parent.conf.rport].join(':'));\n              }\n              $scope.host_listening = hosts.join('\\n');\n              $scope.started = true;\n              _context.next = 8;\n              return Webmin.server.sendConf({\n                conf: $scope.$parent.conf\n              });\n\n            case 8:\n              _context.next = 10;\n              return $scope.try();\n\n            case 10:\n              _context.next = 15;\n              break;\n\n            case 12:\n              _context.prev = 12;\n              _context.t0 = _context['catch'](0);\n\n              $scope.message = _context.t0.message;\n\n            case 15:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this, [[0, 12]]);\n    }));\n  };\n\n  $scope.stop = function () {\n    return co(regeneratorRuntime.mark(function _callee2() {\n      return regeneratorRuntime.wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              $scope.started = false;\n\n            case 1:\n            case 'end':\n              return _context2.stop();\n          }\n        }\n      }, _callee2, this);\n    }));\n  };\n\n  $scope.try = function () {\n    return co(regeneratorRuntime.mark(function _callee3() {\n      return regeneratorRuntime.wrap(function _callee3$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              _context3.prev = 0;\n              _context3.next = 3;\n              return Webmin.server.previewNext();\n\n            case 3:\n              $scope.block = _context3.sent;\n\n              $scope.generated = $scope.block.raw;\n              $scope.message = '';\n              _context3.next = 11;\n              break;\n\n            case 8:\n              _context3.prev = 8;\n              _context3.t0 = _context3['catch'](0);\n\n              $scope.message = _context3.t0.message;\n\n            case 11:\n            case 'end':\n              return _context3.stop();\n          }\n        }\n      }, _callee3, this, [[0, 8]]);\n    }));\n  };\n\n  $scope.accept = function () {\n    return co(regeneratorRuntime.mark(function _callee4() {\n      var res;\n      return regeneratorRuntime.wrap(function _callee4$(_context4) {\n        while (1) {\n          switch (_context4.prev = _context4.next) {\n            case 0:\n              _context4.next = 2;\n              return Webmin.blockchain.block_add({\n                block: $scope.generated\n              });\n\n            case 2:\n              res = _context4.sent;\n\n              if (!(res.number == 0)) {\n                _context4.next = 6;\n                break;\n              }\n\n              _context4.next = 6;\n              return $scope.startServices();\n\n            case 6:\n            case 'end':\n              return _context4.stop();\n          }\n        }\n      }, _callee4, this);\n    }));\n  };\n\n  $scope.startServices = function () {\n    return co(regeneratorRuntime.mark(function _callee5() {\n      return regeneratorRuntime.wrap(function _callee5$(_context5) {\n        while (1) {\n          switch (_context5.prev = _context5.next) {\n            case 0:\n              _context5.next = 2;\n              return Webmin.server.services.startAll();\n\n            case 2:\n              $state.go('index');\n\n            case 3:\n            case 'end':\n              return _context5.stop();\n          }\n        }\n      }, _callee5, this);\n    }));\n  };\n\n  $scope.cancelAndReset = function () {\n    return co(regeneratorRuntime.mark(function _callee6() {\n      return regeneratorRuntime.wrap(function _callee6$(_context6) {\n        while (1) {\n          switch (_context6.prev = _context6.next) {\n            case 0:\n              _context6.next = 2;\n              return Webmin.server.services.stopAll();\n\n            case 2:\n              _context6.next = 4;\n              return Webmin.server.resetData();\n\n            case 4:\n              $state.go('index');\n\n            case 5:\n            case 'end':\n              return _context6.stop();\n          }\n        }\n      }, _callee6, this);\n    }));\n  };\n\n  return co(regeneratorRuntime.mark(function _callee7() {\n    return regeneratorRuntime.wrap(function _callee7$(_context7) {\n      while (1) {\n        switch (_context7.prev = _context7.next) {\n          case 0:\n            _context7.prev = 0;\n            _context7.next = 3;\n            return $scope.start();\n\n          case 3:\n            _context7.next = 5;\n            return $scope.try();\n\n          case 5:\n            $scope.started = true;\n            _context7.next = 11;\n            break;\n\n          case 8:\n            _context7.prev = 8;\n            _context7.t0 = _context7['catch'](0);\n\n            $scope.started = false;\n\n          case 11:\n          case 'end':\n            return _context7.stop();\n        }\n      }\n    }, _callee7, this, [[0, 8]]);\n  }));\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $http, $state, $timeout, $stateParams, $translate, UIUtils, Webmin) {\n\n  var syncWS = Webmin.ws();\n\n  UIUtils.enableInputs();\n  $scope.sync_mode = 'simplified';\n  $scope.simplified_host = '';\n  $scope.synchronizing = false;\n  $scope.sync_failed = false;\n  $scope.host = $stateParams.host || localStorage.getItem('sync_host') || '';\n  $scope.port = parseInt($stateParams.port) || parseInt(localStorage.getItem('sync_port')) || 10901;\n  $scope.to = parseInt($stateParams.to);\n  $scope.wrong_host = false;\n  $scope.remote_current = null;\n\n  $scope.checkNode = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var current, targetHost;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              $scope.checked_host = '';\n              $scope.sync_error = '';\n              $scope.sync_message = '';\n              if ($scope.sync_mode == 'simplified') {\n                $scope.host = $scope.simplified_host.split(':')[0];\n                $scope.port = parseInt($scope.simplified_host.split(':')[1]);\n              }\n              $scope.checking = true;\n              _context.prev = 5;\n              _context.next = 8;\n              return Webmin.server.testSync({\n                host: $scope.host,\n                port: $scope.port\n              });\n\n            case 8:\n              current = _context.sent;\n              targetHost = [$scope.host, $scope.port].join(':');\n\n              if (current) {\n                $scope.remote_current = current;\n                $scope.checked_host = targetHost;\n              }\n              UIUtils.toast('sync.ready.node.part1');\n              $timeout(function () {\n                if (!$scope.synchronizing) {\n                  UIUtils.toast('sync.ready.node.part2');\n                }\n              }, 6000);\n              _context.next = 18;\n              break;\n\n            case 15:\n              _context.prev = 15;\n              _context.t0 = _context['catch'](5);\n\n              $scope.sync_error = 'sync.error.unreachable.try.another.node';\n\n            case 18:\n              $scope.checking = false;\n              return _context.abrupt('return', $scope.checked_host ? true : false);\n\n            case 20:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this, [[5, 15]]);\n    }));\n  };\n\n  $scope.startSync = function () {\n    $scope.down_percent = 0;\n    $scope.apply_percent = 0;\n    $scope.sync_failed = false;\n    $scope.synchronizing = true;\n    return co(regeneratorRuntime.mark(function _callee2() {\n      var sp, translatedErr;\n      return regeneratorRuntime.wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              _context2.next = 2;\n              return $translate('sync.started.node');\n\n            case 2:\n              _context2.t0 = _context2.sent;\n              _context2.t1 = _context2.t0 + ' ';\n              _context2.t2 = $scope.checked_host;\n              $scope.sync_message = _context2.t1 + _context2.t2;\n              sp = $scope.checked_host.split(':');\n              _context2.next = 9;\n              return $translate('err.sync.interrupted');\n\n            case 9:\n              translatedErr = _context2.sent;\n\n              syncWS.on(undefined, function (data) {\n                if (data.type == 'sync') {\n                  $scope.down_percent = 100;\n                  $scope.apply_percent = 100;\n                  $scope.sync_failed = data.value;\n                  var errorMessage = data.msg && (data.msg.message || data.msg);\n                  errorMessage = translatedErr + ' « ' + errorMessage + ' »';\n                  Webmin.server.republishNewSelfPeer().then(function () {\n                    return console.log('Peer republished');\n                  });\n                  if (data.value === true) {\n                    $state.go('index');\n                  } else {\n                    $state.go('error', { err: errorMessage });\n                  }\n                } else {\n                  var changed = true;\n                  if (data.type == 'download' && $scope.down_percent != data.value) {\n                    $scope.down_percent = data.value;\n                    changed = true;\n                  }\n                  if (data.type == 'applied' && $scope.apply_percent != data.value) {\n                    $scope.apply_percent = data.value;\n                    changed = true;\n                  }\n                  if (changed) {\n                    $scope.$apply();\n                  }\n                }\n              });\n              _context2.next = 13;\n              return Webmin.server.autoConfNetwork();\n\n            case 13:\n              localStorage.setItem(\"sync_host\", sp[0]);\n              localStorage.setItem(\"sync_port\", sp[1]);\n              Webmin.server.startSync({\n                host: sp[0],\n                port: sp[1],\n                to: $scope.to,\n                chunkLen: Math.max(500, Math.min(25, $scope.remote_current ? $scope.remote_current.number / 100 : 0))\n              });\n\n            case 16:\n            case 'end':\n              return _context2.stop();\n          }\n        }\n      }, _callee2, this);\n    }));\n  };\n\n  // Autostart\n  if ($scope.host && $scope.port && $stateParams.sync) {\n    return co(regeneratorRuntime.mark(function _callee3() {\n      var nodeOK;\n      return regeneratorRuntime.wrap(function _callee3$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              _context3.next = 2;\n              return $scope.checkNode();\n\n            case 2:\n              nodeOK = _context3.sent;\n\n              if (!nodeOK) {\n                _context3.next = 5;\n                break;\n              }\n\n              return _context3.abrupt('return', $scope.startSync());\n\n            case 5:\n            case 'end':\n              return _context3.stop();\n          }\n        }\n      }, _callee3, this);\n    }));\n  }\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $state, $http, $timeout, $interval, Webmin, summary, UIUtils, Base58) {\n\n  var local_host = summary.host.split(':')[0]; // We suppose IPv4 configuration\n  var local_port = summary.host.split(':')[1];\n  var local_sign_pk = Base58.decode(summary.pubkey);\n  var local_sign_sk = Base58.decode(summary.seckey);\n\n  var DEFAULT_CESIUM_SETTINGS = {\n    \"useRelative\": true,\n    \"timeWarningExpire\": 2592000,\n    \"useLocalStorage\": true,\n    \"rememberMe\": true,\n    \"plugins\": {},\n    \"node\": {\n      \"host\": local_host,\n      \"port\": local_port\n    },\n    \"showUDHistory\": true\n  };\n\n  $scope.notifications = {\n    help: []\n  };\n\n  Waves.displayEffect();\n\n  var isMobile = require('js/lib/mobileDetector');\n  if (isMobile()) {\n    $(\".button-collapse\").sideNav({\n      menuWidth: 280\n    });\n  }\n\n  UIUtils.changeTitle(summary.version);\n\n  $scope.openWallet = function () {\n\n    var walletHeight = parseInt(localStorage.getItem('wallet_height')) || 1000;\n    var walletWidth = parseInt(localStorage.getItem('wallet_width')) || 1400;\n\n    openNewTab(window.location.origin + '/cesium/index.html', {\n      position: 'center',\n      height: walletHeight,\n      width: walletWidth,\n      show: false\n    }, function (win) {\n      var settingsStr = win.window.localStorage.getItem('CESIUM_SETTINGS');\n      var dataStr = win.window.localStorage.getItem('CESIUM_DATA');\n      var settings = settingsStr && JSON.parse(settingsStr);\n      var data = dataStr && JSON.parse(dataStr);\n      var keyPairOK = data && data.keypair && data.keypair.signPk && data.keypair.signSk && true;\n      if (keyPairOK) {\n        data.keypair.signPk.length = local_sign_pk.length;\n        data.keypair.signSk.length = local_sign_sk.length;\n        keyPairOK = Base58.encode(Array.from(data.keypair.signPk)) == summary.pubkey && Base58.encode(Array.from(data.keypair.signSk)) == summary.seckey && data.pubkey == summary.pubkey;\n      }\n      if (!data || !keyPairOK || settings.node.host != local_host || settings.node.port != local_port) {\n        settings = settings || DEFAULT_CESIUM_SETTINGS;\n        data = data || {};\n        console.debug('Configuring Cesium...');\n        settings.node = {\n          \"host\": local_host,\n          \"port\": local_port\n        };\n        settings.plugins = {};\n        settings.rememberMe = true;\n        data.pubkey = summary.pubkey;\n        data.keypair = {\n          signPk: local_sign_pk,\n          signSk: local_sign_sk\n        };\n        win.window.localStorage.setItem('CESIUM_SETTINGS', JSON.stringify(settings));\n        win.window.localStorage.setItem('CESIUM_DATA', JSON.stringify(data));\n        win.on('closed', function () {\n          // Reopen the wallet\n          $timeout(function () {\n            return $scope.openWallet();\n          }, 1);\n        });\n        win.close();\n      } else {\n        // Cesium is correctly configured for the network part\n        win.show();\n        win.on('closed', function () {\n          localStorage.setItem('wallet_height', win.window.innerHeight - 8); // Seems to always have 8 pixels more\n          localStorage.setItem('wallet_width', win.window.innerWidth - 16); // Seems to always have 16 pixels more\n          mainWindow.focus();\n        });\n      }\n    });\n  };\n\n  var aboutWin = void 0;\n\n  $scope.showAbout = function () {\n    if (aboutWin) {\n      aboutWin.focus();\n    } else {\n      openWindow(window.location.origin + '/#/about', {\n        position: 'center',\n        height: 380,\n        width: 510\n      }, function (subwin) {\n        subwin.window.gui = window.gui;\n        subwin.on('closed', function () {\n          aboutWin = null;\n          mainWindow.focus();\n        });\n        aboutWin = subwin;\n      });\n    }\n  };\n\n  $scope.startServer = function () {\n    $scope.server_stopped = false;\n    return co(regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.server.services.startAll();\n\n            case 2:\n              $scope.server_started = true;\n\n            case 3:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n\n  $scope.stopServer = function () {\n    $scope.server_started = false;\n    return co(regeneratorRuntime.mark(function _callee2() {\n      return regeneratorRuntime.wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              _context2.next = 2;\n              return Webmin.server.services.stopAll();\n\n            case 2:\n              $scope.server_stopped = true;\n\n            case 3:\n            case 'end':\n              return _context2.stop();\n          }\n        }\n      }, _callee2, this);\n    }));\n  };\n\n  $scope.restartServer = function () {\n    return co(regeneratorRuntime.mark(function _callee3() {\n      return regeneratorRuntime.wrap(function _callee3$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              _context3.next = 2;\n              return $scope.stopServer();\n\n            case 2:\n              _context3.next = 4;\n              return $scope.startServer();\n\n            case 4:\n            case 'end':\n              return _context3.stop();\n          }\n        }\n      }, _callee3, this);\n    }));\n  };\n\n  function checkUpdates() {\n    var LATEST_RELEASE_URL = 'https://api.github.com/repos/duniter/duniter/releases/latest';\n    co(regeneratorRuntime.mark(function _callee4() {\n      var latest, local_string_version, m, localVersion, localSuffix, isLocalAPreRelease, remoteVersion;\n      return regeneratorRuntime.wrap(function _callee4$(_context4) {\n        while (1) {\n          switch (_context4.prev = _context4.next) {\n            case 0:\n              _context4.prev = 0;\n              _context4.next = 3;\n              return $http.get(LATEST_RELEASE_URL);\n\n            case 3:\n              latest = _context4.sent;\n              local_string_version = 'v' + summary.version;\n              m = local_string_version.match(/^v([\\d.]+)([ab]?\\d*)/);\n              localVersion = m && m[1] || \"\";\n              localSuffix = m && m[2];\n              isLocalAPreRelease = !!localSuffix;\n              remoteVersion = latest.data.tag_name.substr(1);\n\n              if (localVersion < remoteVersion || localVersion == remoteVersion && isLocalAPreRelease) {\n                if ($scope.notifications.help.filter(function (entry) {\n                  return entry.message == 'help.new_version_available';\n                }).length == 0) {\n                  $scope.notifications.help.push({\n                    icon: 'play_for_work',\n                    message: 'help.new_version_available',\n                    onclick: function onclick() {\n                      return openExternal('https://github.com/duniter/duniter/releases/latest');\n                    }\n                  });\n                }\n              }\n              _context4.next = 16;\n              break;\n\n            case 13:\n              _context4.prev = 13;\n              _context4.t0 = _context4['catch'](0);\n\n              console.error(_context4.t0);\n\n            case 16:\n            case 'end':\n              return _context4.stop();\n          }\n        }\n      }, _callee4, this, [[0, 13]]);\n    }));\n  }\n\n  $interval(checkUpdates, 1000 * 3600);\n  $timeout(checkUpdates, 1000);\n};\n","\"use strict\";\n\nvar BLOCKS_COUNT = 40;\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $state, $timeout, Webmin, UIUtils, Graph) {\n\n  var data = {};\n\n  $scope.loading = true;\n  $scope.blocksCount = $scope.blocksCount || BLOCKS_COUNT;\n\n  $scope.$watch('withTime', function (newValue) {\n    if (newValue) {\n      timeGraph();\n    }\n  });\n\n  $scope.$watch('withSpeed', function (newValue) {\n    if (newValue) {\n      speedGraph();\n    }\n  });\n\n  $scope.$watch('withDifficulty', function (newValue) {\n    if (newValue) {\n      diffGraph();\n    }\n  });\n\n  $scope.updateGraphs = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var summary, parameters, blocks, speeds, accelerations, medianTimeIncrements, actualDurations, BY_HOUR, i, len, block, acc, previousPos, j, availPreviousBlocks, localAvgSpeed, realDuration, graphs, _i, _len;\n\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.summary();\n\n            case 2:\n              summary = _context.sent;\n              _context.next = 5;\n              return Webmin.currency.parameters();\n\n            case 5:\n              parameters = _context.sent;\n              _context.next = 8;\n              return Webmin.blockchain.blocks({\n                count: $scope.blocksCount,\n                from: Math.max(0, summary.current.number - $scope.blocksCount)\n              });\n\n            case 8:\n              blocks = _context.sent;\n              speeds = [], accelerations = [], medianTimeIncrements = [], actualDurations = [];\n              BY_HOUR = 3600;\n\n              for (i = 0, len = blocks.length; i < len; i++) {\n                block = blocks[i];\n                acc = 0;\n                previousPos = Math.max(0, i - parameters.dtDiffEval);\n\n                for (j = previousPos; j < i; j++) {\n                  acc += blocks[j + 1].medianTime - blocks[j].medianTime;\n                }\n                availPreviousBlocks = i - 1 - previousPos;\n                localAvgSpeed = acc / (availPreviousBlocks || 1);\n                realDuration = !isNaN(localAvgSpeed) && localAvgSpeed != 0 ? localAvgSpeed : parameters.avgGenTime;\n\n                actualDurations.push(parseFloat(realDuration.toFixed(2)));\n                speeds.push(parseFloat((BY_HOUR / realDuration).toFixed(2)));\n                accelerations.push(block.time - block.medianTime);\n                medianTimeIncrements.push(block.medianTime - (i ? blocks[i - 1].medianTime : block.medianTime));\n              }\n              data.summary = summary;\n              data.speeds = speeds;\n              data.accelerations = accelerations;\n              data.medianTimeIncrements = medianTimeIncrements;\n              data.actualDurations = actualDurations;\n              data.minSpeeds = speeds.map(function () {\n                return parseFloat((BY_HOUR / Math.ceil(parameters.avgGenTime * Math.sqrt(1.066))).toFixed(2));\n              });\n              data.maxSpeeds = speeds.map(function () {\n                return parseFloat((BY_HOUR / Math.floor(parameters.avgGenTime / Math.sqrt(1.066))).toFixed(2));\n              });\n              data.minDurations = speeds.map(function () {\n                return parseFloat((parameters.avgGenTime / 1.066).toFixed(2));\n              });\n              data.maxDurations = speeds.map(function () {\n                return parseFloat((parameters.avgGenTime * 1.066).toFixed(2));\n              });\n              data.difficulties = blocks.map(function (b) {\n                return b.powMin;\n              });\n\n              graphs = [];\n\n              if ($scope.withTime) graphs.push(timeGraph);\n              if ($scope.withSpeed) graphs.push(speedGraph);\n              if ($scope.withDifficulty) graphs.push(diffGraph);\n              for (_i = 0, _len = graphs.length; _i < _len; _i++) {\n                graphs[_i]();\n              }\n              $scope.loading = false;\n\n            case 28:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n\n  function timeGraph() {\n    if ($scope.withTime) {\n      Graph.timeGraphs('#timeGraph', Math.max(0, data.summary.current.number - $scope.blocksCount + 1), data.accelerations, data.medianTimeIncrements, data.actualDurations, data.minDurations, data.maxDurations);\n    }\n  }\n\n  function speedGraph() {\n    if ($scope.withSpeed) {\n      Graph.speedGraph('#speedGraph', Math.max(0, data.summary.current.number - $scope.blocksCount), data.speeds, data.minSpeeds, data.maxSpeeds, function (series) {\n        $scope.series = series;\n      });\n    }\n  }\n\n  function diffGraph() {\n    if ($scope.withDifficulty) {\n      Graph.difficultyGraph('#difficultyGraph', Math.max(0, data.summary.current.number - $scope.blocksCount), data.difficulties);\n    }\n  }\n\n  return co(regeneratorRuntime.mark(function _callee2() {\n    return regeneratorRuntime.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            _context2.next = 2;\n            return $scope.updateGraphs();\n\n          case 2:\n            $scope.withTime = true;\n            $scope.withDifficulty = true;\n            $scope.$apply();\n\n          case 5:\n          case 'end':\n            return _context2.stop();\n        }\n      }\n    }, _callee2, this);\n  }));\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, UIUtils) {\n\n  UIUtils.enableTabs();\n\n  $scope.$parent.menu = 'graphs';\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, UIUtils) {\n\n  UIUtils.enableTabs();\n\n  $scope.$parent.menu = 'home';\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, Webmin, peers) {\n\n  $scope.peers = peers.peers;\n\n  var co = require('co');\n\n  $scope.update = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var delayP;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              $scope.searching = true;\n              delayP = Q.delay(500);\n              _context.next = 4;\n              return Webmin.network.peers();\n\n            case 4:\n              $scope.peers = _context.sent.peers;\n              _context.next = 7;\n              return delayP;\n\n            case 7:\n              $scope.searching = false;\n              $scope.$apply();\n\n            case 9:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, $interval, Webmin, UIUtils, summary, ws) {\n\n  var co = require('co');\n  var moment = require('moment');\n\n  bindBlockWS(function () {\n    $scope.loadPowData();\n  });\n  var M = summary.current.monetaryMass || 0;\n  // const nbUDperYear = Math.ceil(365.25 * 3600 * 24 / summary.parameters.dt);\n  // const globalC = Math.round(Math.pow(1 + summary.parameters.c, nbUDperYear) * 100) / 100 - 1;\n  var UD = summary.parameters.ud0;\n  if (summary.lastUDBlock) {\n    var N = summary.current.membersCount;\n    UD = parseInt((summary.lastUDBlock.dividend * Math.pow(10, summary.lastUDBlock.unitbase) + Math.pow(summary.parameters.c, 2) * M / N).toFixed(0));\n  }\n  $scope.current = summary.current;\n  $scope.current_currency = summary.current.currency;\n  $scope.current_number = summary.current.number;\n  $scope.current_membersCount = summary.current.membersCount;\n  $scope.current_medianTime = summary.current.medianTime;\n  $scope.current_powMin = summary.current.powMin;\n  $scope.monetaryMass = parseInt(M / UD) || 0;\n  $scope.server_started = true;\n  $scope.server_stopped = false;\n  $scope.phones = [];\n  $scope.abc = 'abcdef';\n  $scope.newIdentities = 2;\n\n  $(\".dropdown-button\").dropdown({ constrainwidth: false });\n\n  $scope.lastNearPoW = '';\n  $scope.totalPoW = '...';\n  $scope.sync_state = 'home.pulling.state.unkown';\n  $scope.network_percent = 0;\n  $scope.peer_percent = 0;\n  $scope.has_pulled = false;\n  $scope.is_pulling = false;\n  $scope.last_pulling = 0;\n  var start_block = 0;\n\n  $interval(function () {\n    if ($scope.last_pulling) {\n      $scope.sync_state = $scope.is_pulling ? 'home.pulling.state.syncing' : 'home.pulling.state.synced';\n      $scope.sync_time = moment($scope.last_pulling).fromNow();\n    }\n  }, 1000);\n\n  $scope.loadPowData = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var res;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.powSummary();\n\n            case 2:\n              res = _context.sent;\n\n              $scope.pow_total = res.total;\n              $scope.pow_mirror = res.mirror;\n              $scope.pow_waiting = res.waiting;\n\n            case 6:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n\n  ws.on(undefined, function (data) {\n    if (data.type === 'started') {\n      $scope.server_started = true;\n      $scope.server_stopped = false;\n      bindBlockWS(function () {\n        $scope.loadPowData();\n      });\n      UIUtils.toast('general.server.started');\n      $scope.$apply();\n    }\n    if (data.type === 'stopped') {\n      $scope.server_stopped = true;\n      $scope.server_started = false;\n      UIUtils.toast('general.server.stopped');\n      $scope.$apply();\n    }\n    if (data.type === 'pulling') {\n      $scope.is_pulling = true;\n      $scope.has_pulled = true;\n      var event = data.value;\n      if ($scope.last_pulling && event.type === 'start' || !$scope.last_pulling && event.type !== 'end') {\n        $scope.last_pulling = moment();\n      }\n      if (event.type === 'peer') {\n        $scope.network_percent = parseInt((event.data.number + 1) / event.data.length * 100);\n        $scope.peer_percent = 100;\n        start_block = 0;\n      }\n      if (event.type === 'applying') {\n        if (!start_block) {\n          start_block = event.data.number;\n        }\n        var total = event.data.last - start_block;\n        var doneCount = event.data.number - start_block;\n        $scope.peer_percent = parseInt(doneCount / total * 100);\n      }\n      if (event.type === 'end') {\n        $scope.is_pulling = false;\n        $scope.network_percent = 0;\n        $scope.peer_percent = 0;\n        start_block = 0;\n      }\n    }\n    if (data.type === 'pow') {\n      var pow = data.value;\n      if (pow.found) {\n        $scope.pow_waiting = true;\n        $scope.lastNearPoW = '#' + pow.hash;\n        $scope.$apply();\n      } else {\n        $scope.pow_waiting = false;\n        $scope.lastNearPoW = '#' + pow.hash;\n        $scope.$apply();\n      }\n    }\n  });\n\n  function bindBlockWS(cb) {\n    Webmin.wsBlock().on(undefined, function (block) {\n      $scope.current_currency = block.currency;\n      $scope.current_number = block.number;\n      $scope.current_membersCount = block.membersCount;\n      $scope.current_medianTime = block.medianTime;\n      $scope.current_powMin = block.powMin;\n      var M = summary.current.monetaryMass || 0;\n      var UD = summary.parameters.ud0;\n      if (summary.lastUDBlock) {\n        var _N = summary.current.membersCount;\n        UD = parseInt(Math.round(summary.lastUDBlock.dividend * Math.pow(10, summary.lastUDBlock.unitbase) + Math.pow(summary.parameters.c, 2) * M / _N).toFixed(0));\n      }\n      $scope.monetaryMass = parseInt(M / UD) || 0;\n      $scope.$apply();\n      cb && cb();\n    });\n  }\n\n  $scope.reconfigure_network = function () {\n    return co(regeneratorRuntime.mark(function _callee2() {\n      var delay, netinferfaces, conf;\n      return regeneratorRuntime.wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              $scope.reconfiguring = true;\n              delay = Q.delay(1000);\n              _context2.prev = 2;\n              _context2.next = 5;\n              return Webmin.network.interfaces();\n\n            case 5:\n              netinferfaces = _context2.sent;\n              conf = {};\n\n              conf.local_ipv4 = netinferfaces.auto.local.ipv4 || '';\n              conf.local_ipv6 = netinferfaces.auto.local.ipv6 || '';\n              conf.remote_ipv4 = netinferfaces.auto.remote.ipv4 || '';\n              conf.remote_ipv6 = netinferfaces.auto.remote.ipv6 || '';\n              conf.lport = netinferfaces.auto.local.port || 9330;\n              conf.rport = netinferfaces.auto.remote.port || 9330;\n              conf.upnp = netinferfaces.auto.remote.upnp || false;\n              conf.dns = netinferfaces.auto.remote.dns || '';\n              _context2.next = 17;\n              return Webmin.server.netConf({\n                conf: conf\n              });\n\n            case 17:\n              _context2.next = 19;\n              return delay;\n\n            case 19:\n              $scope.should_reconfigure = false;\n              UIUtils.toast('general.network.reconf_ok');\n              $scope.$apply();\n              _context2.next = 30;\n              break;\n\n            case 24:\n              _context2.prev = 24;\n              _context2.t0 = _context2['catch'](2);\n              _context2.next = 28;\n              return delay;\n\n            case 28:\n              $scope.reconfiguring = false;\n              $scope.$apply();\n\n            case 30:\n            case 'end':\n              return _context2.stop();\n          }\n        }\n      }, _callee2, this, [[2, 24]]);\n    }));\n  };\n\n  return co(regeneratorRuntime.mark(function _callee3() {\n    var reachable;\n    return regeneratorRuntime.wrap(function _callee3$(_context3) {\n      while (1) {\n        switch (_context3.prev = _context3.next) {\n          case 0:\n            _context3.next = 2;\n            return $scope.startServer();\n\n          case 2:\n            _context3.prev = 2;\n            _context3.next = 5;\n            return $scope.loadPowData();\n\n          case 5:\n            _context3.next = 7;\n            return Webmin.isNodePubliclyReachable();\n\n          case 7:\n            reachable = _context3.sent;\n\n            if (!reachable || !reachable.success) {\n              $scope.should_reconfigure = true;\n            }\n            _context3.next = 14;\n            break;\n\n          case 11:\n            _context3.prev = 11;\n            _context3.t0 = _context3['catch'](2);\n\n            console.log(_context3.t0);\n\n          case 14:\n          case 'end':\n            return _context3.stop();\n        }\n      }\n    }, _callee3, this, [[2, 11]]);\n  }));\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $http, $state, $location, Webmin, UIUtils) {\n\n  UIUtils.enableTabs();\n\n  $scope.$parent.conf = $scope.$parent.conf || {};\n  $scope.$parent.menu = 'settings';\n\n  $(\".dropdown-button\").dropdown({ constrainwidth: false });\n\n  $scope.fullReset = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.server.services.stopAll();\n\n            case 2:\n              _context.next = 4;\n              return Webmin.server.resetData();\n\n            case 4:\n              $state.go('index');\n\n            case 5:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, Importer, Webmin) {\n\n  $scope.export_link = Webmin.getExportURL();\n\n  Importer($scope);\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $http, $state, $timeout, UIUtils, summary, Webmin) {\n\n  $scope.cpuPower = parseInt(summary.conf.cpu * 100);\n\n  $scope.updateCPUpower = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              $scope.savingCPU = true;\n              _context.next = 3;\n              return Webmin.server.cpuConf({\n                cpu: parseFloat(($scope.cpuPower / 100).toFixed(2))\n              });\n\n            case 3:\n              UIUtils.toast('settings.cpu.saved');\n              $scope.savingCPU = false;\n\n            case 5:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, conf, UIUtils) {\n\n  $scope.$parent.conf = conf;\n\n  UIUtils.enableInputs();\n  $('input').attr('disabled', 'disabled');\n};\n","\"use strict\";\n\nvar co = require('co');\nvar Peer = require('js/lib/entity/peer');\n\nmodule.exports = function ($scope, $http, $state, Webmin, peers) {\n\n  $scope.peers = peers.map(function (peer) {\n    var p = new Peer(peer);\n    return {\n      name: [p.getURL(), \"(\" + p.pubkey.slice(0, 6) + \")\"].join(' '),\n      host_port: [p.getHost(), p.getPort()].join('|')\n    };\n  });\n\n  $scope.resetNode = function () {\n    $('#modalReset').openModal();\n  };\n\n  $scope.resetNodeAndSync = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var sp;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.server.services.stopAll();\n\n            case 2:\n              _context.next = 4;\n              return Webmin.server.resetData();\n\n            case 4:\n              sp = $scope.remote_host.split('|');\n\n              $state.go('sync', {\n                host: sp[0],\n                port: sp[1],\n                sync: true\n              });\n\n            case 6:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $state, Webmin, summary, PubkeyGenerator) {\n\n  $scope.pubkey = summary.pubkey;\n\n  setTimeout(function () {\n    $('select').material_select();\n  }, 500);\n\n  $scope.accept = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.server.keyConf({\n                conf: $scope.$parent.conf\n              });\n\n            case 2:\n              $scope.$parent.conf.idty_entropy = '';\n              $scope.$parent.conf.idty_password = '';\n              $state.reload();\n              $scope.restartServer();\n\n            case 6:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n\n  PubkeyGenerator($scope);\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, ws, UIUtils) {\n\n  UIUtils.enableTabs();\n\n  var co = require('co');\n  var _ = require('underscore');\n\n  // Default values\n  if (!localStorage.getItem('log_error')) localStorage.setItem('log_error', true);\n  if (!localStorage.getItem('log_warn')) localStorage.setItem('log_warn', true);\n  if (!localStorage.getItem('log_info')) localStorage.setItem('log_info', true);\n\n  $scope.logsSize = parseInt(localStorage.getItem('log_size')) || 100;\n  $scope.logs = _.range(0, $scope.logsSize).map(function () {\n    return \"\";\n  });\n  $scope.logsString = \"\";\n  $scope.follow = true;\n  $scope.levels = {\n    error: localStorage.getItem('log_error') == \"true\",\n    warn: localStorage.getItem('log_warn') == \"true\",\n    info: localStorage.getItem('log_info') == \"true\",\n    debug: localStorage.getItem('log_debug') == \"true\",\n    trace: localStorage.getItem('log_trace') == \"true\"\n  };\n\n  _.keys($scope.levels).map(function (level) {\n    $scope.$watch('levels.' + level, function (newValue) {\n      localStorage.setItem('log_' + level, newValue);\n      $scope.logs.splice(0, $scope.logs.length);\n      ws.send();\n    });\n  });\n\n  $scope.$watch('logsSize', function (newValue) {\n    localStorage.setItem('log_size', newValue);\n    addLogs({ value: [] }, true);\n  });\n\n  ws.on('log', addLogs);\n\n  function addLogs(res, autoDigest) {\n\n    if (!$scope.pause) {\n      var newlogs = _.filter(res.value, function (log) {\n        return $scope.levels[log.level];\n      });\n      // Add at max LOGS_FLOW_SIZE new lines\n      newlogs.splice(0, Math.max(0, newlogs.length - $scope.logsSize));\n      // Add just enough space for incoming logs\n      $scope.logs.splice(0, Math.max(0, $scope.logs.length + newlogs.length - $scope.logsSize));\n      for (var i = 0, len = newlogs.length; i < len; i++) {\n        var log = newlogs[i];\n        $scope.logs.push(log);\n      }\n      if (!autoDigest) {\n        $scope.$apply();\n      }\n    }\n\n    if ($scope.follow) {\n      var elem = document.getElementById('logs');\n      if (elem) {\n        elem.scrollTop = elem.scrollHeight;\n      }\n    }\n  }\n\n  return co(regeneratorRuntime.mark(function _callee() {\n    return regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            _context.next = 2;\n            return ws.whenOpened();\n\n          case 2:\n            ws.send();\n\n          case 3:\n          case 'end':\n            return _context.stop();\n        }\n      }\n    }, _callee, this);\n  }));\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, Webmin) {\n\n  $scope.generating = false;\n  $scope.error = '';\n\n  $scope.shareLogs = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var res;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              if ($scope.generating) {\n                _context.next = 14;\n                break;\n              }\n\n              _context.prev = 1;\n\n              $scope.error = '';\n              $scope.generating = true;\n              _context.next = 6;\n              return Webmin.logsExport(2000);\n\n            case 6:\n              res = _context.sent;\n\n              $scope.link = res.link;\n              _context.next = 13;\n              break;\n\n            case 10:\n              _context.prev = 10;\n              _context.t0 = _context['catch'](1);\n\n              $scope.error = _context.t0 && _context.t0.message || _context.t0 || 'Unknown error';\n\n            case 13:\n              $scope.generating = false;\n\n            case 14:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this, [[1, 10]]);\n    }));\n  };\n};\n","\"use strict\";\n\nvar co = require('co');\nvar conf = require('js/lib/conf/conf');\n\nmodule.exports = function ($scope, $http, $state, Webmin, UIUtils, netinterfaces, firstConf) {\n\n  var autoconf = netinterfaces.auto;\n\n  $scope.autoconfig = function () {\n    $scope.$parent.conf.local_ipv4 = autoconf.local.ipv4 || '';\n    $scope.$parent.conf.local_ipv6 = autoconf.local.ipv6 || '';\n    $scope.$parent.conf.remote_ipv4 = autoconf.remote.ipv4 || '';\n    $scope.$parent.conf.remote_ipv6 = autoconf.remote.ipv6 || '';\n    $scope.$parent.conf.lport = autoconf.local.port || $scope.$parent.conf.lport;\n    $scope.$parent.conf.rport = autoconf.remote.port || $scope.$parent.conf.rport;\n    $scope.$parent.conf.upnp = autoconf.remote.upnp || $scope.$parent.conf.upnp;\n    $scope.$parent.conf.dns = autoconf.remote.dns || $scope.$parent.conf.dns;\n\n    if (conf.dev_autoconf && firstConf) {\n      $state.go('configure.create.root');\n    }\n  };\n\n  $scope.local_neti = toArrayOfAddresses(netinterfaces.local);\n  $scope.remote_neti = toArrayOfAddresses(netinterfaces.remote);\n\n  $scope.$parent.conf = $scope.$parent.conf || {};\n  $scope.$parent.conf.local_ipv4 = netinterfaces.conf.local.ipv4;\n  $scope.$parent.conf.local_ipv6 = netinterfaces.conf.local.ipv6;\n  $scope.$parent.conf.remote_ipv4 = netinterfaces.conf.remote.ipv4;\n  $scope.$parent.conf.remote_ipv6 = netinterfaces.conf.remote.ipv6;\n  $scope.$parent.conf.lport = netinterfaces.conf.local.port;\n  $scope.$parent.conf.rport = netinterfaces.conf.remote.port;\n  $scope.$parent.conf.upnp = netinterfaces.conf.remote.upnp;\n  $scope.$parent.conf.dns = netinterfaces.conf.remote.dns;\n\n  UIUtils.enableInputs();\n\n  if (firstConf) {\n    $scope.$parent.conf.lport = conf.default_port;\n    $scope.$parent.conf.rport = conf.default_port;\n    // Trigger autoconfig\n    $scope.autoconfig();\n  }\n\n  $scope.saveConf = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              $scope.$parent.conf.remote_ipv6 = $scope.$parent.conf.local_ipv6;\n              _context.next = 3;\n              return Webmin.server.netConf({\n                conf: $scope.$parent.conf\n              });\n\n            case 3:\n              UIUtils.toast('settings.network.saved');\n\n            case 4:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n};\n\nfunction toArrayOfAddresses(netiScope) {\n  return netiScope.reduce(function (arr, neti) {\n    return arr.concat(neti.addresses.map(function (addr) {\n      return {\n        name: [neti.name, addr.address].join(' '),\n        addr: addr.address,\n        family: addr.family\n      };\n    }));\n  }, []);\n}\n","'use strict';\n\nmodule.exports = function () {\n  require('./services/webmin')(angular);\n\n  var duniterApp = angular.module('duniterUIApp', ['ui.router', 'homeControllers', 'pascalprecht.translate']);\n\n  duniterApp.config(['$compileProvider', function ($compileProvider) {\n    return $compileProvider.aHrefSanitizationWhitelist(/^\\s*(https?|data):/);\n  }]);\n\n  require('./lib/conf/translate')(duniterApp);\n  require('./lib/conf/routes')(duniterApp);\n  require('js/services/datetime')(duniterApp);\n  require('js/services/ui_utils')(duniterApp);\n  require('js/services/graphs')(duniterApp);\n  require('js/services/pubkeyGenerator')(duniterApp);\n  require('js/services/importer')(duniterApp);\n  require('js/services/base58')(duniterApp);\n\n  window.duniterChildCallback = function (gui) {\n    window.gui = gui;\n  };\n\n  window.onresize = function () {\n    window.onResize && window.onResize(window);\n  };\n\n  window.openWindow = function openWindow(url, options, callback) {\n    if (window.gui) {\n      // Duniter Desktop\n      window.gui.Window.open(url, options, callback);\n    } else {\n      // Browser\n      var innerHeight = options.height || 375;\n      var innerWidth = options.width || 500;\n      window.open(url, '_blank ', ['top=' + (window.screenTop + (options.top || 200)), 'left=' + (window.screenLeft + (options.left || 200)), 'height=' + (innerHeight + 8), 'width=' + (innerWidth + 16), 'menubar=no', 'status=no'].join(','));\n    }\n  };\n\n  window.openNewTab = function openWindow(url, options, callback) {\n    if (window.gui) {\n      // Duniter Desktop\n      window.gui.Window.open(url, options, callback);\n    } else {\n      // Browser\n      window.open(url, '_blank ');\n    }\n  };\n\n  window.openExternal = function openExternal(url) {\n    if (window.gui) {\n      window.gui.Shell.openExternal(url);\n    } else {\n      window.open(url, '_blank');\n    }\n  };\n\n  var homeControllers = angular.module('homeControllers', ['duniter.services.webmin', 'ngFileUpload']);\n\n  homeControllers.controller('IndexController', require('./controllers/IndexController'));\n  homeControllers.controller('AboutController', require('./controllers/AboutController'));\n  homeControllers.controller('IdentityController', require('./controllers/init/create/IdentityController'));\n  homeControllers.controller('ParametersController', require('./controllers/init/create/ParametersController'));\n  homeControllers.controller('RootBlockController', require('./controllers/init/create/RootBlockController'));\n  homeControllers.controller('SyncController', require('./controllers/init/sync/SyncController'));\n  homeControllers.controller('MainController', require('./controllers/main/MainController'));\n  homeControllers.controller('HomeController', require('./controllers/main/home/HomeController'));\n  homeControllers.controller('OverviewController', require('./controllers/main/home/tabs/OverviewController'));\n  homeControllers.controller('HomeNetworkController', require('./controllers/main/home/tabs/HomeNetworkController'));\n  homeControllers.controller('LogsController', require('./controllers/main/settings/tabs/LogsController'));\n  homeControllers.controller('LogsSettingsController', require('./controllers/main/settings/tabs/LogsSettingsController'));\n  homeControllers.controller('NetworkController', require('./controllers/main/settings/tabs/NetworkController'));\n  homeControllers.controller('SettingsController', require('./controllers/main/settings/SettingsController'));\n  homeControllers.controller('DataController', require('./controllers/main/settings/tabs/DataController'));\n  homeControllers.controller('BackupController', require('./controllers/main/settings/tabs/BackupController'));\n  homeControllers.controller('CPUController', require('./controllers/main/settings/tabs/CPUController'));\n  homeControllers.controller('CurrencyController', require('./controllers/main/settings/tabs/CurrencyController'));\n  homeControllers.controller('KeyController', require('./controllers/main/settings/tabs/KeyController'));\n  homeControllers.controller('GraphsController', require('./controllers/main/graphs/GraphsController'));\n  homeControllers.controller('GraphsBlockchainController', require('./controllers/main/graphs/GraphsBlockchainController'));\n};\n","\"use strict\";\n\nmodule.exports = {\n\n  init: function init() {\n\n    // Hack since Node v5\n    try {\n      window.jade = require('jade' + '/' + 'runtime');\n    } catch (e) {}\n\n    console.log('Configuring Angular app...');\n\n    require('./app.config')();\n\n    console.log('App initialized.');\n  }\n};\n","\"use strict\";\n\nmodule.exports = {\n  server: \"\", // Empty server will use the browser current host\n  port: \"\", // Empty port will use the browser current port\n  default_port: 9220,\n  dev_autoconf: false,\n  api_timeout: 10000 // 10 sec timeout\n};\n","module.exports = {\n  \"top.menu.overview\": \"Home\",\n  \"top.menu.data\": \"Explore\",\n  \"top.menu.settings\": \"Settings\",\n  \"top.menu.wallet\": \"Wallet\",\n  \"general.server.started\": \"Server started\",\n  \"general.server.stopped\": \"Server stopped\",\n  \"general.choose_option\": \"Choose your option\",\n  \"general.network.reconf_ok\": \"Reconfiguration success\",\n  \"global.button.validate\": \"Validate\",\n  \"global.button.start\": \"Start\",\n  \"err.unknown\": \"Unknown error\",\n  \"err.connection\": \"Could not connect to node\",\n  \"err.back_index\": \"Get back to previous screen\",\n  \"err.sync.interrupted\": \"Sync interrupted because the following error occured:\",\n  \"index.message.loading\": \"Loading...\",\n  \"crypto.secret_key\": \"Secret key\",\n  \"index.message.current_block\": \"Current block {{ number }}\",\n  \"configuration.init.choose.title\": \"Initialization\",\n  \"configuration.init.choose.message\": \"Your software has to be initialized. You may either connect to an existing one or restore a backup file.\",\n  \"configuration.init.choose.create\": \"Create a new currency\",\n  \"configuration.init.choose.connect\": \"Connect to an existing currency\",\n  \"configuration.init.choose.import\": \"Import from a backup file\",\n  \"configuration.create_currency.cancel\": \"Cancel & go home\",\n  \"configuration.create_uid.title\": \"Your identity\",\n  \"configuration.create_uid.message\": \"As a first step, you need to define your personal, unique identity.<br/>The following informations will be <strong>definitive</strong> for this currency: please choose them carefully.\",\n  \"configuration.create_uid.uid.tooltip\": \"The name you will be known as.\",\n  \"configuration.create_uid.entropy.tooltip\": \"An entropy source to make your key unique: an e-mail, a phone n°, ...\",\n  \"configuration.create_uid.password.tooltip\": \"A secret password to protect your key.\",\n  \"configuration.create_uid.create_button\": \"Continue\",\n  \"configuration.create_uid.preview_button\": \"Preview pubkey\",\n  \"configuration.create_uid.nrp_algo_choose\": \"NRP algorithm\",\n  \"configuration.create_uid.nrp_algo_choose_1\": \"N = 4096 ; r = 16 ; p = 1\",\n  \"configuration.create_uid.modal_title\": \"Identity confirmation\",\n  \"configuration.create_uid.modal_message\": \"This identity will be definitive for this currency: you will be known by your User ID and will be able to access your account using your Secret Key and Password values.\",\n  \"configuration.create_uid.modal_agree\": \"Agree\",\n  \"configuration.create_uid.modal_disagree\": \"Disagree\",\n  \"configuration.create_uid.modal_preview_title\": \"Preview of pubkey\",\n  \"configuration.create_uid.modal_preview_ok\": \"OK\",\n  \"configuration.create_network.title\": \"Network\",\n  \"configuration.create_network.message\": \"uCoin is a P2P software and needs bidirectionnal access to the network. Please chose carefully the following parameters.\",\n  \"configuration.create_network.none\": \"None\",\n  \"configuration.create_network.ipv4.title\": \"IPv4\",\n  \"configuration.create_network.ipv6.title\": \"IPv6\",\n  \"configuration.create_network.ipv4.message\": \"For compatibilty reasons, you may prefer to use classic IPv4 interfaces. The configuration is more complicated.\",\n  \"configuration.create_network.local_ipv4\": \"Private (computer)\",\n  \"configuration.create_network.remote_ipv4\": \"Public (box/router)\",\n  \"configuration.create_network.local_ipv6\": \"IPv6\",\n  \"configuration.create_network.lport\": \"Local port\",\n  \"configuration.create_network.rport\": \"Remote port\",\n  \"configuration.create_network.port.title\": \"Ports\",\n  \"configuration.create_network.ipv6.message\": \"IPv6 gives your computer a unique, direct address to your node over the Internet. This is the <b>recommended way</b> to connect your node to the network.\",\n  \"configuration.create_network.port.message\": \"Wether you use IPv6 or IPv4, Duniter node will use this port number for connection to the network. If you use IPv6, local and remote port should equal each other.\",\n  \"configuration.create_network.dns.title\": \"Domain name\",\n  \"configuration.create_network.dns\": \"Domain name\",\n  \"configuration.create_network.dns.message\": \"IPv6 (AAAA) and IPv4 (A) DNS records will be used.\",\n  \"configuration.create_network.upnp\": \"Use UPnP\",\n  \"configuration.create_network.button.validate\": \"Continue\",\n  \"configuration.create_network.button.autoconf\": \"Automatic configuration\",\n  \"configuration.create_parameters.title\": \"Currency\",\n  \"configuration.create_parameters.message\": \"Initial parameters of the currency. It should be carefully chosen, as these parameters never change once the currency is started.\",\n  \"configuration.create_parameters.currency.title\": \"Money units\",\n  \"configuration.create_parameters.currency.message\": \"Give a name to your currency. The 3 following parameters configure the way new money units are created.\",\n  \"configuration.create_parameters.currency\": \"Currency name\",\n  \"configuration.create_parameters.c\": \"c\",\n  \"configuration.create_parameters.dt\": \"UD period\",\n  \"configuration.create_parameters.ud0\": \"UD(0)\",\n  \"configuration.create_parameters.button.validate\": \"Continue\",\n  \"configuration.create_parameters.wot.title\": \"Web of Trust\",\n  \"configuration.create_parameters.wot.message\": \"The following parameters deal with identities and their links gathered in the Web of Trust concept.\",\n  \"configuration.create_parameters.sigStock\": \"Max cert stock\",\n  \"configuration.create_parameters.sigPeriod\": \"Delay between 2 certs\",\n  \"configuration.create_parameters.sigValidity\": \"Cert expiry delay\",\n  \"configuration.create_parameters.msValidity\": \"Membership expiry delay\",\n  \"configuration.create_parameters.sigQty\": \"Min required certs\",\n  \"configuration.create_parameters.sigWindow\": \"Cert time window\",\n  \"configuration.create_parameters.stepMax\": \"Max distance\",\n  \"configuration.create_parameters.xpercent\": \"Percent of distance\",\n  \"configuration.create_parameters.blockchain.title\": \"Blockchain\",\n  \"configuration.create_parameters.blockchain.message\": \"The technical support of money and identities is the blockchain. It also has some parameters driving its behavior.\",\n  \"configuration.create_parameters.medianTimeBlocks\": \"Blocks count\",\n  \"configuration.create_parameters.avgGenTime\": \"Block gen. duration\",\n  \"configuration.create_parameters.dtDiffEval\": \"Blocks count for diff.\",\n  \"configuration.create_parameters.blocksRot\": \"Personal diff. blocks\",\n  \"configuration.create_parameters.percentRot\": \"Personal diff. rotation\",\n  \"configuration.create_root.title\": \"Root block creation\",\n  \"configuration.create_root.message\": \"This is the final step to create the new currency! The root block or <i>genesis</i> will include the first members and define the currency parameters. Once generated and submitted, the blockchain will be started.\",\n  \"configuration.create_root.button.start\": \"Start HTTP\",\n  \"configuration.create_root.button.stop\": \"Stop HTTP\",\n  \"configuration.create_root.button.generate\": \"Give a try\",\n  \"configuration.create_root.need_a_try\": \"You need to generate a first block with the « Give a try » button. Start HTTP server to do so.\",\n  \"configuration.create_root.button.accept_and_send\": \"Accept this block and start currency\",\n  \"configuration.create_root.button.cancel\": \"Cancel creation and go to home screen\",\n  \"configuration.create_root.host_listening\": \"Host listening at:\",\n  \"configuration.create_uid.pubkey_preview\": \"Public key preview\",\n  \"home.current.number\": \"Current block #\",\n  \"home.current.membersCount\": \"Members count\",\n  \"home.current.medianTime\": \"Median time\",\n  \"home.current.powMin\": \"Common difficulty level\",\n  \"home.current.mmass\": \"Monetary mass\",\n  \"home.pulling.network\": \"Network\",\n  \"home.pulling.peer\": \"Peer\",\n  \"home.pulling.state.unkown\": \"Next sync in few minutes\",\n  \"home.pulling.state.synced\": \"Synced\",\n  \"home.pulling.state.syncing\": \"Syncing...\",\n  \"home.pow.unit\": \"blocks made by this key\",\n  \"home.pow.is_mirror\": \"This node is a mirror\",\n  \"home.pow.is_waiting\": \"Waiting for better proof conditions\",\n  \"home.tabs.overview\": \"Overview\",\n  \"home.tabs.overview.should_reconfigure\": \"Your configuration has changed and your node is no more reachable from the network. You should reconfigure it to have a functional node. If this message appears again, you should manually configure the network settings. Often, selecting only IPv6 interface (disabling IPv4) solves the problem.\",\n  \"home.tabs.network\": \"Peers\",\n  \"home.tabs.network.button.update\": \"Check peers again\",\n  \"home.tabs.logs\": \"Logs\",\n  \"home.tabs.logs.follow.logs\": \"Follow logs\",\n  \"home.tabs.logs.pause.logs\": \"Pause logs\",\n  \"home.tabs.logs.level.error\": \"Error\",\n  \"home.tabs.logs.level.warn\": \"Warning\",\n  \"home.tabs.logs.level.info\": \"Info\",\n  \"home.tabs.logs.level.debug\": \"Debug\",\n  \"home.tabs.logs.level.trace\": \"Trace\",\n  \"sync.title\": \"Synchronize\",\n  \"sync.message\": \"Your node will be synchronized with an existing currency: just enter technical details about a node to sync with it.\",\n  \"sync.host\": \"Host\",\n  \"sync.port\": \"Port\",\n  \"sync.check\": \"Check node\",\n  \"sync.start\": \"Synchronize with this node\",\n  \"sync.failed\": \"Synchronization failed.\",\n  \"sync.mode.simplified\": \"Simplified mode\",\n  \"sync.mode.manual\": \"Manual mode\",\n  \"sync.simplified.choose\": \"Node to connect to\",\n  \"sync.simplified.default_option\": \"Please select a node to continue\",\n  \"sync.simplified.currency\": \"Currency\",\n  \"sync.simplified.main_mirror\": \"(main mirror)\",\n  \"sync.simplified.official_mirror\": \"(other official mirror)\",\n  \"sync.ready.node.part1\": \"This node is available!\",\n  \"sync.ready.node.part2\": \"Click on the green button to proceed.\",\n  \"sync.started.node\": \"Synchronization started on node:\",\n  \"sync.error.unreachable.try.another.node\": \"This node is not available. Please select another one.\",\n  \"home.menu.server.stop\": \"Stop server\",\n  \"home.menu.server.start\": \"Start server\",\n  \"home.menu.server.restart\": \"Restart server\",\n  \"home.state\": \"Server:\",\n  \"home.state.started\": \"STARTED\",\n  \"home.state.stopped\": \"STOPPED\",\n  \"settings.tabs.logs\": \"Logs\",\n  \"settings.tabs.data\": \"Data\",\n  \"settings.tabs.backup\": \"Backup\",\n  \"settings.tabs.identity\": \"Crypto\",\n  \"settings.tabs.network\": \"Network\",\n  \"settings.tabs.currency\": \"Currency\",\n  \"settings.tabs.cpu\": \"CPU\",\n  \"settings.data.reset.title\": \"Reset this node\",\n  \"settings.data.reset.message\": \"If you desire to reset this node's data and sync it again with the network, please select a node to sync against and validate.\",\n  \"settings.data.reset.warning\": \"This process <strong>will not</strong> reset the node identity and network settings, which will be reused.\",\n  \"settings.data.reset.peer.none_option\": \"Select a node\",\n  \"settings.data.reset.peer.label\": \"Synchronization peer\",\n  \"settings.data.reset.button\": \"Full reset of the node\",\n  \"settings.data.reset_sync.button\": \"Reset data and start sync\",\n  \"settings.logs.title\": \"Logs\",\n  \"settings.logs.consult.message\": \"Your node continually generates information messages in a log file. This information may help you understand what your node <i>is doing</i> or what it <i>has done</i> few times ago.\",\n  \"settings.logs.consult.button\": \"View real-time logs\",\n  \"settings.logs.share.message\": \"You may want to <b>share your logs</b> with other people, sometimes to get help or to add informations in a bug tracker. Clicking on below button will extract the last 2000 lines of your logs and push it on the web, returning you a link to be shared with whoever you want.\",\n  \"settings.logs.share.button\": \"Create a web link to your logs\",\n  \"settings.logs.share.generating\": \"Generating your link...\",\n  \"settings.logs.share.error\": \"An error occurred during the generation of your link:\",\n  \"settings.data.backup.title\": \"Backup\",\n  \"settings.data.backup.message\": \"You can create backups of your node's data and restore them using the buttons below.\",\n  \"settings.data.backup.warning\": \"<b>Export</b> will only backup your node's data, which <i>excludes your secret key and configuration details</i>.<br><b>Import</b> will reset your node's data by applying the backup. Your secret keys and configuration remains untouched.\",\n  \"settings.data.backup.button.export\": \"Create a data backup\",\n  \"settings.data.backup.button.import\": \"Import a data backup\",\n  \"settings.data.backup.importing\": \"Importing data...\",\n  \"settings.data.backup.imported\": \"Import successfull!\",\n  \"settings.network.button.validate\": \"Save and apply network settings\",\n  \"settings.network.saved\": \"Configuration saved and applied successfully\",\n  \"settings.key.title\": \"Public key of this node:\",\n  \"settings.key.button.validate\": \"Save and use this key\",\n  \"settings.key.button.change\": \"Change keyring\",\n  \"settings.key.pubkey.description\": \"This public key is the public part of your keyring, which is composed of a public key and a private key. This public key is shared with all the peers of the network and users of the currency, while your private key is secretely kept and used by this node to process operations on the network.\",\n  \"settings.data.modal_title\": \"Confirm full reset\",\n  \"settings.data.modal_message\": \"This action will completely reset the data of your node and redirect you to initial configuration screen. Do you confirm?\",\n  \"settings.data.modal_disagree\": \"No, cancel this\",\n  \"settings.data.modal_agree\": \"Yes, process the reset\",\n  \"settings.data.reset.experimental\": \"This functionality is still considered experimental. If you encounters strange behaviors, please stop the software and reset manually your node by removing all the files BUT conf.json under ~/.config/ucoin/ucoin_default, and restart the software.\",\n  \"settings.cpu.title\": \"CPU settings\",\n  \"settings.cpu.message\": \"You can adjust the CPU power dedicated to proof-of-work computation. The higher the value, the faster is your node, the higher the chances you have to compute a block early.\",\n  \"settings.cpu.warning\": \"<b>Up to 8 cores</b> of your machine are dedicated to proof-of-work computation currently. Also, setting CPU to 100% does not mean Duniter will use 100% of each core, but will use as much as possible each of them, as a core is also shared with other programs.\",\n  \"settings.cpu.range\": \"% of CPU power core dedicated to proof-of-work :\",\n  \"settings.cpu.power\": \"Core power:\",\n  \"settings.cpu.saved\": \"CPU settings saved.\",\n  \"graphs.tabs.blockchain\": \"Blockchain\",\n  \"graphs.tabs.currency\": \"Currency\",\n  \"graphs.blockchain.range\": \"Graphs for the last X blocks: (please choose X value)\",\n  \"graphs.blockchain.with.time\": \"Time variations graph\",\n  \"graphs.blockchain.with.speed\": \"Writing speed graph\",\n  \"graphs.blockchain.with.difficulty\": \"Difficulty graph\",\n  \"help.about_duniter\": \"About Duniter\",\n  \"help.about_duniter.title\": \"About\",\n  \"help.about_duniter.subtitle\": \"Duniter Desktop\",\n  \"help.about_duniter.version\": \"Version: \",\n  \"help.about_duniter.forum\": \"Forum\",\n  \"help.about_duniter.chat\": \"Chat\",\n  \"help.new_version_available\": \"New version available\"\n}\n;","'use strict';\n\nvar co = require('co');\nvar _ = require('underscore');\n\nmodule.exports = function (app) {\n\n  app.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {\n\n    // States\n    $stateProvider.state('index', {\n      url: '/',\n      template: require('views/index'),\n      resolve: {\n        ws: function ws(Webmin) {\n          return Webmin.ws();\n        },\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        }\n      },\n      controller: 'IndexController'\n    }).state('about', {\n      url: '/about',\n      template: require('views/about'),\n      resolve: {\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        },\n        version: function version(summary) {\n          return summary && 'v' + summary.version || 'unknown version';\n        }\n      },\n      controller: 'AboutController'\n    }).state('configure', {\n      abstract: true,\n      url: '/configure',\n      template: require('views/init/layout'),\n      controller: function controller($scope) {\n        $scope.conf = {\n          currency: 'super_currency',\n          c: 0.007376575,\n          dt: 30.4375 * 24 * 3600,\n          ud0: 100,\n          stepMax: 3,\n          sigDelay: 3600 * 24 * 365 * 5,\n          sigPeriod: 0, // Instant\n          sigStock: 40,\n          sigWindow: 3600 * 24 * 14, // 2 weeks\n          sigValidity: 3600 * 24 * 365,\n          msValidity: 3600 * 24 * 365,\n          sigQty: 0,\n          xpercent: 0.9,\n          percentRot: 0.66,\n          blocksRot: 20,\n          avgGenTime: 16 * 60,\n          dtDiffEval: 10,\n          medianTimeBlocks: 20\n        };\n      }\n    }).state('configure.choose', {\n      url: '/choose',\n      template: require('views/init/choose'),\n      controller: function controller($scope, Importer) {\n        Importer($scope);\n      }\n    }).state('configure.create', {\n      url: '/create',\n      template: '<div class=\"ui-scrollable\" ui-view=\"\"></div>'\n    }).state('configure.create.uid', {\n      url: '/create/uid',\n      template: require('views/init/create/create_uid'),\n      controller: 'IdentityController'\n    }).state('configure.create.network', {\n      url: '/create/network',\n      template: require('views/init/create/create_network'),\n      resolve: {\n        netinterfaces: function netinterfaces(Webmin) {\n          return resolveNetworkAutoConf(Webmin);\n        },\n        firstConf: function firstConf() {\n          return true;\n        }\n      },\n      controller: 'NetworkController'\n    }).state('configure.create.parameters', {\n      url: '/create/parameters',\n      template: require('views/init/create/create_parameters'),\n      controller: 'ParametersController'\n    }).state('configure.create.root', {\n      url: '/create/root',\n      template: require('views/init/create/create_root'),\n      controller: 'RootBlockController'\n    }).state('sync', {\n      url: '/sync?host=&port=&sync=&to=',\n      template: require('views/init/sync/sync'),\n      controller: 'SyncController'\n    }).state('main', {\n      abstract: true,\n      url: '/main',\n      template: require('views/main/main'),\n      resolve: {\n        ws: function ws(Webmin) {\n          return Webmin.ws();\n        },\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        }\n      },\n      controller: 'MainController'\n    }).state('main.home', {\n      abstract: true,\n      url: '/home',\n      template: require('views/main/home/home'),\n      controller: 'HomeController'\n    }).state('main.home.overview', {\n      url: '/overview',\n      template: require('views/main/home/tabs/overview'),\n      resolve: {\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        }\n      },\n      controller: 'OverviewController'\n    }).state('main.home.network', {\n      url: '/network',\n      template: require('views/main/home/tabs/network'),\n      resolve: {\n        peers: function peers(Webmin) {\n          return co(regeneratorRuntime.mark(function _callee() {\n            return regeneratorRuntime.wrap(function _callee$(_context) {\n              while (1) {\n                switch (_context.prev = _context.next) {\n                  case 0:\n                    return _context.abrupt('return', Webmin.network.peers());\n\n                  case 1:\n                  case 'end':\n                    return _context.stop();\n                }\n              }\n            }, _callee, this);\n          }));\n        }\n      },\n      controller: 'HomeNetworkController'\n    }).state('main.settings', {\n      abstract: true,\n      url: '/settings',\n      template: require('views/main/settings/settings'),\n      resolve: {\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        }\n      },\n      controller: 'SettingsController'\n    }).state('main.settings.data', {\n      url: '/data',\n      template: require('views/main/settings/tabs/data'),\n      resolve: {\n        peers: function peers(Webmin) {\n          return co(regeneratorRuntime.mark(function _callee2() {\n            var self, res;\n            return regeneratorRuntime.wrap(function _callee2$(_context2) {\n              while (1) {\n                switch (_context2.prev = _context2.next) {\n                  case 0:\n                    _context2.prev = 0;\n                    _context2.next = 3;\n                    return Webmin.network.selfPeer();\n\n                  case 3:\n                    self = _context2.sent;\n                    _context2.next = 6;\n                    return Webmin.network.peers();\n\n                  case 6:\n                    res = _context2.sent;\n                    return _context2.abrupt('return', _.filter(res.peers, function (p) {\n                      return p.pubkey != self.pubkey && p.status == 'UP';\n                    }));\n\n                  case 10:\n                    _context2.prev = 10;\n                    _context2.t0 = _context2['catch'](0);\n\n                    console.error(_context2.t0);\n                    return _context2.abrupt('return', []);\n\n                  case 14:\n                  case 'end':\n                    return _context2.stop();\n                }\n              }\n            }, _callee2, this, [[0, 10]]);\n          }));\n        }\n      },\n      controller: 'DataController'\n    }).state('main.settings.logs', {\n      url: '/logs',\n      template: require('views/main/settings/tabs/logs'),\n      controller: 'LogsSettingsController'\n    }).state('main.settings.backup', {\n      url: '/backup',\n      template: require('views/main/settings/tabs/backup'),\n      controller: 'BackupController'\n    }).state('main.settings.cpu', {\n      url: '/cpu',\n      template: require('views/main/settings/tabs/cpu'),\n      resolve: {\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        }\n      },\n      controller: 'CPUController'\n    }).state('main.settings.crypto', {\n      url: '/crypto',\n      template: require('views/main/settings/tabs/crypto'),\n      controller: 'KeyController'\n    }).state('main.settings.network', {\n      url: '/network',\n      resolve: {\n        netinterfaces: function netinterfaces(Webmin) {\n          return resolveNetworkAutoConf(Webmin);\n        },\n        firstConf: function firstConf() {\n          return false;\n        }\n      },\n      template: require('views/main/settings/tabs/network'),\n      controller: 'NetworkController'\n    }).state('main.settings.currency', {\n      url: '/currency',\n      resolve: {\n        conf: function conf(summary) {\n          return co(regeneratorRuntime.mark(function _callee3() {\n            return regeneratorRuntime.wrap(function _callee3$(_context3) {\n              while (1) {\n                switch (_context3.prev = _context3.next) {\n                  case 0:\n                    return _context3.abrupt('return', summary.parameters);\n\n                  case 1:\n                  case 'end':\n                    return _context3.stop();\n                }\n              }\n            }, _callee3, this);\n          }));\n        }\n      },\n      template: require('views/main/settings/tabs/currency'),\n      controller: 'CurrencyController'\n    }).state('main.graphs', {\n      abstract: true,\n      url: '/graphs',\n      template: require('views/main/graphs/graphs'),\n      controller: 'GraphsController'\n    }).state('main.graphs.blockchain', {\n      url: '/blockchain',\n      template: require('views/main/graphs/blockchain'),\n      controller: 'GraphsBlockchainController'\n    }).\n\n    //state('graphs.crypto', {\n    //  url: '/crypto',\n    //  template: require('views/graphs/crypto'),\n    //  controller: 'KeyController'\n    //}).\n    //\n    //state('graphs.network', {\n    //  url: '/network',\n    //  resolve: {\n    //    netinterfaces: (Webmin) => resolveNetworkAutoConf(Webmin),\n    //    firstConf: () => false\n    //  },\n    //  template: require('views/graphs/network'),\n    //  controller: 'NetworkController'\n    //}).\n    //\n    //state('graphs.currency', {\n    //  url: '/currency',\n    //  resolve: {\n    //    conf: (bmapi) => co(function *() {\n    //      return bmapi.currency.parameters();\n    //    })\n    //  },\n    //  template: require('views/graphs/currency'),\n    //  controller: 'CurrencyController'\n    //}).\n\n    state('logs', {\n      url: '/logs',\n      template: require('views/logs'),\n      resolve: {\n        ws: function ws(Webmin) {\n          return Webmin.ws();\n        }\n      },\n      controller: 'LogsController'\n    }).state('error', {\n      url: '/error\\?err',\n      template: require('views/error'),\n      controller: function controller($scope, $stateParams) {\n        return $scope.errorMsg = $stateParams.err || 'err.unknown';\n      }\n    });\n\n    // Default route\n    $urlRouterProvider.otherwise('/');\n  }]);\n\n  app.run(function ($rootScope, $state) {\n    $rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) {\n      console.error(error);\n      $state.go('error', { err: error.message });\n    });\n  });\n\n  function resolveNetworkAutoConf(Webmin) {\n    return co(regeneratorRuntime.mark(function _callee4() {\n      var netinterfaces;\n      return regeneratorRuntime.wrap(function _callee4$(_context4) {\n        while (1) {\n          switch (_context4.prev = _context4.next) {\n            case 0:\n              _context4.next = 2;\n              return Webmin.network.interfaces();\n\n            case 2:\n              netinterfaces = _context4.sent;\n              return _context4.abrupt('return', netinterfaces || { local: {}, remote: {} });\n\n            case 4:\n            case 'end':\n              return _context4.stop();\n          }\n        }\n      }, _callee4, this);\n    }));\n  }\n};\n","'use strict';\n\nmodule.exports = function (app) {\n\n  app.config(['$translateProvider', function ($translateProvider) {\n\n    $translateProvider.translations('en', require('./i18n/en'));\n\n    // Default language\n    $translateProvider.preferredLanguage('en');\n\n    // Other parameters\n    $translateProvider.useSanitizeValueStrategy('');\n  }]);\n};\n","\"use strict\";\n\nmodule.exports = function Peer(json) {\n\n  var that = this;\n\n  var BMA_REGEXP = /^BASIC_MERKLED_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))$/;\n\n  Object.keys(json).forEach(function (key) {\n    that[key] = json[key];\n  });\n\n  that.endpoints = that.endpoints || [];\n  that.statusTS = that.statusTS || 0;\n\n  that.keyID = function () {\n    return that.pubkey && that.pubkey.length > 10 ? that.pubkey.substring(0, 10) : \"Unknown\";\n  };\n\n  that.copyValues = function (to) {\n    var obj = that;\n    [\"version\", \"currency\", \"pub\", \"endpoints\", \"hash\", \"status\", \"statusTS\", \"block\", \"signature\"].forEach(function (key) {\n      to[key] = obj[key];\n    });\n  };\n\n  that.copyValuesFrom = function (from) {\n    var obj = that;\n    [\"version\", \"currency\", \"pub\", \"endpoints\", \"block\", \"signature\"].forEach(function (key) {\n      obj[key] = from[key];\n    });\n  };\n\n  that.json = function () {\n    var obj = that;\n    var json = {};\n    [\"version\", \"currency\", \"endpoints\", \"status\", \"block\", \"signature\"].forEach(function (key) {\n      json[key] = obj[key];\n    });\n    json.raw = that.getRaw();\n    json.pubkey = that.pubkey;\n    return json;\n  };\n\n  that.getBMA = function () {\n    var bma = null;\n    that.endpoints.forEach(function (ep) {\n      var matches = !bma && ep.match(BMA_REGEXP);\n      if (matches) {\n        bma = {\n          \"dns\": matches[2] || '',\n          \"ipv4\": matches[4] || '',\n          \"ipv6\": matches[6] || '',\n          \"port\": matches[8] || 9101\n        };\n      }\n    });\n    return bma || {};\n  };\n\n  that.getDns = function () {\n    var bma = that.getBMA();\n    return bma.dns ? bma.dns : null;\n  };\n\n  that.getIPv4 = function () {\n    var bma = that.getBMA();\n    return bma.ipv4 ? bma.ipv4 : null;\n  };\n\n  that.getIPv6 = function () {\n    var bma = that.getBMA();\n    return bma.ipv6 ? bma.ipv6 : null;\n  };\n\n  that.getPort = function () {\n    var bma = that.getBMA();\n    return bma.port ? bma.port : null;\n  };\n\n  that.getHost = function () {\n    var bma = that.getBMA();\n    var host = that.hasValid4(bma) ? bma.ipv4 : bma.dns ? bma.dns : bma.ipv6 ? '[' + bma.ipv6 + ']' : '';\n    return host;\n  };\n\n  that.getURL = function () {\n    var bma = that.getBMA();\n    var base = '';\n    if (bma.dns) {\n      base = bma.dns;\n    } else if (that.hasValid4(bma)) {\n      base = bma.ipv4;\n    } else if (bma.ipv6) {\n      base = '[' + bma.ipv6 + ']';\n    }\n    if (bma.port) base += ':' + bma.port;\n    return base;\n  };\n\n  that.hasValid4 = function (bma) {\n    return bma.ipv4 && !bma.ipv4.match(/^127.0/) && !bma.ipv4.match(/^192.168/) ? true : false;\n  };\n\n  that.getNamedURL = function () {\n    var bma = that.getBMA();\n    var base = that.hasValid4(bma) ? bma.ipv4 : bma.dns ? bma.dns : bma.ipv6 ? '[' + bma.ipv6 + ']' : '';\n    if (bma.port) base += ':' + bma.port;\n    return base;\n  };\n\n  that.isReachable = function () {\n    return that.getURL() ? true : false;\n  };\n};\n","\"use strict\";\n\nmodule.exports = function mobilecheck() {\n  var check = false;\n  (function (a) {\n    if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true;\n  })(navigator.userAgent || navigator.vendor || window.opera);\n  return check;\n};\n","'use strict';\n\nmodule.exports = function (app) {\n\n  var Base58 = {};\n\n  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n  Base58.alphabetMap = {};\n\n  for (var i = 0; i < Base58.alphabet.length; i++) {\n    Base58.alphabetMap[Base58.alphabet.charAt(i)] = i;\n  }\n\n  Base58.encode = function (buffer) {\n    if (buffer.length === 0) return '';\n\n    var i = void 0,\n        j = void 0,\n        digits = [0];\n    for (i = 0; i < buffer.length; i++) {\n      for (j = 0; j < digits.length; j++) {\n        digits[j] <<= 8;\n      }digits[digits.length - 1] += buffer[i];\n\n      var carry = 0;\n      for (j = digits.length - 1; j >= 0; j--) {\n        digits[j] += carry;\n        carry = digits[j] / 58 | 0;\n        digits[j] %= 58;\n      }\n\n      while (carry) {\n        digits.unshift(carry);\n        carry = digits[0] / 58 | 0;\n        digits[0] %= 58;\n      }\n    }\n\n    // deal with leading zeros\n    for (i = 0; i < buffer.length - 1 && buffer[i] == 0; i++) {\n      digits.unshift(0);\n    }return digits.map(function (digit) {\n      return Base58.alphabet[digit];\n    }).join('');\n  };\n\n  Base58.decode = function (string) {\n    if (string.length === 0) return new Uint8Array();\n\n    var input = string.split('').map(function (c) {\n      return Base58.alphabetMap[c];\n    });\n\n    var i = void 0,\n        j = void 0,\n        bytes = [0];\n    for (i = 0; i < input.length; i++) {\n      for (j = 0; j < bytes.length; j++) {\n        bytes[j] *= 58;\n      }bytes[bytes.length - 1] += input[i];\n\n      var carry = 0;\n      for (j = bytes.length - 1; j >= 0; j--) {\n        bytes[j] += carry;\n        carry = bytes[j] >> 8;\n        bytes[j] &= 0xff;\n      }\n\n      while (carry) {\n        bytes.unshift(carry);\n        carry = bytes[0] >> 8;\n        bytes[0] &= 0xff;\n      }\n    }\n\n    // deal with leading zeros\n    for (i = 0; i < input.length - 1 && input[i] == 0; i++) {\n      bytes.unshift(0);\n    }return new Uint8Array(bytes);\n  };\n\n  app.factory('Base58', function () {\n    return {\n      encode: Base58.encode,\n      decode: Base58.decode\n    };\n  });\n};\n","'use strict';\n\nvar _ = require('underscore');\nvar conf = require('../lib/conf/conf');\nvar moment = require('moment');\n\nmodule.exports = function (app) {\n\n  app.filter('mt_date', function () {\n    return function (input) {\n      if (input == null) {\n        return \"\";\n      }\n      return moment(input * 1000).format('YYYY MM DD');\n    };\n  });\n\n  app.filter('mt_time', function () {\n    return function (input) {\n      if (input == null) {\n        return \"\";\n      }\n      return moment(input * 1000).format('HH:mm:ss');\n    };\n  });\n};\n","'use strict';\n\nmodule.exports = function (app) {\n\n  app.factory('Graph', function () {\n    return {\n\n      speedGraph: function speedGraphs(id, offset, speeds, minSpeeds, maxSpeeds, getSeries) {\n        var xValuex = [];\n        for (var i = 0, len = speeds.length; i < len; i++) {\n          xValuex.push(i + offset);\n        }\n        $(id).highcharts({\n          chart: {\n            type: \"area\",\n            zoomType: 'x',\n            events: {\n              load: function load() {\n                getSeries(this.series);\n              }\n            }\n          },\n          title: {\n            text: 'Blocks writing speed'\n          },\n          subtitle: {\n            text: document.ontouchstart === undefined ? 'Click and drag in the plot area to zoom in' : 'Pinch the chart to zoom in'\n          },\n          xAxis: {\n            //categories: xValuex,\n            minRange: 3, // 10 blocks,\n            labels: {\n              formatter: function formatter() {\n                return this.value + offset;\n              }\n            }\n          },\n          yAxis: {\n            //type: 'logarithmic',\n            minorTickInterval: 1,\n            title: {\n              text: 'Blocks per hour (logarithmic scale)'\n            },\n            floor: 0,\n            min: 0\n          },\n          colors: ['#ff0000', '#7cb5ec', '#000000'],\n          legend: {\n            enabled: true\n          },\n          tooltip: {\n            shared: true,\n            crosshairs: true,\n            formatter: blockFormatter(offset)\n          },\n          plotOptions: {\n            area: {\n              fillColor: {\n                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },\n                stops: [[0, Highcharts.getOptions().colors[0]], [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]]\n              },\n              marker: {\n                radius: 2\n              },\n              lineWidth: 1,\n              states: {\n                hover: {\n                  lineWidth: 1\n                }\n              },\n              threshold: null\n            }\n          },\n\n          series: [{\n            type: 'line',\n            name: \"Upper limit\",\n            data: maxSpeeds\n          }, {\n            type: 'area',\n            name: \"Actual speed\",\n            data: speeds\n          }, {\n            type: 'line',\n            name: \"Lower limit\",\n            data: minSpeeds\n          }]\n        });\n      },\n\n      difficultyGraph: function difficultyGraph(id, offset, difficulties) {\n        $(id).highcharts({\n          chart: {\n            type: \"area\",\n            zoomType: 'x'\n          },\n          title: {\n            text: 'Proof-of-Work difficulty by block'\n          },\n          subtitle: {\n            text: document.ontouchstart === undefined ? 'Click and drag in the plot area to zoom in' : 'Pinch the chart to zoom in'\n          },\n          xAxis: {\n            minRange: 10, // 10 blocks,\n            labels: {\n              formatter: function formatter() {\n                return this.value + offset;\n              }\n            }\n          },\n          yAxis: {\n            title: {\n              text: 'Number of zeros'\n            },\n            floor: 0,\n            min: 0\n          },\n          legend: {\n            enabled: true\n          },\n          tooltip: {\n            shared: true,\n            crosshairs: true,\n            formatter: blockFormatter(offset)\n          },\n          plotOptions: {\n            area: {\n              fillColor: {\n                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },\n                stops: [[0, Highcharts.getOptions().colors[0]], [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]]\n              },\n              marker: {\n                radius: 2\n              },\n              lineWidth: 1,\n              states: {\n                hover: {\n                  lineWidth: 1\n                }\n              },\n              threshold: null\n            }\n          },\n\n          series: [{\n            name: 'PoW difficulty',\n            data: difficulties\n          }]\n        });\n      },\n\n      timeGraphs: function timeGraphs(id, offset, timeAccelerations, medianTimeIncrements, speeds, minSpeeds, maxSpeeds) {\n        var timesInc = [];\n        medianTimeIncrements.forEach(function (inc) {\n          timesInc.push(inc == 0 ? 1 : inc);\n        });\n        $(id).highcharts({\n          chart: {\n            // type: \"area\",\n            zoomType: 'x'\n          },\n          title: {\n            text: 'Blockchain time variations'\n          },\n          subtitle: {\n            text: document.ontouchstart === undefined ? 'Click and drag in the plot area to zoom in' : 'Pinch the chart to zoom in'\n          },\n          xAxis: {\n            minRange: 10, // 10 blocks,\n            labels: {\n              formatter: function formatter() {\n                return this.value + offset;\n              }\n            }\n          },\n          yAxis: {\n            //type: 'logarithmic',\n            minorTickInterval: 1,\n            title: {\n              text: 'Number of seconds (logarithmic scale)'\n            }\n          },\n          legend: {\n            enabled: true\n          },\n          tooltip: {\n            shared: true,\n            crosshairs: true,\n            formatter: blockFormatter(offset)\n          },\n          plotOptions: {\n            area: {\n              fillColor: {\n                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },\n                stops: [[0, Highcharts.getOptions().colors[0]], [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]]\n              },\n              marker: {\n                radius: 2\n              },\n              lineWidth: 1,\n              states: {\n                hover: {\n                  lineWidth: 1\n                }\n              },\n              threshold: null\n            }\n          },\n\n          series: [{\n            name: 'Time acceleration',\n            data: timeAccelerations\n          }, {\n            name: \"Median Time variation\",\n            data: timesInc\n          }, {\n            name: \"Too high duration\",\n            data: maxSpeeds\n          }, {\n            name: \"Actual duration\",\n            data: speeds\n          }, {\n            name: \"Too low duration\",\n            data: minSpeeds\n          }]\n        });\n      }\n    };\n  });\n};\n\nfunction blockFormatter(offset) {\n  return function () {\n    var html = '<span style=\"font-size: 10px\">' + (this.x + offset) + '</span><br/>';\n    for (var i = 0, len = this.points.length; i < len; i++) {\n      var point = this.points[i];\n      var series = point.series;\n      html += '<span style=\"color:' + series.color + '\">\\u25CF</span>' + series.name + ': <b>' + point.y + '</b><br/>';\n    }\n    return html;\n  };\n}\n","'use strict';\n\nmodule.exports = function (app) {\n\n  app.factory('Importer', function ($http, $state, $timeout, UIUtils, Upload, Webmin) {\n\n    return function ($scope) {\n\n      $scope.uploadFiles = function (file, errFiles) {\n        $scope.f = file;\n        $scope.errFile = errFiles && errFiles[0];\n        if (file) {\n          UIUtils.toast('settings.data.backup.importing');\n          file.upload = Upload.upload({\n            url: Webmin.getImportURL(),\n            data: { importData: file }\n          });\n\n          file.upload.then(function (response) {\n            $timeout(function () {\n              UIUtils.toast('settings.data.backup.imported');\n              $state.go('main.home.overview');\n              file.result = response.data;\n            });\n          }, function (response) {\n            if (response.status > 0) $scope.errorMsg = response.status + ': ' + response.data;\n          }, function (evt) {\n            file.progress = Math.min(100, parseInt(100.0 * evt.loaded / evt.total));\n          });\n        }\n      };\n    };\n  });\n};\n","'use strict';\n\nmodule.exports = function (app) {\n\n  app.factory('PubkeyGenerator', function ($timeout, Webmin) {\n\n    var co = require('co');\n\n    return function ($scope) {\n\n      var concat = \"\";\n      $scope.pubkey_preview = \"\";\n      var timeout = preview();\n\n      function preview() {\n        return $timeout(function () {\n          if ($scope.$parent) {\n            var salt = $scope.$parent.conf.idty_entropy;\n            var pass = $scope.$parent.conf.idty_password;\n            var newConcat = [salt, pass].join('');\n            if (salt && pass && newConcat != concat) {\n              concat = newConcat;\n              $scope.previewPubkey(concat);\n              timeout = preview();\n            } else {\n              timeout = preview();\n            }\n          }\n        }, 100);\n      }\n\n      $scope.previewPubkey = function () {\n        return co(regeneratorRuntime.mark(function _callee() {\n          var data;\n          return regeneratorRuntime.wrap(function _callee$(_context) {\n            while (1) {\n              switch (_context.prev = _context.next) {\n                case 0:\n                  _context.next = 2;\n                  return Webmin.key.preview({\n                    conf: $scope.$parent.conf\n                  });\n\n                case 2:\n                  data = _context.sent;\n\n                  $scope.pubkey_preview = data.pubkey;\n\n                case 4:\n                case 'end':\n                  return _context.stop();\n              }\n            }\n          }, _callee, this);\n        })).catch(function () {\n          return null;\n        });\n      };\n    };\n  });\n};\n","'use strict';\n\nmodule.exports = function (app) {\n\n  app.factory('UIUtils', function ($q, $translate, $state, $location) {\n    return {\n\n      translate: function translate(msg) {\n        return $q.when($translate(msg));\n      },\n\n      toastRaw: function toastRaw(msg) {\n        return Materialize.toast(msg, 4000);\n      },\n\n      toast: function toast(msg) {\n        return $q.when($translate(msg)).then(function (translated) {\n          return Materialize.toast(translated, 4000);\n        });\n      },\n\n      enableInputs: function enableInputs() {\n        return $('i.prefix, label[value!=\"\"]').addClass('active');\n      },\n\n      enableTabs: function enableTabs() {\n        var jTabs = $('ul.tabs');\n        jTabs.tabs();\n        $('ul.tabs a').click(function (e) {\n          var href = $(e.currentTarget).attr('href');\n          var state = href.slice(1);\n          $state.go(state);\n        });\n\n        var currentID = $location.path().replace(/\\//g, '.').replace(/\\./, '');\n\n        jTabs.tabs('select_tab', currentID);\n      },\n\n      changeTitle: function changeTitle(version) {\n        return document.title = 'Duniter ' + version;\n      }\n    };\n  });\n};\n","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar co = require('co');\nvar _ = require('underscore');\nvar conf = require('../lib/conf/conf');\n\nmodule.exports = function (angular) {\n\n  angular.module('duniter.services.webmin', ['ngResource']).factory('Webmin', function ($http, $q) {\n\n    function httpProtocol() {\n      return window.location.protocol + '//';\n    }\n\n    function wsProtocol() {\n      return window.location.protocol === 'https:' ? 'wss://' : 'ws://';\n    }\n\n    function Webmin(server) {\n\n      function getResource(uri, protocol) {\n        return function (params) {\n          return $q.when(httpGet(uri, params, protocol));\n        };\n      }\n\n      function httpGet(uri, params, protocol) {\n        return Q.Promise(function (resolve, reject) {\n          var config = {\n            timeout: conf.api_timeout\n          },\n              suffix = '',\n              pkeys = [],\n              queryParams = null;\n          if ((typeof params === 'undefined' ? 'undefined' : _typeof(params)) == 'object') {\n            pkeys = _.keys(params);\n            queryParams = {};\n          }\n          pkeys.forEach(function (pkey) {\n            var prevURI = uri;\n            uri = uri.replace(new RegExp(':' + pkey), params[pkey]);\n            if (prevURI == uri) {\n              queryParams[pkey] = params[pkey];\n            }\n          });\n          config.params = queryParams;\n          $http.get((protocol || httpProtocol()) + server + uri + suffix, config).success(function (data, status, headers, config) {\n            resolve(data);\n          }).error(function (data, status, headers, config) {\n            console.log(data);\n            reject(data);\n          });\n        });\n      }\n\n      function postResource(uri) {\n        return function (data, params) {\n          return $q.when(Q.Promise(function (resolve, reject) {\n            var config = {\n              timeout: 4000\n            },\n                suffix = '',\n                pkeys = [],\n                queryParams = null;\n            if ((typeof params === 'undefined' ? 'undefined' : _typeof(params)) == 'object') {\n              pkeys = _.keys(params);\n              queryParams = {};\n            }\n            pkeys.forEach(function (pkey) {\n              var prevURI = uri;\n              uri = uri.replace(new RegExp(':' + pkey), params[pkey]);\n              if (prevURI == uri) {\n                queryParams[pkey] = params[pkey];\n              }\n            });\n            config.params = queryParams;\n            $http.post(httpProtocol() + server + uri + suffix, data, config).success(function (data, status, headers, config) {\n              resolve(data);\n            }).error(function (data, status, headers, config) {\n              reject(data);\n            });\n          }));\n        };\n      }\n\n      var wsMap = {};\n\n      function _ws(uri) {\n        var sock = wsMap[uri] || new WebSocket(uri);\n        wsMap[uri] = sock;\n        sock.onclose = function (e) {\n          console.log('close');\n          console.log(e);\n        };\n        sock.onerror = function (e) {\n          console.log('onerror');\n          console.log(e);\n        };\n        var opened = false,\n            openedCallback = void 0;\n        sock.onopen = function () {\n          opened = true;\n          openedCallback && openedCallback();\n        };\n        var listener = void 0,\n            messageType = void 0;\n        sock.onmessage = function (e) {\n          var res = JSON.parse(e.data);\n          if (res.type == 'log') {\n            for (var i = 0, len = res.value.length; i < len; i++) {\n              var log = res.value[i];\n              // console[log.level](log.msg);\n            }\n          }\n          if (listener && (messageType === undefined || res.type === messageType)) {\n            listener(res);\n          }\n        };\n        return {\n          on: function on(type, callback) {\n            messageType = type;\n            listener = callback;\n          },\n          whenOpened: function whenOpened() {\n            return co(regeneratorRuntime.mark(function _callee() {\n              return regeneratorRuntime.wrap(function _callee$(_context) {\n                while (1) {\n                  switch (_context.prev = _context.next) {\n                    case 0:\n                      if (!opened) {\n                        _context.next = 4;\n                        break;\n                      }\n\n                      return _context.abrupt('return', true);\n\n                    case 4:\n                      _context.next = 6;\n                      return Q.Promise(function (resolve) {\n                        openedCallback = resolve;\n                      });\n\n                    case 6:\n                    case 'end':\n                      return _context.stop();\n                  }\n                }\n              }, _callee, this);\n            }));\n          },\n          send: function send(msg) {\n            return sock.send(msg);\n          }\n        };\n      }\n\n      return {\n        getExportURL: function getExportURL() {\n          return httpProtocol() + server + '/webmin/data/duniter_export';\n        },\n        getImportURL: function getImportURL() {\n          return httpProtocol() + server + '/webmin/data/duniter_import';\n        },\n        isNodePubliclyReachable: getResource('/webmin/server/reachable'),\n        ws: function ws() {\n          return _ws(wsProtocol() + server + '/webmin/ws');\n        },\n        wsBlock: function wsBlock() {\n          return _ws(wsProtocol() + server + '/webmin/ws_block');\n        },\n        wsPeer: function wsPeer() {\n          return _ws(wsProtocol() + server + '/webmin/ws_peer');\n        },\n        summary: getResource('/webmin/summary'),\n        powSummary: getResource('/webmin/summary/pow'),\n        logsExport: function logsExport(nbLines) {\n          return getResource('/webmin/logs/export/' + nbLines)();\n        },\n        blockchain: {\n          blocks: function blocks(opts) {\n            return getResource('/webmin/blockchain/blocks/' + opts.count + '/' + opts.from)();\n          },\n          block_add: postResource('/webmin/blockchain/add')\n        },\n        server: {\n          http: {\n            start: getResource('/webmin/server/http/start'),\n            stop: getResource('/webmin/server/http/stop'),\n            openUPnP: getResource('/webmin/server/http/upnp/open'),\n            regularUPnP: getResource('/webmin/server/http/upnp/regular')\n          },\n          services: {\n            startAll: getResource('/webmin/server/services/start_all'),\n            stopAll: getResource('/webmin/server/services/stop_all')\n          },\n          sendConf: postResource('/webmin/server/send_conf'),\n          netConf: postResource('/webmin/server/net_conf'),\n          keyConf: postResource('/webmin/server/key_conf'),\n          cpuConf: postResource('/webmin/server/cpu_conf'),\n          testSync: postResource('/webmin/server/test_sync'),\n          startSync: postResource('/webmin/server/start_sync'),\n          previewNext: getResource('/webmin/server/preview_next'),\n          autoConfNetwork: getResource('/webmin/server/auto_conf_network'),\n          resetData: getResource('/webmin/server/reset/data'),\n          republishNewSelfPeer: getResource('/webmin/server/republish_selfpeer')\n        },\n        key: {\n          preview: postResource('/webmin/key/preview')\n        },\n        network: {\n          interfaces: getResource('/webmin/network/interfaces'),\n          selfPeer: getResource('/webmin/network/self'),\n          peers: getResource('/webmin/network/peers')\n        },\n        currency: {\n          parameters: getResource('/webmin/currency/parameters')\n        }\n      };\n    }\n    var server = window.location.hostname;\n    var port = window.location.port;\n    var service = Webmin([server, port].join(':'));\n    service.instance = Webmin;\n    return service;\n  });\n};\n"]}
\ No newline at end of file
+{"version":3,"sources":["app/js/controllers/AboutController.js","app/js/controllers/IndexController.js","app/js/controllers/init/create/IdentityController.js","app/js/controllers/init/create/ParametersController.js","app/js/controllers/init/create/RootBlockController.js","app/js/controllers/init/sync/SyncController.js","app/js/controllers/main/MainController.js","app/js/controllers/main/graphs/GraphsBlockchainController.js","app/js/controllers/main/graphs/GraphsController.js","app/js/controllers/main/home/HomeController.js","app/js/controllers/main/home/tabs/HomeNetworkController.js","app/js/controllers/main/home/tabs/OverviewController.js","app/js/controllers/main/settings/SettingsController.js","app/js/controllers/main/settings/tabs/BackupController.js","app/js/controllers/main/settings/tabs/CPUController.js","app/js/controllers/main/settings/tabs/CurrencyController.js","app/js/controllers/main/settings/tabs/DataController.js","app/js/controllers/main/settings/tabs/KeyController.js","app/js/controllers/main/settings/tabs/LogsController.js","app/js/controllers/main/settings/tabs/LogsSettingsController.js","app/js/controllers/main/settings/tabs/ModulesController.js","app/js/controllers/main/settings/tabs/NetworkController.js","app/js/app.config.js","app/js/application.js","app/js/lib/conf/conf.js","app/js/lib/conf/i18n/en.json","app/js/lib/conf/routes.js","app/js/lib/conf/translate.js","app/js/lib/entity/peer.js","app/js/lib/mobileDetector.js","app/js/services/base58.js","app/js/services/datetime.js","app/js/services/graphs.js","app/js/services/importer.js","app/js/services/pubkeyGenerator.js","app/js/services/ui_utils.js","app/js/services/webmin.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3BA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1DA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAzNA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAzLA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3MA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA9JA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtCA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA7PA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtCA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjCA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnDA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAxCA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAzFA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AArDA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA9FA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlFA;AAAA;CCAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtFA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlBA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAzNA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1aA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnHA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAxFA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlPA;AAAA;CCAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlCA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA7DA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA7CA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlPA;AAAA","file":"public/app.js","sourcesContent":["\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, version, UIUtils) {\n\n  $scope.version = version;\n\n  return co(regeneratorRuntime.mark(function _callee() {\n    return regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            _context.next = 2;\n            return UIUtils.translate('help.about_duniter.title');\n\n          case 2:\n            $scope.$parent.title = _context.sent;\n\n          case 3:\n          case 'end':\n            return _context.stop();\n        }\n      }\n    }, _callee, this);\n  }));\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $http, $state, Webmin, summary, UIUtils) {\n\n  UIUtils.changeTitle(summary.version);\n\n  $scope.message = 'index.message.loading';\n  co(regeneratorRuntime.mark(function _callee() {\n    var connected, _summary;\n\n    return regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            connected = false;\n            _context.prev = 1;\n            _context.next = 4;\n            return Webmin.summary();\n\n          case 4:\n            _summary = _context.sent;\n\n            if (!_summary.current) {\n              _context.next = 7;\n              break;\n            }\n\n            return _context.abrupt('return', $state.go('main.home.overview'));\n\n          case 7:\n            return _context.abrupt('return', $state.go('configure.choose'));\n\n          case 10:\n            _context.prev = 10;\n            _context.t0 = _context['catch'](1);\n\n            console.error(connected, _context.t0);\n\n            if (connected) {\n              _context.next = 15;\n              break;\n            }\n\n            return _context.abrupt('return', $state.go('error', { err: 'err.connection' }));\n\n          case 15:\n            return _context.abrupt('return', $state.go('error', { err: _context.t0 }));\n\n          case 16:\n          case 'end':\n            return _context.stop();\n        }\n      }\n    }, _callee, this, [[1, 10]]);\n  }));\n};\n","\"use strict\";\n\nvar conf = require('js/lib/conf/conf');\n\nmodule.exports = function ($scope, $state, PubkeyGenerator) {\n\n  setTimeout(function () {\n    $('select').material_select();\n  }, 500);\n\n  $scope.accept = function () {\n    var modal = $('#modal1');\n    if (modal.css('display') == 'none') {\n      $('#modal1').openModal();\n    }\n  };\n\n  PubkeyGenerator($scope);\n\n  if (conf.dev_autoconf) {\n    $scope.$parent.conf.idty_uid = 'dev_' + ~~(Math.random() * 2147483647);\n    $scope.$parent.conf.idty_entropy = ~~(Math.random() * 2147483647) + \"\";\n    $scope.$parent.conf.idty_password = ~~(Math.random() * 2147483647) + \"\";\n    $state.go('configure.create.network');\n  }\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, UIUtils) {\n\n  UIUtils.enableInputs();\n};\n","\"use strict\";\n\nvar co = require('co');\nvar conf = require('js/lib/conf/conf');\n\nmodule.exports = function ($scope, $http, $state, Webmin) {\n\n  $scope.generated = '';\n  $scope.started = false;\n  $scope.message = 'configuration.create_root.need_a_try';\n\n  $scope.start = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var hosts;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.prev = 0;\n              hosts = [];\n\n              if ($scope.$parent.conf.remote_ipv4) {\n                hosts.push([$scope.$parent.conf.remote_ipv4, $scope.$parent.conf.rport].join(':'));\n              }\n              if ($scope.$parent.conf.remote_ipv6) {\n                hosts.push([\"[\" + $scope.$parent.conf.remote_ipv6 + \"]\", $scope.$parent.conf.rport].join(':'));\n              }\n              $scope.host_listening = hosts.join('\\n');\n              $scope.started = true;\n              _context.next = 8;\n              return Webmin.server.sendConf({\n                conf: $scope.$parent.conf\n              });\n\n            case 8:\n              _context.next = 10;\n              return $scope.try();\n\n            case 10:\n              _context.next = 15;\n              break;\n\n            case 12:\n              _context.prev = 12;\n              _context.t0 = _context['catch'](0);\n\n              $scope.message = _context.t0.message;\n\n            case 15:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this, [[0, 12]]);\n    }));\n  };\n\n  $scope.stop = function () {\n    return co(regeneratorRuntime.mark(function _callee2() {\n      return regeneratorRuntime.wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              $scope.started = false;\n\n            case 1:\n            case 'end':\n              return _context2.stop();\n          }\n        }\n      }, _callee2, this);\n    }));\n  };\n\n  $scope.try = function () {\n    return co(regeneratorRuntime.mark(function _callee3() {\n      return regeneratorRuntime.wrap(function _callee3$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              _context3.prev = 0;\n              _context3.next = 3;\n              return Webmin.server.previewNext();\n\n            case 3:\n              $scope.block = _context3.sent;\n\n              $scope.generated = $scope.block.raw;\n              $scope.message = '';\n              _context3.next = 11;\n              break;\n\n            case 8:\n              _context3.prev = 8;\n              _context3.t0 = _context3['catch'](0);\n\n              $scope.message = _context3.t0.message;\n\n            case 11:\n            case 'end':\n              return _context3.stop();\n          }\n        }\n      }, _callee3, this, [[0, 8]]);\n    }));\n  };\n\n  $scope.accept = function () {\n    return co(regeneratorRuntime.mark(function _callee4() {\n      var res;\n      return regeneratorRuntime.wrap(function _callee4$(_context4) {\n        while (1) {\n          switch (_context4.prev = _context4.next) {\n            case 0:\n              _context4.next = 2;\n              return Webmin.blockchain.block_add({\n                block: $scope.generated\n              });\n\n            case 2:\n              res = _context4.sent;\n\n              if (!(res.number == 0)) {\n                _context4.next = 6;\n                break;\n              }\n\n              _context4.next = 6;\n              return $scope.startServices();\n\n            case 6:\n            case 'end':\n              return _context4.stop();\n          }\n        }\n      }, _callee4, this);\n    }));\n  };\n\n  $scope.startServices = function () {\n    return co(regeneratorRuntime.mark(function _callee5() {\n      return regeneratorRuntime.wrap(function _callee5$(_context5) {\n        while (1) {\n          switch (_context5.prev = _context5.next) {\n            case 0:\n              _context5.next = 2;\n              return Webmin.server.services.startAll();\n\n            case 2:\n              $state.go('index');\n\n            case 3:\n            case 'end':\n              return _context5.stop();\n          }\n        }\n      }, _callee5, this);\n    }));\n  };\n\n  $scope.cancelAndReset = function () {\n    return co(regeneratorRuntime.mark(function _callee6() {\n      return regeneratorRuntime.wrap(function _callee6$(_context6) {\n        while (1) {\n          switch (_context6.prev = _context6.next) {\n            case 0:\n              _context6.next = 2;\n              return Webmin.server.services.stopAll();\n\n            case 2:\n              _context6.next = 4;\n              return Webmin.server.resetData();\n\n            case 4:\n              $state.go('index');\n\n            case 5:\n            case 'end':\n              return _context6.stop();\n          }\n        }\n      }, _callee6, this);\n    }));\n  };\n\n  return co(regeneratorRuntime.mark(function _callee7() {\n    return regeneratorRuntime.wrap(function _callee7$(_context7) {\n      while (1) {\n        switch (_context7.prev = _context7.next) {\n          case 0:\n            _context7.prev = 0;\n            _context7.next = 3;\n            return $scope.start();\n\n          case 3:\n            _context7.next = 5;\n            return $scope.try();\n\n          case 5:\n            $scope.started = true;\n            _context7.next = 11;\n            break;\n\n          case 8:\n            _context7.prev = 8;\n            _context7.t0 = _context7['catch'](0);\n\n            $scope.started = false;\n\n          case 11:\n          case 'end':\n            return _context7.stop();\n        }\n      }\n    }, _callee7, this, [[0, 8]]);\n  }));\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $http, $state, $timeout, $stateParams, $translate, UIUtils, Webmin) {\n\n  var syncWS = Webmin.ws();\n\n  UIUtils.enableInputs();\n  $scope.sync_mode = 'simplified';\n  $scope.simplified_host = '';\n  $scope.synchronizing = false;\n  $scope.sync_failed = false;\n  $scope.host = $stateParams.host || localStorage.getItem('sync_host') || '';\n  $scope.port = parseInt($stateParams.port) || parseInt(localStorage.getItem('sync_port')) || 10901;\n  $scope.to = parseInt($stateParams.to);\n  $scope.wrong_host = false;\n  $scope.remote_current = null;\n\n  $scope.checkNode = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var current, targetHost;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              $scope.checked_host = '';\n              $scope.sync_error = '';\n              $scope.sync_message = '';\n              if ($scope.sync_mode == 'simplified') {\n                $scope.host = $scope.simplified_host.split(':')[0];\n                $scope.port = parseInt($scope.simplified_host.split(':')[1]);\n              }\n              $scope.checking = true;\n              _context.prev = 5;\n              _context.next = 8;\n              return Webmin.server.testSync({\n                host: $scope.host,\n                port: $scope.port\n              });\n\n            case 8:\n              current = _context.sent;\n              targetHost = [$scope.host, $scope.port].join(':');\n\n              if (current) {\n                $scope.remote_current = current;\n                $scope.checked_host = targetHost;\n              }\n              UIUtils.toast('sync.ready.node.part1');\n              $timeout(function () {\n                if (!$scope.synchronizing) {\n                  UIUtils.toast('sync.ready.node.part2');\n                }\n              }, 6000);\n              _context.next = 18;\n              break;\n\n            case 15:\n              _context.prev = 15;\n              _context.t0 = _context['catch'](5);\n\n              $scope.sync_error = 'sync.error.unreachable.try.another.node';\n\n            case 18:\n              $scope.checking = false;\n              return _context.abrupt('return', $scope.checked_host ? true : false);\n\n            case 20:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this, [[5, 15]]);\n    }));\n  };\n\n  $scope.startSync = function () {\n    $scope.down_percent = 0;\n    $scope.apply_percent = 0;\n    $scope.sync_failed = false;\n    $scope.synchronizing = true;\n    return co(regeneratorRuntime.mark(function _callee2() {\n      var sp, translatedErr;\n      return regeneratorRuntime.wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              _context2.next = 2;\n              return $translate('sync.started.node');\n\n            case 2:\n              _context2.t0 = _context2.sent;\n              _context2.t1 = _context2.t0 + ' ';\n              _context2.t2 = $scope.checked_host;\n              $scope.sync_message = _context2.t1 + _context2.t2;\n              sp = $scope.checked_host.split(':');\n              _context2.next = 9;\n              return $translate('err.sync.interrupted');\n\n            case 9:\n              translatedErr = _context2.sent;\n\n              syncWS.on(undefined, function (data) {\n                if (data.type == 'sync') {\n                  $scope.down_percent = 100;\n                  $scope.apply_percent = 100;\n                  $scope.sync_failed = data.value;\n                  var errorMessage = data.msg && (data.msg.message || data.msg);\n                  errorMessage = translatedErr + ' « ' + errorMessage + ' »';\n                  Webmin.server.republishNewSelfPeer().then(function () {\n                    return console.log('Peer republished');\n                  });\n                  if (data.value === true) {\n                    $state.go('index');\n                  } else {\n                    $state.go('error', { err: errorMessage });\n                  }\n                } else {\n                  var changed = true;\n                  if (data.type == 'download' && $scope.down_percent != data.value) {\n                    $scope.down_percent = data.value;\n                    changed = true;\n                  }\n                  if (data.type == 'applied' && $scope.apply_percent != data.value) {\n                    $scope.apply_percent = data.value;\n                    changed = true;\n                  }\n                  if (changed) {\n                    $scope.$apply();\n                  }\n                }\n              });\n              _context2.next = 13;\n              return Webmin.server.autoConfNetwork();\n\n            case 13:\n              localStorage.setItem(\"sync_host\", sp[0]);\n              localStorage.setItem(\"sync_port\", sp[1]);\n              Webmin.server.startSync({\n                host: sp[0],\n                port: sp[1],\n                to: $scope.to,\n                chunkLen: Math.max(500, Math.min(25, $scope.remote_current ? $scope.remote_current.number / 100 : 0))\n              });\n\n            case 16:\n            case 'end':\n              return _context2.stop();\n          }\n        }\n      }, _callee2, this);\n    }));\n  };\n\n  // Autostart\n  if ($scope.host && $scope.port && $stateParams.sync) {\n    return co(regeneratorRuntime.mark(function _callee3() {\n      var nodeOK;\n      return regeneratorRuntime.wrap(function _callee3$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              _context3.next = 2;\n              return $scope.checkNode();\n\n            case 2:\n              nodeOK = _context3.sent;\n\n              if (!nodeOK) {\n                _context3.next = 5;\n                break;\n              }\n\n              return _context3.abrupt('return', $scope.startSync());\n\n            case 5:\n            case 'end':\n              return _context3.stop();\n          }\n        }\n      }, _callee3, this);\n    }));\n  }\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $state, $http, $timeout, $interval, Webmin, uiModules, summary, UIUtils) {\n\n  $scope.externalMenus = [];\n\n  var _iteratorNormalCompletion = true;\n  var _didIteratorError = false;\n  var _iteratorError = undefined;\n\n  try {\n    var _loop = function _loop() {\n      var moduleName = _step.value;\n\n      var module = window.uiModules[moduleName];\n      if (module) {\n        $scope.externalMenus.push({\n          menuOpen: function menuOpen() {\n            return module.menuOpen(summary);\n          },\n          menuIconClass: module.menuIconClass,\n          menuLabel: module.menuLabel\n        });\n      }\n    };\n\n    for (var _iterator = uiModules[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n      _loop();\n    }\n  } catch (err) {\n    _didIteratorError = true;\n    _iteratorError = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion && _iterator.return) {\n        _iterator.return();\n      }\n    } finally {\n      if (_didIteratorError) {\n        throw _iteratorError;\n      }\n    }\n  }\n\n  $scope.notifications = {\n    help: []\n  };\n\n  Waves.displayEffect();\n\n  var isMobile = require('js/lib/mobileDetector');\n  if (isMobile()) {\n    $(\".button-collapse\").sideNav({\n      menuWidth: 280\n    });\n  }\n\n  UIUtils.changeTitle(summary.version);\n\n  var aboutWin = void 0;\n\n  $scope.showAbout = function () {\n    if (aboutWin) {\n      aboutWin.focus();\n    } else {\n      openWindow(window.location.origin + '/#/about', {\n        position: 'center',\n        height: 380,\n        width: 510\n      }, function (subwin) {\n        subwin.window.gui = window.gui;\n        subwin.on('closed', function () {\n          aboutWin = null;\n          mainWindow.focus();\n        });\n        aboutWin = subwin;\n      });\n    }\n  };\n\n  $scope.startServer = function () {\n    $scope.server_stopped = false;\n    return co(regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.server.services.startAll();\n\n            case 2:\n              $scope.server_started = true;\n\n            case 3:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n\n  $scope.stopServer = function () {\n    $scope.server_started = false;\n    return co(regeneratorRuntime.mark(function _callee2() {\n      return regeneratorRuntime.wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              _context2.next = 2;\n              return Webmin.server.services.stopAll();\n\n            case 2:\n              $scope.server_stopped = true;\n\n            case 3:\n            case 'end':\n              return _context2.stop();\n          }\n        }\n      }, _callee2, this);\n    }));\n  };\n\n  $scope.restartServer = function () {\n    return co(regeneratorRuntime.mark(function _callee3() {\n      return regeneratorRuntime.wrap(function _callee3$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              _context3.next = 2;\n              return $scope.stopServer();\n\n            case 2:\n              _context3.next = 4;\n              return $scope.startServer();\n\n            case 4:\n            case 'end':\n              return _context3.stop();\n          }\n        }\n      }, _callee3, this);\n    }));\n  };\n\n  function checkUpdates() {\n    var LATEST_RELEASE_URL = 'https://api.github.com/repos/duniter/duniter/releases/latest';\n    co(regeneratorRuntime.mark(function _callee4() {\n      var latest, local_string_version, m, localVersion, localSuffix, isLocalAPreRelease, remoteVersion;\n      return regeneratorRuntime.wrap(function _callee4$(_context4) {\n        while (1) {\n          switch (_context4.prev = _context4.next) {\n            case 0:\n              _context4.prev = 0;\n              _context4.next = 3;\n              return $http.get(LATEST_RELEASE_URL);\n\n            case 3:\n              latest = _context4.sent;\n              local_string_version = 'v' + summary.version;\n              m = local_string_version.match(/^v([\\d.]+)([ab]?\\d*)/);\n              localVersion = m && m[1] || \"\";\n              localSuffix = m && m[2];\n              isLocalAPreRelease = !!localSuffix;\n              remoteVersion = latest.data.tag_name.substr(1);\n\n              if (localVersion < remoteVersion || localVersion == remoteVersion && isLocalAPreRelease) {\n                if ($scope.notifications.help.filter(function (entry) {\n                  return entry.message == 'help.new_version_available';\n                }).length == 0) {\n                  $scope.notifications.help.push({\n                    icon: 'play_for_work',\n                    message: 'help.new_version_available',\n                    onclick: function onclick() {\n                      return openExternal('https://github.com/duniter/duniter/releases/latest');\n                    }\n                  });\n                }\n              }\n              _context4.next = 16;\n              break;\n\n            case 13:\n              _context4.prev = 13;\n              _context4.t0 = _context4['catch'](0);\n\n              console.error(_context4.t0);\n\n            case 16:\n            case 'end':\n              return _context4.stop();\n          }\n        }\n      }, _callee4, this, [[0, 13]]);\n    }));\n  }\n\n  $interval(checkUpdates, 1000 * 3600);\n  $timeout(checkUpdates, 1000);\n};\n","\"use strict\";\n\nvar BLOCKS_COUNT = 40;\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $state, $timeout, Webmin, UIUtils, Graph) {\n\n  var data = {};\n\n  $scope.loading = true;\n  $scope.blocksCount = $scope.blocksCount || BLOCKS_COUNT;\n\n  $scope.$watch('withTime', function (newValue) {\n    if (newValue) {\n      timeGraph();\n    }\n  });\n\n  $scope.$watch('withSpeed', function (newValue) {\n    if (newValue) {\n      speedGraph();\n    }\n  });\n\n  $scope.$watch('withDifficulty', function (newValue) {\n    if (newValue) {\n      diffGraph();\n    }\n  });\n\n  $scope.updateGraphs = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var summary, parameters, blocks, speeds, accelerations, medianTimeIncrements, actualDurations, BY_HOUR, i, len, block, acc, previousPos, j, availPreviousBlocks, localAvgSpeed, realDuration, graphs, _i, _len;\n\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.summary();\n\n            case 2:\n              summary = _context.sent;\n              _context.next = 5;\n              return Webmin.currency.parameters();\n\n            case 5:\n              parameters = _context.sent;\n              _context.next = 8;\n              return Webmin.blockchain.blocks({\n                count: $scope.blocksCount,\n                from: Math.max(0, summary.current.number - $scope.blocksCount)\n              });\n\n            case 8:\n              blocks = _context.sent;\n              speeds = [], accelerations = [], medianTimeIncrements = [], actualDurations = [];\n              BY_HOUR = 3600;\n\n              for (i = 0, len = blocks.length; i < len; i++) {\n                block = blocks[i];\n                acc = 0;\n                previousPos = Math.max(0, i - parameters.dtDiffEval);\n\n                for (j = previousPos; j < i; j++) {\n                  acc += blocks[j + 1].medianTime - blocks[j].medianTime;\n                }\n                availPreviousBlocks = i - 1 - previousPos;\n                localAvgSpeed = acc / (availPreviousBlocks || 1);\n                realDuration = !isNaN(localAvgSpeed) && localAvgSpeed != 0 ? localAvgSpeed : parameters.avgGenTime;\n\n                actualDurations.push(parseFloat(realDuration.toFixed(2)));\n                speeds.push(parseFloat((BY_HOUR / realDuration).toFixed(2)));\n                accelerations.push(block.time - block.medianTime);\n                medianTimeIncrements.push(block.medianTime - (i ? blocks[i - 1].medianTime : block.medianTime));\n              }\n              data.summary = summary;\n              data.speeds = speeds;\n              data.accelerations = accelerations;\n              data.medianTimeIncrements = medianTimeIncrements;\n              data.actualDurations = actualDurations;\n              data.minSpeeds = speeds.map(function () {\n                return parseFloat((BY_HOUR / Math.ceil(parameters.avgGenTime * Math.sqrt(1.066))).toFixed(2));\n              });\n              data.maxSpeeds = speeds.map(function () {\n                return parseFloat((BY_HOUR / Math.floor(parameters.avgGenTime / Math.sqrt(1.066))).toFixed(2));\n              });\n              data.minDurations = speeds.map(function () {\n                return parseFloat((parameters.avgGenTime / 1.066).toFixed(2));\n              });\n              data.maxDurations = speeds.map(function () {\n                return parseFloat((parameters.avgGenTime * 1.066).toFixed(2));\n              });\n              data.difficulties = blocks.map(function (b) {\n                return b.powMin;\n              });\n\n              graphs = [];\n\n              if ($scope.withTime) graphs.push(timeGraph);\n              if ($scope.withSpeed) graphs.push(speedGraph);\n              if ($scope.withDifficulty) graphs.push(diffGraph);\n              for (_i = 0, _len = graphs.length; _i < _len; _i++) {\n                graphs[_i]();\n              }\n              $scope.loading = false;\n\n            case 28:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n\n  function timeGraph() {\n    if ($scope.withTime) {\n      Graph.timeGraphs('#timeGraph', Math.max(0, data.summary.current.number - $scope.blocksCount + 1), data.accelerations, data.medianTimeIncrements, data.actualDurations, data.minDurations, data.maxDurations);\n    }\n  }\n\n  function speedGraph() {\n    if ($scope.withSpeed) {\n      Graph.speedGraph('#speedGraph', Math.max(0, data.summary.current.number - $scope.blocksCount), data.speeds, data.minSpeeds, data.maxSpeeds, function (series) {\n        $scope.series = series;\n      });\n    }\n  }\n\n  function diffGraph() {\n    if ($scope.withDifficulty) {\n      Graph.difficultyGraph('#difficultyGraph', Math.max(0, data.summary.current.number - $scope.blocksCount), data.difficulties);\n    }\n  }\n\n  return co(regeneratorRuntime.mark(function _callee2() {\n    return regeneratorRuntime.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            _context2.next = 2;\n            return $scope.updateGraphs();\n\n          case 2:\n            $scope.withTime = true;\n            $scope.withDifficulty = true;\n            $scope.$apply();\n\n          case 5:\n          case 'end':\n            return _context2.stop();\n        }\n      }\n    }, _callee2, this);\n  }));\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, UIUtils) {\n\n  UIUtils.enableTabs();\n\n  $scope.$parent.menu = 'graphs';\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, UIUtils) {\n\n  UIUtils.enableTabs();\n\n  $scope.$parent.menu = 'home';\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, Webmin, peers) {\n\n  $scope.peers = peers.peers;\n\n  var co = require('co');\n\n  $scope.update = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var delayP;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              $scope.searching = true;\n              delayP = Q.delay(500);\n              _context.next = 4;\n              return Webmin.network.peers();\n\n            case 4:\n              $scope.peers = _context.sent.peers;\n              _context.next = 7;\n              return delayP;\n\n            case 7:\n              $scope.searching = false;\n              $scope.$apply();\n\n            case 9:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, $interval, Webmin, UIUtils, summary, ws) {\n\n  var co = require('co');\n  var moment = require('moment');\n\n  bindBlockWS(function () {\n    $scope.loadPowData();\n  });\n  var M = summary.current.monetaryMass || 0;\n  // const nbUDperYear = Math.ceil(365.25 * 3600 * 24 / summary.parameters.dt);\n  // const globalC = Math.round(Math.pow(1 + summary.parameters.c, nbUDperYear) * 100) / 100 - 1;\n  var UD = summary.parameters.ud0;\n  if (summary.lastUDBlock) {\n    var N = summary.current.membersCount;\n    UD = parseInt((summary.lastUDBlock.dividend * Math.pow(10, summary.lastUDBlock.unitbase) + Math.pow(summary.parameters.c, 2) * M / N).toFixed(0));\n  }\n  $scope.current = summary.current;\n  $scope.current_currency = summary.current.currency;\n  $scope.current_number = summary.current.number;\n  $scope.current_membersCount = summary.current.membersCount;\n  $scope.current_medianTime = summary.current.medianTime;\n  $scope.current_powMin = summary.current.powMin;\n  $scope.monetaryMass = parseInt(M / UD) || 0;\n  $scope.server_started = true;\n  $scope.server_stopped = false;\n  $scope.phones = [];\n  $scope.abc = 'abcdef';\n  $scope.newIdentities = 2;\n\n  $(\".dropdown-button\").dropdown({ constrainwidth: false });\n\n  $scope.lastNearPoW = '';\n  $scope.totalPoW = '...';\n  $scope.sync_state = 'home.pulling.state.unkown';\n  $scope.network_percent = 0;\n  $scope.peer_percent = 0;\n  $scope.has_pulled = false;\n  $scope.is_pulling = false;\n  $scope.last_pulling = 0;\n  var start_block = 0;\n\n  $interval(function () {\n    if ($scope.last_pulling) {\n      $scope.sync_state = $scope.is_pulling ? 'home.pulling.state.syncing' : 'home.pulling.state.synced';\n      $scope.sync_time = moment($scope.last_pulling).fromNow();\n    }\n  }, 1000);\n\n  $scope.loadPowData = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var res;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.powSummary();\n\n            case 2:\n              res = _context.sent;\n\n              $scope.pow_total = res.total;\n              $scope.pow_mirror = res.mirror;\n              $scope.pow_waiting = res.waiting;\n\n            case 6:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n\n  ws.on(undefined, function (data) {\n    if (data.type === 'started') {\n      $scope.server_started = true;\n      $scope.server_stopped = false;\n      bindBlockWS(function () {\n        $scope.loadPowData();\n      });\n      UIUtils.toast('general.server.started');\n      $scope.$apply();\n    }\n    if (data.type === 'stopped') {\n      $scope.server_stopped = true;\n      $scope.server_started = false;\n      UIUtils.toast('general.server.stopped');\n      $scope.$apply();\n    }\n    if (data.type === 'pulling') {\n      $scope.is_pulling = true;\n      $scope.has_pulled = true;\n      var event = data.value;\n      if ($scope.last_pulling && event.type === 'start' || !$scope.last_pulling && event.type !== 'end') {\n        $scope.last_pulling = moment();\n      }\n      if (event.type === 'peer') {\n        $scope.network_percent = parseInt((event.data.number + 1) / event.data.length * 100);\n        $scope.peer_percent = 100;\n        start_block = 0;\n      }\n      if (event.type === 'applying') {\n        if (!start_block) {\n          start_block = event.data.number;\n        }\n        var total = event.data.last - start_block;\n        var doneCount = event.data.number - start_block;\n        $scope.peer_percent = parseInt(doneCount / total * 100);\n      }\n      if (event.type === 'end') {\n        $scope.is_pulling = false;\n        $scope.network_percent = 0;\n        $scope.peer_percent = 0;\n        start_block = 0;\n      }\n    }\n    if (data.type === 'pow') {\n      var pow = data.value;\n      if (pow.found) {\n        $scope.pow_waiting = true;\n        $scope.lastNearPoW = '#' + pow.hash;\n        $scope.$apply();\n      } else {\n        $scope.pow_waiting = false;\n        $scope.lastNearPoW = '#' + pow.hash;\n        $scope.$apply();\n      }\n    }\n  });\n\n  function bindBlockWS(cb) {\n    Webmin.wsBlock().on(undefined, function (block) {\n      $scope.current_currency = block.currency;\n      $scope.current_number = block.number;\n      $scope.current_membersCount = block.membersCount;\n      $scope.current_medianTime = block.medianTime;\n      $scope.current_powMin = block.powMin;\n      var M = summary.current.monetaryMass || 0;\n      var UD = summary.parameters.ud0;\n      if (summary.lastUDBlock) {\n        var _N = summary.current.membersCount;\n        UD = parseInt(Math.round(summary.lastUDBlock.dividend * Math.pow(10, summary.lastUDBlock.unitbase) + Math.pow(summary.parameters.c, 2) * M / _N).toFixed(0));\n      }\n      $scope.monetaryMass = parseInt(M / UD) || 0;\n      $scope.$apply();\n      cb && cb();\n    });\n  }\n\n  $scope.reconfigure_network = function () {\n    return co(regeneratorRuntime.mark(function _callee2() {\n      var delay, netinferfaces, conf;\n      return regeneratorRuntime.wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              $scope.reconfiguring = true;\n              delay = Q.delay(1000);\n              _context2.prev = 2;\n              _context2.next = 5;\n              return Webmin.network.interfaces();\n\n            case 5:\n              netinferfaces = _context2.sent;\n              conf = {};\n\n              conf.local_ipv4 = netinferfaces.auto.local.ipv4 || '';\n              conf.local_ipv6 = netinferfaces.auto.local.ipv6 || '';\n              conf.remote_ipv4 = netinferfaces.auto.remote.ipv4 || '';\n              conf.remote_ipv6 = netinferfaces.auto.remote.ipv6 || '';\n              conf.lport = netinferfaces.auto.local.port || 9330;\n              conf.rport = netinferfaces.auto.remote.port || 9330;\n              conf.upnp = netinferfaces.auto.remote.upnp || false;\n              conf.dns = netinferfaces.auto.remote.dns || '';\n              _context2.next = 17;\n              return Webmin.server.netConf({\n                conf: conf\n              });\n\n            case 17:\n              _context2.next = 19;\n              return delay;\n\n            case 19:\n              $scope.should_reconfigure = false;\n              UIUtils.toast('general.network.reconf_ok');\n              $scope.$apply();\n              _context2.next = 30;\n              break;\n\n            case 24:\n              _context2.prev = 24;\n              _context2.t0 = _context2['catch'](2);\n              _context2.next = 28;\n              return delay;\n\n            case 28:\n              $scope.reconfiguring = false;\n              $scope.$apply();\n\n            case 30:\n            case 'end':\n              return _context2.stop();\n          }\n        }\n      }, _callee2, this, [[2, 24]]);\n    }));\n  };\n\n  return co(regeneratorRuntime.mark(function _callee3() {\n    var reachable;\n    return regeneratorRuntime.wrap(function _callee3$(_context3) {\n      while (1) {\n        switch (_context3.prev = _context3.next) {\n          case 0:\n            _context3.next = 2;\n            return $scope.startServer();\n\n          case 2:\n            _context3.prev = 2;\n            _context3.next = 5;\n            return $scope.loadPowData();\n\n          case 5:\n            _context3.next = 7;\n            return Webmin.isNodePubliclyReachable();\n\n          case 7:\n            reachable = _context3.sent;\n\n            if (!reachable || !reachable.success) {\n              $scope.should_reconfigure = true;\n            }\n            _context3.next = 14;\n            break;\n\n          case 11:\n            _context3.prev = 11;\n            _context3.t0 = _context3['catch'](2);\n\n            console.log(_context3.t0);\n\n          case 14:\n          case 'end':\n            return _context3.stop();\n        }\n      }\n    }, _callee3, this, [[2, 11]]);\n  }));\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $http, $state, $location, Webmin, UIUtils) {\n\n  UIUtils.enableTabs();\n\n  $scope.$parent.conf = $scope.$parent.conf || {};\n  $scope.$parent.menu = 'settings';\n\n  $(\".dropdown-button\").dropdown({ constrainwidth: false });\n\n  $scope.fullReset = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.server.services.stopAll();\n\n            case 2:\n              _context.next = 4;\n              return Webmin.server.resetData();\n\n            case 4:\n              $state.go('index');\n\n            case 5:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, Importer, Webmin) {\n\n  $scope.export_link = Webmin.getExportURL();\n\n  Importer($scope);\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $http, $state, $timeout, UIUtils, summary, Webmin) {\n\n  $scope.cpuPower = parseInt(summary.conf.cpu * 100);\n\n  $scope.updateCPUpower = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              $scope.savingCPU = true;\n              _context.next = 3;\n              return Webmin.server.cpuConf({\n                cpu: parseFloat(($scope.cpuPower / 100).toFixed(2))\n              });\n\n            case 3:\n              UIUtils.toast('settings.cpu.saved');\n              $scope.savingCPU = false;\n\n            case 5:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, conf, UIUtils) {\n\n  $scope.$parent.conf = conf;\n\n  UIUtils.enableInputs();\n  $('input').attr('disabled', 'disabled');\n};\n","\"use strict\";\n\nvar co = require('co');\nvar Peer = require('js/lib/entity/peer');\n\nmodule.exports = function ($scope, $http, $state, Webmin, peers) {\n\n  $scope.peers = peers.map(function (peer) {\n    var p = new Peer(peer);\n    return {\n      name: [p.getURL(), \"(\" + p.pubkey.slice(0, 6) + \")\"].join(' '),\n      host_port: [p.getHost(), p.getPort()].join('|')\n    };\n  });\n\n  $scope.resetNode = function () {\n    $('#modalReset').openModal();\n  };\n\n  $scope.resetNodeAndSync = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var sp;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.server.services.stopAll();\n\n            case 2:\n              _context.next = 4;\n              return Webmin.server.resetData();\n\n            case 4:\n              sp = $scope.remote_host.split('|');\n\n              $state.go('sync', {\n                host: sp[0],\n                port: sp[1],\n                sync: true\n              });\n\n            case 6:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $state, Webmin, summary, PubkeyGenerator) {\n\n  $scope.pubkey = summary.pubkey;\n\n  setTimeout(function () {\n    $('select').material_select();\n  }, 500);\n\n  $scope.accept = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.server.keyConf({\n                conf: $scope.$parent.conf\n              });\n\n            case 2:\n              $scope.$parent.conf.idty_entropy = '';\n              $scope.$parent.conf.idty_password = '';\n              $state.reload();\n              $scope.restartServer();\n\n            case 6:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n\n  PubkeyGenerator($scope);\n};\n","\"use strict\";\n\nmodule.exports = function ($scope, ws, UIUtils) {\n\n  UIUtils.enableTabs();\n\n  var co = require('co');\n  var _ = require('underscore');\n\n  // Default values\n  if (!localStorage.getItem('log_error')) localStorage.setItem('log_error', true);\n  if (!localStorage.getItem('log_warn')) localStorage.setItem('log_warn', true);\n  if (!localStorage.getItem('log_info')) localStorage.setItem('log_info', true);\n\n  $scope.logsSize = parseInt(localStorage.getItem('log_size')) || 100;\n  $scope.logs = _.range(0, $scope.logsSize).map(function () {\n    return \"\";\n  });\n  $scope.logsString = \"\";\n  $scope.follow = true;\n  $scope.levels = {\n    error: localStorage.getItem('log_error') == \"true\",\n    warn: localStorage.getItem('log_warn') == \"true\",\n    info: localStorage.getItem('log_info') == \"true\",\n    debug: localStorage.getItem('log_debug') == \"true\",\n    trace: localStorage.getItem('log_trace') == \"true\"\n  };\n\n  _.keys($scope.levels).map(function (level) {\n    $scope.$watch('levels.' + level, function (newValue) {\n      localStorage.setItem('log_' + level, newValue);\n      $scope.logs.splice(0, $scope.logs.length);\n      ws.send();\n    });\n  });\n\n  $scope.$watch('logsSize', function (newValue) {\n    localStorage.setItem('log_size', newValue);\n    addLogs({ value: [] }, true);\n  });\n\n  ws.on('log', addLogs);\n\n  function addLogs(res, autoDigest) {\n\n    if (!$scope.pause) {\n      var newlogs = _.filter(res.value, function (log) {\n        return $scope.levels[log.level];\n      });\n      // Add at max LOGS_FLOW_SIZE new lines\n      newlogs.splice(0, Math.max(0, newlogs.length - $scope.logsSize));\n      // Add just enough space for incoming logs\n      $scope.logs.splice(0, Math.max(0, $scope.logs.length + newlogs.length - $scope.logsSize));\n      for (var i = 0, len = newlogs.length; i < len; i++) {\n        var log = newlogs[i];\n        $scope.logs.push(log);\n      }\n      if (!autoDigest) {\n        $scope.$apply();\n      }\n    }\n\n    if ($scope.follow) {\n      var elem = document.getElementById('logs');\n      if (elem) {\n        elem.scrollTop = elem.scrollHeight;\n      }\n    }\n  }\n\n  return co(regeneratorRuntime.mark(function _callee() {\n    return regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            _context.next = 2;\n            return ws.whenOpened();\n\n          case 2:\n            ws.send();\n\n          case 3:\n          case 'end':\n            return _context.stop();\n        }\n      }\n    }, _callee, this);\n  }));\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, Webmin) {\n\n  $scope.generating = false;\n  $scope.error = '';\n\n  $scope.shareLogs = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      var res;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              if ($scope.generating) {\n                _context.next = 14;\n                break;\n              }\n\n              _context.prev = 1;\n\n              $scope.error = '';\n              $scope.generating = true;\n              _context.next = 6;\n              return Webmin.logsExport(2000);\n\n            case 6:\n              res = _context.sent;\n\n              $scope.link = res.link;\n              _context.next = 13;\n              break;\n\n            case 10:\n              _context.prev = 10;\n              _context.t0 = _context['catch'](1);\n\n              $scope.error = _context.t0 && _context.t0.message || _context.t0 || 'Unknown error';\n\n            case 13:\n              $scope.generating = false;\n\n            case 14:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this, [[1, 10]]);\n    }));\n  };\n};\n","\"use strict\";\n\nvar co = require('co');\n\nmodule.exports = function ($scope, $http, $state, $interval, $timeout, UIUtils, summary, Webmin, allModules, hasAccess) {\n\n  var interval = void 0;\n  $scope.hasAccess = hasAccess;\n  $scope.module_to_install = '';\n  $scope.installing = false;\n  $scope.initialLength = allModules.length;\n\n  $scope.showWarning = function () {\n    return $scope.warningShown = true;\n  };\n  $scope.hideWarning = function () {\n    return $scope.warningShown = false;\n  };\n\n  $scope.modules = modulesTransform(allModules);\n\n  $scope.switchModule = function (mod) {\n    $scope.modules.map(function (m) {\n      return m.disabled = true;\n    });\n    mod.installing = !mod.installing;\n    Webmin.plugin.removePackage(mod.name);\n    $scope.checkModulesInstallation();\n  };\n\n  $scope.installModule = function () {\n    $scope.modules.map(function (m) {\n      return m.disabled = true;\n    });\n    co(regeneratorRuntime.mark(function _callee() {\n      var res;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Webmin.plugin.addPackage($scope.module_to_install);\n\n            case 2:\n              res = _context.sent;\n\n              if (res.success) {\n                $scope.modules.push({\n                  fullName: $scope.module_to_install,\n                  disabled: true,\n                  installing: true,\n                  installed: true\n                });\n                $scope.installing = true;\n                $scope.checkModulesInstallation();\n              } else {\n                $scope.modules = modulesTransform(allModules);\n                UIUtils.toast('settings.modules.already_install');\n              }\n\n            case 4:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n\n  $scope.checkModulesInstallation = function () {\n    interval = $interval(function () {\n      Webmin.plugin.allModules().then(function (modules) {\n        if (modules.length !== $scope.initialLength) {\n          $scope.initialLength = modules.length;\n          $scope.modules = modulesTransform(modules);\n          $scope.installing = false;\n          $interval.cancel(interval);\n        }\n      });\n    }, 1500);\n  };\n\n  function modulesTransform(modules) {\n    return modules.map(function (m) {\n      return {\n        name: m.name,\n        fullName: [m.name, m.version].join('@'),\n        disabled: !$scope.hasAccess,\n        installing: false,\n        installed: true\n      };\n    });\n  }\n};\n","\"use strict\";\n\nvar co = require('co');\nvar conf = require('js/lib/conf/conf');\n\nmodule.exports = function ($scope, $http, $state, Webmin, UIUtils, netinterfaces, firstConf) {\n\n  var autoconf = netinterfaces.auto;\n\n  $scope.autoconfig = function () {\n    $scope.$parent.conf.local_ipv4 = autoconf.local.ipv4 || '';\n    $scope.$parent.conf.local_ipv6 = autoconf.local.ipv6 || '';\n    $scope.$parent.conf.remote_ipv4 = autoconf.remote.ipv4 || '';\n    $scope.$parent.conf.remote_ipv6 = autoconf.remote.ipv6 || '';\n    $scope.$parent.conf.lport = autoconf.local.port || $scope.$parent.conf.lport;\n    $scope.$parent.conf.rport = autoconf.remote.port || $scope.$parent.conf.rport;\n    $scope.$parent.conf.upnp = autoconf.remote.upnp || $scope.$parent.conf.upnp;\n    $scope.$parent.conf.dns = autoconf.remote.dns || $scope.$parent.conf.dns;\n\n    if (conf.dev_autoconf && firstConf) {\n      $state.go('configure.create.root');\n    }\n  };\n\n  $scope.local_neti = toArrayOfAddresses(netinterfaces.local);\n  $scope.remote_neti = toArrayOfAddresses(netinterfaces.remote);\n\n  $scope.$parent.conf = $scope.$parent.conf || {};\n  $scope.$parent.conf.local_ipv4 = netinterfaces.conf.local.ipv4;\n  $scope.$parent.conf.local_ipv6 = netinterfaces.conf.local.ipv6;\n  $scope.$parent.conf.remote_ipv4 = netinterfaces.conf.remote.ipv4;\n  $scope.$parent.conf.remote_ipv6 = netinterfaces.conf.remote.ipv6;\n  $scope.$parent.conf.lport = netinterfaces.conf.local.port;\n  $scope.$parent.conf.rport = netinterfaces.conf.remote.port;\n  $scope.$parent.conf.upnp = netinterfaces.conf.remote.upnp;\n  $scope.$parent.conf.dns = netinterfaces.conf.remote.dns;\n\n  UIUtils.enableInputs();\n\n  if (firstConf) {\n    $scope.$parent.conf.lport = conf.default_port;\n    $scope.$parent.conf.rport = conf.default_port;\n    // Trigger autoconfig\n    $scope.autoconfig();\n  }\n\n  $scope.saveConf = function () {\n    return co(regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              $scope.$parent.conf.remote_ipv6 = $scope.$parent.conf.local_ipv6;\n              _context.next = 3;\n              return Webmin.server.netConf({\n                conf: $scope.$parent.conf\n              });\n\n            case 3:\n              UIUtils.toast('settings.network.saved');\n\n            case 4:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n  };\n};\n\nfunction toArrayOfAddresses(netiScope) {\n  return netiScope.reduce(function (arr, neti) {\n    return arr.concat(neti.addresses.map(function (addr) {\n      return {\n        name: [neti.name, addr.address].join(' '),\n        addr: addr.address,\n        family: addr.family\n      };\n    }));\n  }, []);\n}\n","'use strict';\n\nmodule.exports = function () {\n\n  window.uiModules = {};\n\n  require('./services/webmin')(angular);\n\n  var duniterApp = angular.module('duniterUIApp', ['ui.router', 'homeControllers', 'pascalprecht.translate']);\n\n  duniterApp.config(['$compileProvider', function ($compileProvider) {\n    return $compileProvider.aHrefSanitizationWhitelist(/^\\s*(https?|data):/);\n  }]);\n\n  require('./lib/conf/translate')(duniterApp);\n  require('./lib/conf/routes')(duniterApp);\n  require('js/services/datetime')(duniterApp);\n  require('js/services/ui_utils')(duniterApp);\n  require('js/services/graphs')(duniterApp);\n  require('js/services/pubkeyGenerator')(duniterApp);\n  require('js/services/importer')(duniterApp);\n  require('js/services/base58')(duniterApp);\n\n  window.duniterChildCallback = function (gui) {\n    window.gui = gui;\n  };\n\n  window.onresize = function () {\n    window.onResize && window.onResize(window);\n  };\n\n  window.openWindow = function openWindow(url, options, callback) {\n    if (window.gui) {\n      // Duniter Desktop\n      window.gui.Window.open(url, options, callback);\n    } else {\n      // Browser\n      var innerHeight = options.height || 375;\n      var innerWidth = options.width || 500;\n      window.open(url, '_blank ', ['top=' + (window.screenTop + (options.top || 200)), 'left=' + (window.screenLeft + (options.left || 200)), 'height=' + (innerHeight + 8), 'width=' + (innerWidth + 16), 'menubar=no', 'status=no'].join(','));\n    }\n  };\n\n  window.openNewTab = function openWindow(url, options, callback) {\n    if (window.gui) {\n      // Duniter Desktop\n      window.gui.Window.open(url, options, callback);\n    } else {\n      // Browser\n      window.open(url, '_blank ');\n    }\n  };\n\n  window.openExternal = function openExternal(url) {\n    if (window.gui) {\n      window.gui.Shell.openExternal(url);\n    } else {\n      window.open(url, '_blank');\n    }\n  };\n\n  var homeControllers = angular.module('homeControllers', ['duniter.services.webmin', 'ngFileUpload']);\n\n  homeControllers.controller('IndexController', require('./controllers/IndexController'));\n  homeControllers.controller('AboutController', require('./controllers/AboutController'));\n  homeControllers.controller('IdentityController', require('./controllers/init/create/IdentityController'));\n  homeControllers.controller('ParametersController', require('./controllers/init/create/ParametersController'));\n  homeControllers.controller('RootBlockController', require('./controllers/init/create/RootBlockController'));\n  homeControllers.controller('SyncController', require('./controllers/init/sync/SyncController'));\n  homeControllers.controller('MainController', require('./controllers/main/MainController'));\n  homeControllers.controller('HomeController', require('./controllers/main/home/HomeController'));\n  homeControllers.controller('OverviewController', require('./controllers/main/home/tabs/OverviewController'));\n  homeControllers.controller('HomeNetworkController', require('./controllers/main/home/tabs/HomeNetworkController'));\n  homeControllers.controller('LogsController', require('./controllers/main/settings/tabs/LogsController'));\n  homeControllers.controller('LogsSettingsController', require('./controllers/main/settings/tabs/LogsSettingsController'));\n  homeControllers.controller('NetworkController', require('./controllers/main/settings/tabs/NetworkController'));\n  homeControllers.controller('SettingsController', require('./controllers/main/settings/SettingsController'));\n  homeControllers.controller('DataController', require('./controllers/main/settings/tabs/DataController'));\n  homeControllers.controller('BackupController', require('./controllers/main/settings/tabs/BackupController'));\n  homeControllers.controller('CPUController', require('./controllers/main/settings/tabs/CPUController'));\n  homeControllers.controller('CurrencyController', require('./controllers/main/settings/tabs/CurrencyController'));\n  homeControllers.controller('KeyController', require('./controllers/main/settings/tabs/KeyController'));\n  homeControllers.controller('ModulesController', require('./controllers/main/settings/tabs/ModulesController'));\n  homeControllers.controller('GraphsController', require('./controllers/main/graphs/GraphsController'));\n  homeControllers.controller('GraphsBlockchainController', require('./controllers/main/graphs/GraphsBlockchainController'));\n};\n","\"use strict\";\n\nmodule.exports = {\n\n  init: function init() {\n\n    // Hack since Node v5\n    try {\n      window.jade = require('jade' + '/' + 'runtime');\n    } catch (e) {}\n\n    console.log('Configuring Angular app...');\n\n    require('./app.config')();\n\n    console.log('App initialized.');\n  }\n};\n","\"use strict\";\n\nmodule.exports = {\n  server: \"\", // Empty server will use the browser current host\n  port: \"\", // Empty port will use the browser current port\n  default_port: 9220,\n  dev_autoconf: false,\n  api_timeout: 10000 // 10 sec timeout\n};\n","module.exports = {\n  \"top.menu.overview\": \"Home\",\n  \"top.menu.data\": \"Explore\",\n  \"top.menu.settings\": \"Settings\",\n  \"top.menu.wallet\": \"Wallet\",\n  \"general.server.started\": \"Server started\",\n  \"general.server.stopped\": \"Server stopped\",\n  \"general.choose_option\": \"Choose your option\",\n  \"general.network.reconf_ok\": \"Reconfiguration success\",\n  \"global.button.validate\": \"Validate\",\n  \"global.button.start\": \"Start\",\n  \"err.unknown\": \"Unknown error\",\n  \"err.connection\": \"Could not connect to node\",\n  \"err.back_index\": \"Get back to previous screen\",\n  \"err.sync.interrupted\": \"Sync interrupted because the following error occured:\",\n  \"index.message.loading\": \"Loading...\",\n  \"crypto.secret_key\": \"Secret key\",\n  \"index.message.current_block\": \"Current block {{ number }}\",\n  \"configuration.init.choose.title\": \"Initialization\",\n  \"configuration.init.choose.message\": \"Your software has to be initialized. You may either connect to an existing one or restore a backup file.\",\n  \"configuration.init.choose.create\": \"Create a new currency\",\n  \"configuration.init.choose.connect\": \"Connect to an existing currency\",\n  \"configuration.init.choose.import\": \"Import from a backup file\",\n  \"configuration.create_currency.cancel\": \"Cancel & go home\",\n  \"configuration.create_uid.title\": \"Your identity\",\n  \"configuration.create_uid.message\": \"As a first step, you need to define your personal, unique identity.<br/>The following informations will be <strong>definitive</strong> for this currency: please choose them carefully.\",\n  \"configuration.create_uid.uid.tooltip\": \"The name you will be known as.\",\n  \"configuration.create_uid.entropy.tooltip\": \"An entropy source to make your key unique: an e-mail, a phone n°, ...\",\n  \"configuration.create_uid.password.tooltip\": \"A secret password to protect your key.\",\n  \"configuration.create_uid.create_button\": \"Continue\",\n  \"configuration.create_uid.preview_button\": \"Preview pubkey\",\n  \"configuration.create_uid.nrp_algo_choose\": \"NRP algorithm\",\n  \"configuration.create_uid.nrp_algo_choose_1\": \"N = 4096 ; r = 16 ; p = 1\",\n  \"configuration.create_uid.modal_title\": \"Identity confirmation\",\n  \"configuration.create_uid.modal_message\": \"This identity will be definitive for this currency: you will be known by your User ID and will be able to access your account using your Secret Key and Password values.\",\n  \"configuration.create_uid.modal_agree\": \"Agree\",\n  \"configuration.create_uid.modal_disagree\": \"Disagree\",\n  \"configuration.create_uid.modal_preview_title\": \"Preview of pubkey\",\n  \"configuration.create_uid.modal_preview_ok\": \"OK\",\n  \"configuration.create_network.title\": \"Network\",\n  \"configuration.create_network.message\": \"uCoin is a P2P software and needs bidirectionnal access to the network. Please chose carefully the following parameters.\",\n  \"configuration.create_network.none\": \"None\",\n  \"configuration.create_network.ipv4.title\": \"IPv4\",\n  \"configuration.create_network.ipv6.title\": \"IPv6\",\n  \"configuration.create_network.ipv4.message\": \"For compatibilty reasons, you may prefer to use classic IPv4 interfaces. The configuration is more complicated.\",\n  \"configuration.create_network.local_ipv4\": \"Private (computer)\",\n  \"configuration.create_network.remote_ipv4\": \"Public (box/router)\",\n  \"configuration.create_network.local_ipv6\": \"IPv6\",\n  \"configuration.create_network.lport\": \"Local port\",\n  \"configuration.create_network.rport\": \"Remote port\",\n  \"configuration.create_network.port.title\": \"Ports\",\n  \"configuration.create_network.ipv6.message\": \"IPv6 gives your computer a unique, direct address to your node over the Internet. This is the <b>recommended way</b> to connect your node to the network.\",\n  \"configuration.create_network.port.message\": \"Wether you use IPv6 or IPv4, Duniter node will use this port number for connection to the network. If you use IPv6, local and remote port should equal each other.\",\n  \"configuration.create_network.dns.title\": \"Domain name\",\n  \"configuration.create_network.dns\": \"Domain name\",\n  \"configuration.create_network.dns.message\": \"IPv6 (AAAA) and IPv4 (A) DNS records will be used.\",\n  \"configuration.create_network.upnp\": \"Use UPnP\",\n  \"configuration.create_network.button.validate\": \"Continue\",\n  \"configuration.create_network.button.autoconf\": \"Automatic configuration\",\n  \"configuration.create_parameters.title\": \"Currency\",\n  \"configuration.create_parameters.message\": \"Initial parameters of the currency. It should be carefully chosen, as these parameters never change once the currency is started.\",\n  \"configuration.create_parameters.currency.title\": \"Money units\",\n  \"configuration.create_parameters.currency.message\": \"Give a name to your currency. The 3 following parameters configure the way new money units are created.\",\n  \"configuration.create_parameters.currency\": \"Currency name\",\n  \"configuration.create_parameters.c\": \"c\",\n  \"configuration.create_parameters.dt\": \"UD period\",\n  \"configuration.create_parameters.ud0\": \"UD(0)\",\n  \"configuration.create_parameters.button.validate\": \"Continue\",\n  \"configuration.create_parameters.wot.title\": \"Web of Trust\",\n  \"configuration.create_parameters.wot.message\": \"The following parameters deal with identities and their links gathered in the Web of Trust concept.\",\n  \"configuration.create_parameters.sigStock\": \"Max cert stock\",\n  \"configuration.create_parameters.sigPeriod\": \"Delay between 2 certs\",\n  \"configuration.create_parameters.sigValidity\": \"Cert expiry delay\",\n  \"configuration.create_parameters.msValidity\": \"Membership expiry delay\",\n  \"configuration.create_parameters.sigQty\": \"Min required certs\",\n  \"configuration.create_parameters.sigWindow\": \"Cert time window\",\n  \"configuration.create_parameters.stepMax\": \"Max distance\",\n  \"configuration.create_parameters.xpercent\": \"Percent of distance\",\n  \"configuration.create_parameters.blockchain.title\": \"Blockchain\",\n  \"configuration.create_parameters.blockchain.message\": \"The technical support of money and identities is the blockchain. It also has some parameters driving its behavior.\",\n  \"configuration.create_parameters.medianTimeBlocks\": \"Blocks count\",\n  \"configuration.create_parameters.avgGenTime\": \"Block gen. duration\",\n  \"configuration.create_parameters.dtDiffEval\": \"Blocks count for diff.\",\n  \"configuration.create_parameters.blocksRot\": \"Personal diff. blocks\",\n  \"configuration.create_parameters.percentRot\": \"Personal diff. rotation\",\n  \"configuration.create_root.title\": \"Root block creation\",\n  \"configuration.create_root.message\": \"This is the final step to create the new currency! The root block or <i>genesis</i> will include the first members and define the currency parameters. Once generated and submitted, the blockchain will be started.\",\n  \"configuration.create_root.button.start\": \"Start HTTP\",\n  \"configuration.create_root.button.stop\": \"Stop HTTP\",\n  \"configuration.create_root.button.generate\": \"Give a try\",\n  \"configuration.create_root.need_a_try\": \"You need to generate a first block with the « Give a try » button. Start HTTP server to do so.\",\n  \"configuration.create_root.button.accept_and_send\": \"Accept this block and start currency\",\n  \"configuration.create_root.button.cancel\": \"Cancel creation and go to home screen\",\n  \"configuration.create_root.host_listening\": \"Host listening at:\",\n  \"configuration.create_uid.pubkey_preview\": \"Public key preview\",\n  \"home.current.number\": \"Current block #\",\n  \"home.current.membersCount\": \"Members count\",\n  \"home.current.medianTime\": \"Median time\",\n  \"home.current.powMin\": \"Common difficulty level\",\n  \"home.current.mmass\": \"Monetary mass\",\n  \"home.pulling.network\": \"Network\",\n  \"home.pulling.peer\": \"Peer\",\n  \"home.pulling.state.unkown\": \"Next sync in few minutes\",\n  \"home.pulling.state.synced\": \"Synced\",\n  \"home.pulling.state.syncing\": \"Syncing...\",\n  \"home.pow.unit\": \"blocks made by this key\",\n  \"home.pow.is_mirror\": \"This node is a mirror\",\n  \"home.pow.is_waiting\": \"Waiting for better proof conditions\",\n  \"home.tabs.overview\": \"Overview\",\n  \"home.tabs.overview.should_reconfigure\": \"Your configuration has changed and your node is no more reachable from the network. You should reconfigure it to have a functional node. If this message appears again, you should manually configure the network settings. Often, selecting only IPv6 interface (disabling IPv4) solves the problem.\",\n  \"home.tabs.network\": \"Peers\",\n  \"home.tabs.network.button.update\": \"Check peers again\",\n  \"home.tabs.logs\": \"Logs\",\n  \"home.tabs.logs.follow.logs\": \"Follow logs\",\n  \"home.tabs.logs.pause.logs\": \"Pause logs\",\n  \"home.tabs.logs.level.error\": \"Error\",\n  \"home.tabs.logs.level.warn\": \"Warning\",\n  \"home.tabs.logs.level.info\": \"Info\",\n  \"home.tabs.logs.level.debug\": \"Debug\",\n  \"home.tabs.logs.level.trace\": \"Trace\",\n  \"sync.title\": \"Synchronize\",\n  \"sync.message\": \"Your node will be synchronized with an existing currency: just enter technical details about a node to sync with it.\",\n  \"sync.host\": \"Host\",\n  \"sync.port\": \"Port\",\n  \"sync.check\": \"Check node\",\n  \"sync.start\": \"Synchronize with this node\",\n  \"sync.failed\": \"Synchronization failed.\",\n  \"sync.mode.simplified\": \"Simplified mode\",\n  \"sync.mode.manual\": \"Manual mode\",\n  \"sync.simplified.choose\": \"Node to connect to\",\n  \"sync.simplified.default_option\": \"Please select a node to continue\",\n  \"sync.simplified.currency\": \"Currency\",\n  \"sync.simplified.main_mirror\": \"(main mirror)\",\n  \"sync.simplified.official_mirror\": \"(other official mirror)\",\n  \"sync.ready.node.part1\": \"This node is available!\",\n  \"sync.ready.node.part2\": \"Click on the green button to proceed.\",\n  \"sync.started.node\": \"Synchronization started on node:\",\n  \"sync.error.unreachable.try.another.node\": \"This node is not available. Please select another one.\",\n  \"home.menu.server.stop\": \"Stop server\",\n  \"home.menu.server.start\": \"Start server\",\n  \"home.menu.server.restart\": \"Restart server\",\n  \"home.state\": \"Server:\",\n  \"home.state.started\": \"STARTED\",\n  \"home.state.stopped\": \"STOPPED\",\n  \"settings.tabs.logs\": \"Logs\",\n  \"settings.tabs.data\": \"Data\",\n  \"settings.tabs.backup\": \"Backup\",\n  \"settings.tabs.identity\": \"Crypto\",\n  \"settings.tabs.network\": \"Network\",\n  \"settings.tabs.currency\": \"Currency\",\n  \"settings.tabs.cpu\": \"CPU\",\n  \"settings.tabs.modules\": \"Modules\",\n  \"settings.data.reset.title\": \"Reset this node\",\n  \"settings.data.reset.message\": \"If you desire to reset this node's data and sync it again with the network, please select a node to sync against and validate.\",\n  \"settings.data.reset.warning\": \"This process <strong>will not</strong> reset the node identity and network settings, which will be reused.\",\n  \"settings.data.reset.peer.none_option\": \"Select a node\",\n  \"settings.data.reset.peer.label\": \"Synchronization peer\",\n  \"settings.data.reset.button\": \"Full reset of the node\",\n  \"settings.data.reset_sync.button\": \"Reset data and start sync\",\n  \"settings.logs.title\": \"Logs\",\n  \"settings.logs.consult.message\": \"Your node continually generates information messages in a log file. This information may help you understand what your node <i>is doing</i> or what it <i>has done</i> few times ago.\",\n  \"settings.logs.consult.button\": \"View real-time logs\",\n  \"settings.logs.share.message\": \"You may want to <b>share your logs</b> with other people, sometimes to get help or to add informations in a bug tracker. Clicking on below button will extract the last 2000 lines of your logs and push it on the web, returning you a link to be shared with whoever you want.\",\n  \"settings.logs.share.button\": \"Create a web link to your logs\",\n  \"settings.logs.share.generating\": \"Generating your link...\",\n  \"settings.logs.share.error\": \"An error occurred during the generation of your link:\",\n  \"settings.data.backup.title\": \"Backup\",\n  \"settings.data.backup.message\": \"You can create backups of your node's data and restore them using the buttons below.\",\n  \"settings.data.backup.warning\": \"<b>Export</b> will only backup your node's data, which <i>excludes your secret key and configuration details</i>.<br><b>Import</b> will reset your node's data by applying the backup. Your secret keys and configuration remains untouched.\",\n  \"settings.data.backup.button.export\": \"Create a data backup\",\n  \"settings.data.backup.button.import\": \"Import a data backup\",\n  \"settings.data.backup.importing\": \"Importing data...\",\n  \"settings.data.backup.imported\": \"Import successfull!\",\n  \"settings.network.button.validate\": \"Save and apply network settings\",\n  \"settings.network.saved\": \"Configuration saved and applied successfully\",\n  \"settings.key.title\": \"Public key of this node:\",\n  \"settings.key.button.validate\": \"Save and use this key\",\n  \"settings.key.button.change\": \"Change keyring\",\n  \"settings.key.pubkey.description\": \"This public key is the public part of your keyring, which is composed of a public key and a private key. This public key is shared with all the peers of the network and users of the currency, while your private key is secretely kept and used by this node to process operations on the network.\",\n  \"settings.data.modal_title\": \"Confirm full reset\",\n  \"settings.data.modal_message\": \"This action will completely reset the data of your node and redirect you to initial configuration screen. Do you confirm?\",\n  \"settings.data.modal_disagree\": \"No, cancel this\",\n  \"settings.data.modal_agree\": \"Yes, process the reset\",\n  \"settings.data.reset.experimental\": \"This functionality is still considered experimental. If you encounters strange behaviors, please stop the software and reset manually your node by removing all the files BUT conf.json under ~/.config/ucoin/ucoin_default, and restart the software.\",\n  \"settings.cpu.title\": \"CPU settings\",\n  \"settings.cpu.message\": \"You can adjust the CPU power dedicated to proof-of-work computation. The higher the value, the faster is your node, the higher the chances you have to compute a block early.\",\n  \"settings.cpu.warning\": \"<b>Up to 8 cores</b> of your machine are dedicated to proof-of-work computation currently. Also, setting CPU to 100% does not mean Duniter will use 100% of each core, but will use as much as possible each of them, as a core is also shared with other programs.\",\n  \"settings.cpu.range\": \"% of CPU power core dedicated to proof-of-work :\",\n  \"settings.cpu.power\": \"Core power:\",\n  \"settings.cpu.saved\": \"CPU settings saved.\",\n  \"settings.modules.title\": \"Modules\",\n  \"settings.modules.message\": \"You can install extensions to your Duniter node to provide new features. These extensions are called <b>Duniter modules</b>.\",\n  \"settings.modules.no_access\": \"This instance does not have enough system rights to install new modules on disk.\",\n  \"settings.modules.install\": \"Install this module\",\n  \"settings.modules.already_install\": \"Module already installed\",\n  \"settings.modules.warning\": \"Please be <b>VERY CAREFUL</b> when choosing to install a module: you should have checked that this module is not a virus, nor wants to steal your informations.<br>A module has <i>a lot of power</i> and can likely access to any part of your computer in the limit of the user's access rights:<ul><li>- your node's keyring (in the computer's memory)</li><li>- your personal files (photos, unencrypted passwords, browser favorites, ...)</li><li>- your internet access</li><li>- your local network</li></ul>You could get informations about a module by looking on the Internet.\",\n  \"settings.modules.warning_light\": \"Please read this warning before installing a module!\",\n  \"settings.modules.warning_close\": \"Close this message\",\n  \"settings.modules.on\": \"On\",\n  \"settings.modules.off\": \"Off\",\n  \"settings.modules.installing\": \"Installation...\",\n  \"settings.modules.installing_warn\": \"Please <b>do not close Duniter</b> during this process!\",\n  \"settings.modules.uninstalling\": \"Removal...\",\n  \"graphs.tabs.blockchain\": \"Blockchain\",\n  \"graphs.tabs.currency\": \"Currency\",\n  \"graphs.blockchain.range\": \"Graphs for the last X blocks: (please choose X value)\",\n  \"graphs.blockchain.with.time\": \"Time variations graph\",\n  \"graphs.blockchain.with.speed\": \"Writing speed graph\",\n  \"graphs.blockchain.with.difficulty\": \"Difficulty graph\",\n  \"help.about_duniter\": \"About Duniter\",\n  \"help.about_duniter.title\": \"About\",\n  \"help.about_duniter.subtitle\": \"Duniter Desktop\",\n  \"help.about_duniter.version\": \"Version: \",\n  \"help.about_duniter.forum\": \"Forum\",\n  \"help.about_duniter.chat\": \"Chat\",\n  \"help.new_version_available\": \"New version available\"\n}\n;","'use strict';\n\nvar co = require('co');\nvar _ = require('underscore');\n\nmodule.exports = function (app) {\n\n  app.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {\n\n    // States\n    $stateProvider.state('index', {\n      url: '/',\n      template: require('views/index'),\n      resolve: {\n        ws: function ws(Webmin) {\n          return Webmin.ws();\n        },\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        }\n      },\n      controller: 'IndexController'\n    }).state('about', {\n      url: '/about',\n      template: require('views/about'),\n      resolve: {\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        },\n        version: function version(summary) {\n          return summary && 'v' + summary.version || 'unknown version';\n        }\n      },\n      controller: 'AboutController'\n    }).state('configure', {\n      abstract: true,\n      url: '/configure',\n      template: require('views/init/layout'),\n      controller: function controller($scope) {\n        $scope.conf = {\n          currency: 'super_currency',\n          c: 0.007376575,\n          dt: 30.4375 * 24 * 3600,\n          ud0: 100,\n          stepMax: 3,\n          sigDelay: 3600 * 24 * 365 * 5,\n          sigPeriod: 0, // Instant\n          sigStock: 40,\n          sigWindow: 3600 * 24 * 14, // 2 weeks\n          sigValidity: 3600 * 24 * 365,\n          msValidity: 3600 * 24 * 365,\n          sigQty: 0,\n          xpercent: 0.9,\n          percentRot: 0.66,\n          blocksRot: 20,\n          avgGenTime: 16 * 60,\n          dtDiffEval: 10,\n          medianTimeBlocks: 20\n        };\n      }\n    }).state('configure.choose', {\n      url: '/choose',\n      template: require('views/init/choose'),\n      controller: function controller($scope, Importer) {\n        Importer($scope);\n      }\n    }).state('configure.create', {\n      url: '/create',\n      template: '<div class=\"ui-scrollable\" ui-view=\"\"></div>'\n    }).state('configure.create.uid', {\n      url: '/create/uid',\n      template: require('views/init/create/create_uid'),\n      controller: 'IdentityController'\n    }).state('configure.create.network', {\n      url: '/create/network',\n      template: require('views/init/create/create_network'),\n      resolve: {\n        netinterfaces: function netinterfaces(Webmin) {\n          return resolveNetworkAutoConf(Webmin);\n        },\n        firstConf: function firstConf() {\n          return true;\n        }\n      },\n      controller: 'NetworkController'\n    }).state('configure.create.parameters', {\n      url: '/create/parameters',\n      template: require('views/init/create/create_parameters'),\n      controller: 'ParametersController'\n    }).state('configure.create.root', {\n      url: '/create/root',\n      template: require('views/init/create/create_root'),\n      controller: 'RootBlockController'\n    }).state('sync', {\n      url: '/sync?host=&port=&sync=&to=',\n      template: require('views/init/sync/sync'),\n      controller: 'SyncController'\n    }).state('main', {\n      abstract: true,\n      url: '/main',\n      template: require('views/main/main'),\n      resolve: {\n        ws: function ws(Webmin) {\n          return Webmin.ws();\n        },\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        },\n        uiModules: function uiModules(Webmin) {\n          return co(regeneratorRuntime.mark(function _callee() {\n            var modules, i, _module, injection, script;\n\n            return regeneratorRuntime.wrap(function _callee$(_context) {\n              while (1) {\n                switch (_context.prev = _context.next) {\n                  case 0:\n                    _context.next = 2;\n                    return Webmin.plugin.uiModules();\n\n                  case 2:\n                    modules = _context.sent;\n                    i = 0;\n\n                  case 4:\n                    if (!(i < modules.length)) {\n                      _context.next = 16;\n                      break;\n                    }\n\n                    _module = modules[i];\n                    _context.next = 8;\n                    return Webmin.plugin.uiGetMenuInjection(_module);\n\n                  case 8:\n                    injection = _context.sent;\n                    script = document.createElement(\"script\");\n\n                    script.type = \"text/javascript\";\n                    script.text = \";\" + injection.menu;\n                    document.body.appendChild(script);\n\n                  case 13:\n                    i++;\n                    _context.next = 4;\n                    break;\n\n                  case 16:\n                    return _context.abrupt('return', modules);\n\n                  case 17:\n                  case 'end':\n                    return _context.stop();\n                }\n              }\n            }, _callee, this);\n          }));\n        }\n      },\n      controller: 'MainController'\n    }).state('main.home', {\n      abstract: true,\n      url: '/home',\n      template: require('views/main/home/home'),\n      controller: 'HomeController'\n    }).state('main.home.overview', {\n      url: '/overview',\n      template: require('views/main/home/tabs/overview'),\n      resolve: {\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        }\n      },\n      controller: 'OverviewController'\n    }).state('main.home.network', {\n      url: '/network',\n      template: require('views/main/home/tabs/network'),\n      resolve: {\n        peers: function peers(Webmin) {\n          return co(regeneratorRuntime.mark(function _callee2() {\n            return regeneratorRuntime.wrap(function _callee2$(_context2) {\n              while (1) {\n                switch (_context2.prev = _context2.next) {\n                  case 0:\n                    return _context2.abrupt('return', Webmin.network.peers());\n\n                  case 1:\n                  case 'end':\n                    return _context2.stop();\n                }\n              }\n            }, _callee2, this);\n          }));\n        }\n      },\n      controller: 'HomeNetworkController'\n    }).state('main.settings', {\n      abstract: true,\n      url: '/settings',\n      template: require('views/main/settings/settings'),\n      resolve: {\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        }\n      },\n      controller: 'SettingsController'\n    }).state('main.settings.data', {\n      url: '/data',\n      template: require('views/main/settings/tabs/data'),\n      resolve: {\n        peers: function peers(Webmin) {\n          return co(regeneratorRuntime.mark(function _callee3() {\n            var self, res;\n            return regeneratorRuntime.wrap(function _callee3$(_context3) {\n              while (1) {\n                switch (_context3.prev = _context3.next) {\n                  case 0:\n                    _context3.prev = 0;\n                    _context3.next = 3;\n                    return Webmin.network.selfPeer();\n\n                  case 3:\n                    self = _context3.sent;\n                    _context3.next = 6;\n                    return Webmin.network.peers();\n\n                  case 6:\n                    res = _context3.sent;\n                    return _context3.abrupt('return', _.filter(res.peers, function (p) {\n                      return p.pubkey != self.pubkey && p.status == 'UP';\n                    }));\n\n                  case 10:\n                    _context3.prev = 10;\n                    _context3.t0 = _context3['catch'](0);\n\n                    console.error(_context3.t0);\n                    return _context3.abrupt('return', []);\n\n                  case 14:\n                  case 'end':\n                    return _context3.stop();\n                }\n              }\n            }, _callee3, this, [[0, 10]]);\n          }));\n        }\n      },\n      controller: 'DataController'\n    }).state('main.settings.logs', {\n      url: '/logs',\n      template: require('views/main/settings/tabs/logs'),\n      controller: 'LogsSettingsController'\n    }).state('main.settings.backup', {\n      url: '/backup',\n      template: require('views/main/settings/tabs/backup'),\n      controller: 'BackupController'\n    }).state('main.settings.cpu', {\n      url: '/cpu',\n      template: require('views/main/settings/tabs/cpu'),\n      resolve: {\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        }\n      },\n      controller: 'CPUController'\n    }).state('main.settings.modules', {\n      url: '/modules',\n      template: require('views/main/settings/tabs/modules'),\n      resolve: {\n        summary: function summary(Webmin) {\n          return Webmin.summary();\n        },\n        hasAccess: function hasAccess(Webmin) {\n          return Webmin.plugin.checkAccess();\n        },\n        allModules: function allModules(Webmin) {\n          return co(regeneratorRuntime.mark(function _callee4() {\n            var modules;\n            return regeneratorRuntime.wrap(function _callee4$(_context4) {\n              while (1) {\n                switch (_context4.prev = _context4.next) {\n                  case 0:\n                    _context4.next = 2;\n                    return Webmin.plugin.allModules();\n\n                  case 2:\n                    modules = _context4.sent;\n                    return _context4.abrupt('return', modules);\n\n                  case 4:\n                  case 'end':\n                    return _context4.stop();\n                }\n              }\n            }, _callee4, this);\n          }));\n        }\n      },\n      controller: 'ModulesController'\n    }).state('main.settings.crypto', {\n      url: '/crypto',\n      template: require('views/main/settings/tabs/crypto'),\n      controller: 'KeyController'\n    }).state('main.settings.network', {\n      url: '/network',\n      resolve: {\n        netinterfaces: function netinterfaces(Webmin) {\n          return resolveNetworkAutoConf(Webmin);\n        },\n        firstConf: function firstConf() {\n          return false;\n        }\n      },\n      template: require('views/main/settings/tabs/network'),\n      controller: 'NetworkController'\n    }).state('main.settings.currency', {\n      url: '/currency',\n      resolve: {\n        conf: function conf(summary) {\n          return co(regeneratorRuntime.mark(function _callee5() {\n            return regeneratorRuntime.wrap(function _callee5$(_context5) {\n              while (1) {\n                switch (_context5.prev = _context5.next) {\n                  case 0:\n                    return _context5.abrupt('return', summary.parameters);\n\n                  case 1:\n                  case 'end':\n                    return _context5.stop();\n                }\n              }\n            }, _callee5, this);\n          }));\n        }\n      },\n      template: require('views/main/settings/tabs/currency'),\n      controller: 'CurrencyController'\n    }).state('main.graphs', {\n      abstract: true,\n      url: '/graphs',\n      template: require('views/main/graphs/graphs'),\n      controller: 'GraphsController'\n    }).state('main.graphs.blockchain', {\n      url: '/blockchain',\n      template: require('views/main/graphs/blockchain'),\n      controller: 'GraphsBlockchainController'\n    }).\n\n    //state('graphs.crypto', {\n    //  url: '/crypto',\n    //  template: require('views/graphs/crypto'),\n    //  controller: 'KeyController'\n    //}).\n    //\n    //state('graphs.network', {\n    //  url: '/network',\n    //  resolve: {\n    //    netinterfaces: (Webmin) => resolveNetworkAutoConf(Webmin),\n    //    firstConf: () => false\n    //  },\n    //  template: require('views/graphs/network'),\n    //  controller: 'NetworkController'\n    //}).\n    //\n    //state('graphs.currency', {\n    //  url: '/currency',\n    //  resolve: {\n    //    conf: (bmapi) => co(function *() {\n    //      return bmapi.currency.parameters();\n    //    })\n    //  },\n    //  template: require('views/graphs/currency'),\n    //  controller: 'CurrencyController'\n    //}).\n\n    state('logs', {\n      url: '/logs',\n      template: require('views/logs'),\n      resolve: {\n        ws: function ws(Webmin) {\n          return Webmin.ws();\n        }\n      },\n      controller: 'LogsController'\n    }).state('error', {\n      url: '/error\\?err',\n      template: require('views/error'),\n      controller: function controller($scope, $stateParams) {\n        return $scope.errorMsg = $stateParams.err || 'err.unknown';\n      }\n    });\n\n    // Default route\n    $urlRouterProvider.otherwise('/');\n  }]);\n\n  app.run(function ($rootScope, $state) {\n    $rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) {\n      console.error(error);\n      $state.go('error', { err: error.message });\n    });\n  });\n\n  function resolveNetworkAutoConf(Webmin) {\n    return co(regeneratorRuntime.mark(function _callee6() {\n      var netinterfaces;\n      return regeneratorRuntime.wrap(function _callee6$(_context6) {\n        while (1) {\n          switch (_context6.prev = _context6.next) {\n            case 0:\n              _context6.next = 2;\n              return Webmin.network.interfaces();\n\n            case 2:\n              netinterfaces = _context6.sent;\n              return _context6.abrupt('return', netinterfaces || { local: {}, remote: {} });\n\n            case 4:\n            case 'end':\n              return _context6.stop();\n          }\n        }\n      }, _callee6, this);\n    }));\n  }\n};\n","'use strict';\n\nmodule.exports = function (app) {\n\n  app.config(['$translateProvider', function ($translateProvider) {\n\n    $translateProvider.translations('en', require('./i18n/en'));\n\n    // Default language\n    $translateProvider.preferredLanguage('en');\n\n    // Other parameters\n    $translateProvider.useSanitizeValueStrategy('');\n  }]);\n};\n","\"use strict\";\n\nmodule.exports = function Peer(json) {\n\n  var that = this;\n\n  var BMA_REGEXP = /^BASIC_MERKLED_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))$/;\n\n  Object.keys(json).forEach(function (key) {\n    that[key] = json[key];\n  });\n\n  that.endpoints = that.endpoints || [];\n  that.statusTS = that.statusTS || 0;\n\n  that.keyID = function () {\n    return that.pubkey && that.pubkey.length > 10 ? that.pubkey.substring(0, 10) : \"Unknown\";\n  };\n\n  that.copyValues = function (to) {\n    var obj = that;\n    [\"version\", \"currency\", \"pub\", \"endpoints\", \"hash\", \"status\", \"statusTS\", \"block\", \"signature\"].forEach(function (key) {\n      to[key] = obj[key];\n    });\n  };\n\n  that.copyValuesFrom = function (from) {\n    var obj = that;\n    [\"version\", \"currency\", \"pub\", \"endpoints\", \"block\", \"signature\"].forEach(function (key) {\n      obj[key] = from[key];\n    });\n  };\n\n  that.json = function () {\n    var obj = that;\n    var json = {};\n    [\"version\", \"currency\", \"endpoints\", \"status\", \"block\", \"signature\"].forEach(function (key) {\n      json[key] = obj[key];\n    });\n    json.raw = that.getRaw();\n    json.pubkey = that.pubkey;\n    return json;\n  };\n\n  that.getBMA = function () {\n    var bma = null;\n    that.endpoints.forEach(function (ep) {\n      var matches = !bma && ep.match(BMA_REGEXP);\n      if (matches) {\n        bma = {\n          \"dns\": matches[2] || '',\n          \"ipv4\": matches[4] || '',\n          \"ipv6\": matches[6] || '',\n          \"port\": matches[8] || 9101\n        };\n      }\n    });\n    return bma || {};\n  };\n\n  that.getDns = function () {\n    var bma = that.getBMA();\n    return bma.dns ? bma.dns : null;\n  };\n\n  that.getIPv4 = function () {\n    var bma = that.getBMA();\n    return bma.ipv4 ? bma.ipv4 : null;\n  };\n\n  that.getIPv6 = function () {\n    var bma = that.getBMA();\n    return bma.ipv6 ? bma.ipv6 : null;\n  };\n\n  that.getPort = function () {\n    var bma = that.getBMA();\n    return bma.port ? bma.port : null;\n  };\n\n  that.getHost = function () {\n    var bma = that.getBMA();\n    var host = that.hasValid4(bma) ? bma.ipv4 : bma.dns ? bma.dns : bma.ipv6 ? '[' + bma.ipv6 + ']' : '';\n    return host;\n  };\n\n  that.getURL = function () {\n    var bma = that.getBMA();\n    var base = '';\n    if (bma.dns) {\n      base = bma.dns;\n    } else if (that.hasValid4(bma)) {\n      base = bma.ipv4;\n    } else if (bma.ipv6) {\n      base = '[' + bma.ipv6 + ']';\n    }\n    if (bma.port) base += ':' + bma.port;\n    return base;\n  };\n\n  that.hasValid4 = function (bma) {\n    return bma.ipv4 && !bma.ipv4.match(/^127.0/) && !bma.ipv4.match(/^192.168/) ? true : false;\n  };\n\n  that.getNamedURL = function () {\n    var bma = that.getBMA();\n    var base = that.hasValid4(bma) ? bma.ipv4 : bma.dns ? bma.dns : bma.ipv6 ? '[' + bma.ipv6 + ']' : '';\n    if (bma.port) base += ':' + bma.port;\n    return base;\n  };\n\n  that.isReachable = function () {\n    return that.getURL() ? true : false;\n  };\n};\n","\"use strict\";\n\nmodule.exports = function mobilecheck() {\n  var check = false;\n  (function (a) {\n    if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true;\n  })(navigator.userAgent || navigator.vendor || window.opera);\n  return check;\n};\n","'use strict';\n\nmodule.exports = function (app) {\n\n  var Base58 = {};\n\n  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n  Base58.alphabetMap = {};\n\n  for (var i = 0; i < Base58.alphabet.length; i++) {\n    Base58.alphabetMap[Base58.alphabet.charAt(i)] = i;\n  }\n\n  Base58.encode = function (buffer) {\n    if (buffer.length === 0) return '';\n\n    var i = void 0,\n        j = void 0,\n        digits = [0];\n    for (i = 0; i < buffer.length; i++) {\n      for (j = 0; j < digits.length; j++) {\n        digits[j] <<= 8;\n      }digits[digits.length - 1] += buffer[i];\n\n      var carry = 0;\n      for (j = digits.length - 1; j >= 0; j--) {\n        digits[j] += carry;\n        carry = digits[j] / 58 | 0;\n        digits[j] %= 58;\n      }\n\n      while (carry) {\n        digits.unshift(carry);\n        carry = digits[0] / 58 | 0;\n        digits[0] %= 58;\n      }\n    }\n\n    // deal with leading zeros\n    for (i = 0; i < buffer.length - 1 && buffer[i] == 0; i++) {\n      digits.unshift(0);\n    }return digits.map(function (digit) {\n      return Base58.alphabet[digit];\n    }).join('');\n  };\n\n  Base58.decode = function (string) {\n    if (string.length === 0) return new Uint8Array();\n\n    var input = string.split('').map(function (c) {\n      return Base58.alphabetMap[c];\n    });\n\n    var i = void 0,\n        j = void 0,\n        bytes = [0];\n    for (i = 0; i < input.length; i++) {\n      for (j = 0; j < bytes.length; j++) {\n        bytes[j] *= 58;\n      }bytes[bytes.length - 1] += input[i];\n\n      var carry = 0;\n      for (j = bytes.length - 1; j >= 0; j--) {\n        bytes[j] += carry;\n        carry = bytes[j] >> 8;\n        bytes[j] &= 0xff;\n      }\n\n      while (carry) {\n        bytes.unshift(carry);\n        carry = bytes[0] >> 8;\n        bytes[0] &= 0xff;\n      }\n    }\n\n    // deal with leading zeros\n    for (i = 0; i < input.length - 1 && input[i] == 0; i++) {\n      bytes.unshift(0);\n    }return new Uint8Array(bytes);\n  };\n\n  app.factory('Base58', function () {\n    return {\n      encode: Base58.encode,\n      decode: Base58.decode\n    };\n  });\n};\n","'use strict';\n\nvar _ = require('underscore');\nvar conf = require('../lib/conf/conf');\nvar moment = require('moment');\n\nmodule.exports = function (app) {\n\n  app.filter('mt_date', function () {\n    return function (input) {\n      if (input == null) {\n        return \"\";\n      }\n      return moment(input * 1000).format('YYYY MM DD');\n    };\n  });\n\n  app.filter('mt_time', function () {\n    return function (input) {\n      if (input == null) {\n        return \"\";\n      }\n      return moment(input * 1000).format('HH:mm:ss');\n    };\n  });\n};\n","'use strict';\n\nmodule.exports = function (app) {\n\n  app.factory('Graph', function () {\n    return {\n\n      speedGraph: function speedGraphs(id, offset, speeds, minSpeeds, maxSpeeds, getSeries) {\n        var xValuex = [];\n        for (var i = 0, len = speeds.length; i < len; i++) {\n          xValuex.push(i + offset);\n        }\n        $(id).highcharts({\n          chart: {\n            type: \"area\",\n            zoomType: 'x',\n            events: {\n              load: function load() {\n                getSeries(this.series);\n              }\n            }\n          },\n          title: {\n            text: 'Blocks writing speed'\n          },\n          subtitle: {\n            text: document.ontouchstart === undefined ? 'Click and drag in the plot area to zoom in' : 'Pinch the chart to zoom in'\n          },\n          xAxis: {\n            //categories: xValuex,\n            minRange: 3, // 10 blocks,\n            labels: {\n              formatter: function formatter() {\n                return this.value + offset;\n              }\n            }\n          },\n          yAxis: {\n            //type: 'logarithmic',\n            minorTickInterval: 1,\n            title: {\n              text: 'Blocks per hour (logarithmic scale)'\n            },\n            floor: 0,\n            min: 0\n          },\n          colors: ['#ff0000', '#7cb5ec', '#000000'],\n          legend: {\n            enabled: true\n          },\n          tooltip: {\n            shared: true,\n            crosshairs: true,\n            formatter: blockFormatter(offset)\n          },\n          plotOptions: {\n            area: {\n              fillColor: {\n                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },\n                stops: [[0, Highcharts.getOptions().colors[0]], [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]]\n              },\n              marker: {\n                radius: 2\n              },\n              lineWidth: 1,\n              states: {\n                hover: {\n                  lineWidth: 1\n                }\n              },\n              threshold: null\n            }\n          },\n\n          series: [{\n            type: 'line',\n            name: \"Upper limit\",\n            data: maxSpeeds\n          }, {\n            type: 'area',\n            name: \"Actual speed\",\n            data: speeds\n          }, {\n            type: 'line',\n            name: \"Lower limit\",\n            data: minSpeeds\n          }]\n        });\n      },\n\n      difficultyGraph: function difficultyGraph(id, offset, difficulties) {\n        $(id).highcharts({\n          chart: {\n            type: \"area\",\n            zoomType: 'x'\n          },\n          title: {\n            text: 'Proof-of-Work difficulty by block'\n          },\n          subtitle: {\n            text: document.ontouchstart === undefined ? 'Click and drag in the plot area to zoom in' : 'Pinch the chart to zoom in'\n          },\n          xAxis: {\n            minRange: 10, // 10 blocks,\n            labels: {\n              formatter: function formatter() {\n                return this.value + offset;\n              }\n            }\n          },\n          yAxis: {\n            title: {\n              text: 'Number of zeros'\n            },\n            floor: 0,\n            min: 0\n          },\n          legend: {\n            enabled: true\n          },\n          tooltip: {\n            shared: true,\n            crosshairs: true,\n            formatter: blockFormatter(offset)\n          },\n          plotOptions: {\n            area: {\n              fillColor: {\n                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },\n                stops: [[0, Highcharts.getOptions().colors[0]], [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]]\n              },\n              marker: {\n                radius: 2\n              },\n              lineWidth: 1,\n              states: {\n                hover: {\n                  lineWidth: 1\n                }\n              },\n              threshold: null\n            }\n          },\n\n          series: [{\n            name: 'PoW difficulty',\n            data: difficulties\n          }]\n        });\n      },\n\n      timeGraphs: function timeGraphs(id, offset, timeAccelerations, medianTimeIncrements, speeds, minSpeeds, maxSpeeds) {\n        var timesInc = [];\n        medianTimeIncrements.forEach(function (inc) {\n          timesInc.push(inc == 0 ? 1 : inc);\n        });\n        $(id).highcharts({\n          chart: {\n            // type: \"area\",\n            zoomType: 'x'\n          },\n          title: {\n            text: 'Blockchain time variations'\n          },\n          subtitle: {\n            text: document.ontouchstart === undefined ? 'Click and drag in the plot area to zoom in' : 'Pinch the chart to zoom in'\n          },\n          xAxis: {\n            minRange: 10, // 10 blocks,\n            labels: {\n              formatter: function formatter() {\n                return this.value + offset;\n              }\n            }\n          },\n          yAxis: {\n            //type: 'logarithmic',\n            minorTickInterval: 1,\n            title: {\n              text: 'Number of seconds (logarithmic scale)'\n            }\n          },\n          legend: {\n            enabled: true\n          },\n          tooltip: {\n            shared: true,\n            crosshairs: true,\n            formatter: blockFormatter(offset)\n          },\n          plotOptions: {\n            area: {\n              fillColor: {\n                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },\n                stops: [[0, Highcharts.getOptions().colors[0]], [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]]\n              },\n              marker: {\n                radius: 2\n              },\n              lineWidth: 1,\n              states: {\n                hover: {\n                  lineWidth: 1\n                }\n              },\n              threshold: null\n            }\n          },\n\n          series: [{\n            name: 'Time acceleration',\n            data: timeAccelerations\n          }, {\n            name: \"Median Time variation\",\n            data: timesInc\n          }, {\n            name: \"Too high duration\",\n            data: maxSpeeds\n          }, {\n            name: \"Actual duration\",\n            data: speeds\n          }, {\n            name: \"Too low duration\",\n            data: minSpeeds\n          }]\n        });\n      }\n    };\n  });\n};\n\nfunction blockFormatter(offset) {\n  return function () {\n    var html = '<span style=\"font-size: 10px\">' + (this.x + offset) + '</span><br/>';\n    for (var i = 0, len = this.points.length; i < len; i++) {\n      var point = this.points[i];\n      var series = point.series;\n      html += '<span style=\"color:' + series.color + '\">\\u25CF</span>' + series.name + ': <b>' + point.y + '</b><br/>';\n    }\n    return html;\n  };\n}\n","'use strict';\n\nmodule.exports = function (app) {\n\n  app.factory('Importer', function ($http, $state, $timeout, UIUtils, Upload, Webmin) {\n\n    return function ($scope) {\n\n      $scope.uploadFiles = function (file, errFiles) {\n        $scope.f = file;\n        $scope.errFile = errFiles && errFiles[0];\n        if (file) {\n          UIUtils.toast('settings.data.backup.importing');\n          file.upload = Upload.upload({\n            url: Webmin.getImportURL(),\n            data: { importData: file }\n          });\n\n          file.upload.then(function (response) {\n            $timeout(function () {\n              UIUtils.toast('settings.data.backup.imported');\n              $state.go('main.home.overview');\n              file.result = response.data;\n            });\n          }, function (response) {\n            if (response.status > 0) $scope.errorMsg = response.status + ': ' + response.data;\n          }, function (evt) {\n            file.progress = Math.min(100, parseInt(100.0 * evt.loaded / evt.total));\n          });\n        }\n      };\n    };\n  });\n};\n","'use strict';\n\nmodule.exports = function (app) {\n\n  app.factory('PubkeyGenerator', function ($timeout, Webmin) {\n\n    var co = require('co');\n\n    return function ($scope) {\n\n      var concat = \"\";\n      $scope.pubkey_preview = \"\";\n      var timeout = preview();\n\n      function preview() {\n        return $timeout(function () {\n          if ($scope.$parent) {\n            var salt = $scope.$parent.conf.idty_entropy;\n            var pass = $scope.$parent.conf.idty_password;\n            var newConcat = [salt, pass].join('');\n            if (salt && pass && newConcat != concat) {\n              concat = newConcat;\n              $scope.previewPubkey(concat);\n              timeout = preview();\n            } else {\n              timeout = preview();\n            }\n          }\n        }, 100);\n      }\n\n      $scope.previewPubkey = function () {\n        return co(regeneratorRuntime.mark(function _callee() {\n          var data;\n          return regeneratorRuntime.wrap(function _callee$(_context) {\n            while (1) {\n              switch (_context.prev = _context.next) {\n                case 0:\n                  _context.next = 2;\n                  return Webmin.key.preview({\n                    conf: $scope.$parent.conf\n                  });\n\n                case 2:\n                  data = _context.sent;\n\n                  $scope.pubkey_preview = data.pubkey;\n\n                case 4:\n                case 'end':\n                  return _context.stop();\n              }\n            }\n          }, _callee, this);\n        })).catch(function () {\n          return null;\n        });\n      };\n    };\n  });\n};\n","'use strict';\n\nmodule.exports = function (app) {\n\n  app.factory('UIUtils', function ($q, $translate, $state, $location) {\n    return {\n\n      translate: function translate(msg) {\n        return $q.when($translate(msg));\n      },\n\n      toastRaw: function toastRaw(msg) {\n        return Materialize.toast(msg, 4000);\n      },\n\n      toast: function toast(msg) {\n        return $q.when($translate(msg)).then(function (translated) {\n          return Materialize.toast(translated, 4000);\n        });\n      },\n\n      enableInputs: function enableInputs() {\n        return $('i.prefix, label[value!=\"\"]').addClass('active');\n      },\n\n      enableTabs: function enableTabs() {\n        var jTabs = $('ul.tabs');\n        jTabs.tabs();\n        $('ul.tabs a').click(function (e) {\n          var href = $(e.currentTarget).attr('href');\n          var state = href.slice(1);\n          $state.go(state);\n        });\n\n        var currentID = $location.path().replace(/\\//g, '.').replace(/\\./, '');\n\n        jTabs.tabs('select_tab', currentID);\n      },\n\n      changeTitle: function changeTitle(version) {\n        return document.title = 'Duniter ' + version;\n      }\n    };\n  });\n};\n","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar co = require('co');\nvar _ = require('underscore');\nvar conf = require('../lib/conf/conf');\n\nmodule.exports = function (angular) {\n\n  angular.module('duniter.services.webmin', ['ngResource']).factory('Webmin', function ($http, $q) {\n\n    function httpProtocol() {\n      return window.location.protocol + '//';\n    }\n\n    function wsProtocol() {\n      return window.location.protocol === 'https:' ? 'wss://' : 'ws://';\n    }\n\n    function Webmin(server) {\n\n      function getResource(uri, protocol) {\n        return function (params) {\n          return $q.when(httpGet(uri, params, protocol));\n        };\n      }\n\n      function httpGet(uri, params, protocol) {\n        return Q.Promise(function (resolve, reject) {\n          var config = {\n            timeout: conf.api_timeout\n          },\n              suffix = '',\n              pkeys = [],\n              queryParams = null;\n          if ((typeof params === 'undefined' ? 'undefined' : _typeof(params)) == 'object') {\n            pkeys = _.keys(params);\n            queryParams = {};\n          }\n          pkeys.forEach(function (pkey) {\n            var prevURI = uri;\n            uri = uri.replace(new RegExp(':' + pkey), params[pkey]);\n            if (prevURI == uri) {\n              queryParams[pkey] = params[pkey];\n            }\n          });\n          config.params = queryParams;\n          $http.get((protocol || httpProtocol()) + server + uri + suffix, config).success(function (data, status, headers, config) {\n            resolve(data);\n          }).error(function (data, status, headers, config) {\n            console.log(data);\n            reject(data);\n          });\n        });\n      }\n\n      function postResource(uri) {\n        return function (data, params) {\n          return $q.when(Q.Promise(function (resolve, reject) {\n            var config = {\n              timeout: 4000\n            },\n                suffix = '',\n                pkeys = [],\n                queryParams = null;\n            if ((typeof params === 'undefined' ? 'undefined' : _typeof(params)) == 'object') {\n              pkeys = _.keys(params);\n              queryParams = {};\n            }\n            pkeys.forEach(function (pkey) {\n              var prevURI = uri;\n              uri = uri.replace(new RegExp(':' + pkey), params[pkey]);\n              if (prevURI == uri) {\n                queryParams[pkey] = params[pkey];\n              }\n            });\n            config.params = queryParams;\n            $http.post(httpProtocol() + server + uri + suffix, data, config).success(function (data, status, headers, config) {\n              resolve(data);\n            }).error(function (data, status, headers, config) {\n              reject(data);\n            });\n          }));\n        };\n      }\n\n      var wsMap = {};\n\n      function _ws(uri) {\n        var sock = wsMap[uri] || new WebSocket(uri);\n        wsMap[uri] = sock;\n        sock.onclose = function (e) {\n          console.log('close');\n          console.log(e);\n        };\n        sock.onerror = function (e) {\n          console.log('onerror');\n          console.log(e);\n        };\n        var opened = false,\n            openedCallback = void 0;\n        sock.onopen = function () {\n          opened = true;\n          openedCallback && openedCallback();\n        };\n        var listener = void 0,\n            messageType = void 0;\n        sock.onmessage = function (e) {\n          var res = JSON.parse(e.data);\n          if (res.type == 'log') {\n            for (var i = 0, len = res.value.length; i < len; i++) {\n              var log = res.value[i];\n              // console[log.level](log.msg);\n            }\n          }\n          if (listener && (messageType === undefined || res.type === messageType)) {\n            listener(res);\n          }\n        };\n        return {\n          on: function on(type, callback) {\n            messageType = type;\n            listener = callback;\n          },\n          whenOpened: function whenOpened() {\n            return co(regeneratorRuntime.mark(function _callee() {\n              return regeneratorRuntime.wrap(function _callee$(_context) {\n                while (1) {\n                  switch (_context.prev = _context.next) {\n                    case 0:\n                      if (!opened) {\n                        _context.next = 4;\n                        break;\n                      }\n\n                      return _context.abrupt('return', true);\n\n                    case 4:\n                      _context.next = 6;\n                      return Q.Promise(function (resolve) {\n                        openedCallback = resolve;\n                      });\n\n                    case 6:\n                    case 'end':\n                      return _context.stop();\n                  }\n                }\n              }, _callee, this);\n            }));\n          },\n          send: function send(msg) {\n            return sock.send(msg);\n          }\n        };\n      }\n\n      return {\n        getExportURL: function getExportURL() {\n          return httpProtocol() + server + '/webmin/data/duniter_export';\n        },\n        getImportURL: function getImportURL() {\n          return httpProtocol() + server + '/webmin/data/duniter_import';\n        },\n        isNodePubliclyReachable: getResource('/webmin/server/reachable'),\n        ws: function ws() {\n          return _ws(wsProtocol() + server + '/webmin/ws');\n        },\n        wsBlock: function wsBlock() {\n          return _ws(wsProtocol() + server + '/webmin/ws_block');\n        },\n        wsPeer: function wsPeer() {\n          return _ws(wsProtocol() + server + '/webmin/ws_peer');\n        },\n        summary: getResource('/webmin/summary'),\n        powSummary: getResource('/webmin/summary/pow'),\n        logsExport: function logsExport(nbLines) {\n          return getResource('/webmin/logs/export/' + nbLines)();\n        },\n        blockchain: {\n          blocks: function blocks(opts) {\n            return getResource('/webmin/blockchain/blocks/' + opts.count + '/' + opts.from)();\n          },\n          block_add: postResource('/webmin/blockchain/add')\n        },\n        server: {\n          http: {\n            start: getResource('/webmin/server/http/start'),\n            stop: getResource('/webmin/server/http/stop'),\n            openUPnP: getResource('/webmin/server/http/upnp/open'),\n            regularUPnP: getResource('/webmin/server/http/upnp/regular')\n          },\n          services: {\n            startAll: getResource('/webmin/server/services/start_all'),\n            stopAll: getResource('/webmin/server/services/stop_all')\n          },\n          sendConf: postResource('/webmin/server/send_conf'),\n          netConf: postResource('/webmin/server/net_conf'),\n          keyConf: postResource('/webmin/server/key_conf'),\n          cpuConf: postResource('/webmin/server/cpu_conf'),\n          testSync: postResource('/webmin/server/test_sync'),\n          startSync: postResource('/webmin/server/start_sync'),\n          previewNext: getResource('/webmin/server/preview_next'),\n          autoConfNetwork: getResource('/webmin/server/auto_conf_network'),\n          resetData: getResource('/webmin/server/reset/data'),\n          republishNewSelfPeer: getResource('/webmin/server/republish_selfpeer')\n        },\n        key: {\n          preview: postResource('/webmin/key/preview')\n        },\n        network: {\n          interfaces: getResource('/webmin/network/interfaces'),\n          selfPeer: getResource('/webmin/network/self'),\n          peers: getResource('/webmin/network/peers')\n        },\n        currency: {\n          parameters: getResource('/webmin/currency/parameters')\n        },\n        plugin: {\n          allModules: getResource('/webmin/plug/modules'),\n          uiModules: getResource('/webmin/plug/ui_modules'),\n          uiGetMenuInjection: function uiGetMenuInjection(moduleName) {\n            return getResource('/webmin/plug/ui_modules/inject/' + moduleName)();\n          },\n          checkAccess: getResource('/webmin/plug/check_access'),\n          addPackage: function addPackage(pkg) {\n            return getResource('/webmin/plug/add/' + encodeURIComponent(pkg), null, 60000)();\n          },\n          removePackage: function removePackage(pkg) {\n            return getResource('/webmin/plug/rem/' + encodeURIComponent(pkg))();\n          }\n        }\n      };\n    }\n    var server = window.location.hostname;\n    var port = window.location.port;\n    var service = Webmin([server, port].join(':'));\n    service.instance = Webmin;\n    return service;\n  });\n};\n"]}
\ No newline at end of file
diff --git a/public/templates.js b/public/templates.js
index 3a220e5..aacaece 100644
--- a/public/templates.js
+++ b/public/templates.js
@@ -590,7 +590,7 @@ var buf = [];
 var jade_mixins = {};
 var jade_interp;
 
-buf.push("<ul id=\"slide-out\" class=\"side-nav\"><li><div class=\"card hide-on-med-and-up\"><div class=\"card-image\"><img src=\"images/menu_bg.jpg\"/><p class=\"card-title\"><span class=\"menu-title\">meta_brouzouf</span><span class=\"menu-speach\">22 members</span><span class=\"menu-footer\">DuniterUI v0.21.0</span></p></div></div></li><li><a ui-sref=\"home\" class=\"waves-effect waves-teal\"><i class=\"fa fa-2x fa-photo\"></i>" + (jade.escape(null == (jade_interp = 'Overview') ? "" : jade_interp)) + "</a></li><li><a ui-sref=\"graphs.blockchain\" class=\"waves-effect waves-teal\"><i class=\"fa fa-2x fa-area-chart\"></i>" + (jade.escape(null == (jade_interp = 'Charts') ? "" : jade_interp)) + "</a></li><li><a href=\"#!\" class=\"waves-effect waves-teal\"><i class=\"fa fa-2x fa-heartbeat\"></i>" + (jade.escape(null == (jade_interp = 'Status') ? "" : jade_interp)) + "</a></li><li><a ui-sref=\"settings.data\" class=\"waves-effect waves-teal\"><i class=\"fa fa-2x fa-gear\"></i>" + (jade.escape(null == (jade_interp = 'Settings') ? "" : jade_interp)) + "</a></li></ul><ul id=\"about\" class=\"dropdown-content\"><li><button ng-click=\"showAbout()\" class=\"btn-flat left-align\"><i class=\"material-icons left\">info_outline</i><span>{{ 'help.about_duniter' | translate }}</span></button></li><li ng-repeat=\"entry in notifications.help\"><button ng-click=\"entry.onclick()\" class=\"btn-flat left-align\"><i class=\"material-icons left\">{{ entry.icon }}</i><span data-badge=\"1\">{{ entry.message | translate }}</span></button></li></ul><ul id=\"serveractions\" class=\"dropdown-content\"><li><button ng-click=\"restartServer()\" class=\"btn-flat left-align\"><i class=\"material-icons left\">replay</i><span>{{ 'home.menu.server.restart' | translate }}</span></button></li><li><button ng-click=\"startServer()\" ng-class=\"{ disabled : server_started || !server_stopped }\" ng-disabled=\"server_started\" class=\"btn-flat left-align\"><i class=\"material-icons left\">play_arrow</i><span>{{ 'home.menu.server.start' | translate }}</span></button></li><li><button ng-click=\"stopServer()\" ng-class=\"{ disabled : server_stopped || !server_started }\" ng-disabled=\"server_stopped\" class=\"btn-flat left-align\"><i class=\"material-icons left\">stop</i><span>{{ 'home.menu.server.stop' | translate }}</span></button></li></ul><nav><div class=\"nav-wrapper\"><span data-activates=\"slide-out\" class=\"waves-effect waves-light button-collapse stop-nav full hide-on-med-and-up\"><i class=\"mdi-navigation-menu\"></i></span><!--<a href=\"#\" class=\"brand-logo left\">Logo</a>--><ul class=\"left hide-on-small-and-down\"><li ng-class=\"{ active: menu == 'home' }\"><a ui-sref=\"main.home.overview\" class=\"waves-effect waves-light\"><i class=\"fa fa-2x fa-home left\"></i><span>{{ 'top.menu.overview' | translate }}</span></a></li><li ng-class=\"{ active: menu == 'graphs' }\"><a ui-sref=\"main.graphs.blockchain\" class=\"waves-effect waves-light\"><i class=\"fa fa-2x fa-database left\"></i><span>{{ 'top.menu.data' | translate }}</span></a></li><li ng-class=\"{ active: menu == 'settings' }\"><a ui-sref=\"main.settings.logs\" class=\"waves-effect waves-light\"><i class=\"fa fa-2x fa-gear left\"></i><span>{{ 'top.menu.settings' | translate }}</span></a></li></ul><ul class=\"right\"><li><a ng-click=\"openWallet()\" class=\"waves-effect waves-light\"><i class=\"fa fa-2x fa-suitcase left\"></i><span>{{ 'top.menu.wallet' | translate }}</span></a></li><li><a href=\"#!\" data-activates=\"about\" data-badge=\"{{ notifications.help.length }}\" class=\"waves-effect waves-light dropdown-button\"><i class=\"material-icons\">info_outline</i></a></li><li><a href=\"#!\" data-activates=\"serveractions\" class=\"waves-effect waves-light dropdown-button\"><i class=\"material-icons\">more_vert</i></a></li></ul></div></nav><div ui-view=\"\"></div>");;return buf.join("");
+buf.push("<ul id=\"slide-out\" class=\"side-nav\"><li><div class=\"card hide-on-med-and-up\"><div class=\"card-image\"><img src=\"images/menu_bg.jpg\"/><p class=\"card-title\"><span class=\"menu-title\">meta_brouzouf</span><span class=\"menu-speach\">22 members</span><span class=\"menu-footer\">DuniterUI v0.21.0</span></p></div></div></li><li><a ui-sref=\"home\" class=\"waves-effect waves-teal\"><i class=\"fa fa-2x fa-photo\"></i>" + (jade.escape(null == (jade_interp = 'Overview') ? "" : jade_interp)) + "</a></li><li><a ui-sref=\"graphs.blockchain\" class=\"waves-effect waves-teal\"><i class=\"fa fa-2x fa-area-chart\"></i>" + (jade.escape(null == (jade_interp = 'Charts') ? "" : jade_interp)) + "</a></li><li><a href=\"#!\" class=\"waves-effect waves-teal\"><i class=\"fa fa-2x fa-heartbeat\"></i>" + (jade.escape(null == (jade_interp = 'Status') ? "" : jade_interp)) + "</a></li><li><a ui-sref=\"settings.data\" class=\"waves-effect waves-teal\"><i class=\"fa fa-2x fa-gear\"></i>" + (jade.escape(null == (jade_interp = 'Settings') ? "" : jade_interp)) + "</a></li></ul><ul id=\"about\" class=\"dropdown-content\"><li><button ng-click=\"showAbout()\" class=\"btn-flat left-align\"><i class=\"material-icons left\">info_outline</i><span>{{ 'help.about_duniter' | translate }}</span></button></li><li ng-repeat=\"entry in notifications.help\"><button ng-click=\"entry.onclick()\" class=\"btn-flat left-align\"><i class=\"material-icons left\">{{ entry.icon }}</i><span data-badge=\"1\">{{ entry.message | translate }}</span></button></li></ul><ul id=\"serveractions\" class=\"dropdown-content\"><li><button ng-click=\"restartServer()\" class=\"btn-flat left-align\"><i class=\"material-icons left\">replay</i><span>{{ 'home.menu.server.restart' | translate }}</span></button></li><li><button ng-click=\"startServer()\" ng-class=\"{ disabled : server_started || !server_stopped }\" ng-disabled=\"server_started\" class=\"btn-flat left-align\"><i class=\"material-icons left\">play_arrow</i><span>{{ 'home.menu.server.start' | translate }}</span></button></li><li><button ng-click=\"stopServer()\" ng-class=\"{ disabled : server_stopped || !server_started }\" ng-disabled=\"server_stopped\" class=\"btn-flat left-align\"><i class=\"material-icons left\">stop</i><span>{{ 'home.menu.server.stop' | translate }}</span></button></li></ul><nav><div class=\"nav-wrapper\"><span data-activates=\"slide-out\" class=\"waves-effect waves-light button-collapse stop-nav full hide-on-med-and-up\"><i class=\"mdi-navigation-menu\"></i></span><!--<a href=\"#\" class=\"brand-logo left\">Logo</a>--><ul class=\"left hide-on-small-and-down\"><li ng-class=\"{ active: menu == 'home' }\"><a ui-sref=\"main.home.overview\" class=\"waves-effect waves-light\"><i class=\"fa fa-2x fa-home left\"></i><span>{{ 'top.menu.overview' | translate }}</span></a></li><li ng-class=\"{ active: menu == 'graphs' }\"><a ui-sref=\"main.graphs.blockchain\" class=\"waves-effect waves-light\"><i class=\"fa fa-2x fa-database left\"></i><span>{{ 'top.menu.data' | translate }}</span></a></li><li ng-class=\"{ active: menu == 'settings' }\"><a ui-sref=\"main.settings.logs\" class=\"waves-effect waves-light\"><i class=\"fa fa-2x fa-gear left\"></i><span>{{ 'top.menu.settings' | translate }}</span></a></li></ul><ul class=\"right\"><li ng-repeat=\"menu in externalMenus\"><a ng-click=\"menu.menuOpen()\" class=\"waves-effect waves-light\"><i ng-class=\"menu.menuIconClass\" class=\"fa fa-2x left\"></i><span>{{ menu.menuLabel }}</span></a></li><li><a href=\"#!\" data-activates=\"about\" data-badge=\"{{ notifications.help.length }}\" class=\"waves-effect waves-light dropdown-button\"><i class=\"material-icons\">info_outline</i></a></li><li><a href=\"#!\" data-activates=\"serveractions\" class=\"waves-effect waves-light dropdown-button\"><i class=\"material-icons\">more_vert</i></a></li></ul></div></nav><div ui-view=\"\"></div>");;return buf.join("");
 };
 if (typeof define === 'function' && define.amd) {
   define([], function() {
@@ -609,7 +609,7 @@ var buf = [];
 var jade_mixins = {};
 var jade_interp;
 
-buf.push("<div id=\"modalReset\" class=\"modal\"><div class=\"modal-content\"><h4>{{ 'settings.data.modal_title' | translate }}</h4><p>{{ 'settings.data.modal_message' | translate }}</p></div><div class=\"modal-footer\"><a class=\"btn modal-action modal-close waves-effect waves-light btn-flat\">{{ 'settings.data.modal_disagree' | translate }}</a><a ng-click=\"fullReset()\" class=\"btn modal-action modal-close waves-effect waves-light orange\"><i class=\"material-icons left\">done</i>" + (jade.escape(null == (jade_interp = "{{ 'settings.data.modal_agree' | translate }}") ? "" : jade_interp)) + "</a></div></div><main class=\"home-main main-screen\"><div class=\"container\"><div class=\"row\"><div class=\"col s12\"><ul class=\"tabs\"><li class=\"tab col s2\"><a href=\"#main.settings.logs\"><i class=\"fa fa-newspaper-o\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.logs' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.backup\"><i class=\"fa fa-folder-open\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.backup' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.data\"><i class=\"fa fa-database\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.data' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.crypto\"><i class=\"fa fa-key\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.identity' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.network\"><i class=\"fa fa-globe\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.network' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.currency\"><i class=\"fa fa-balance-scale\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.currency' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.cpu\"><i class=\"fa fa-dashboard\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.cpu' | translate }}") ? "" : jade_interp)) + "</a></li></ul></div></div></div><div ui-view=\"\" class=\"ui-scrollable\"></div></main>");;return buf.join("");
+buf.push("<div id=\"modalReset\" class=\"modal\"><div class=\"modal-content\"><h4>{{ 'settings.data.modal_title' | translate }}</h4><p>{{ 'settings.data.modal_message' | translate }}</p></div><div class=\"modal-footer\"><a class=\"btn modal-action modal-close waves-effect waves-light btn-flat\">{{ 'settings.data.modal_disagree' | translate }}</a><a ng-click=\"fullReset()\" class=\"btn modal-action modal-close waves-effect waves-light orange\"><i class=\"material-icons left\">done</i>" + (jade.escape(null == (jade_interp = "{{ 'settings.data.modal_agree' | translate }}") ? "" : jade_interp)) + "</a></div></div><main class=\"home-main main-screen\"><div class=\"container\"><div class=\"row\"><div class=\"col s12\"><ul class=\"tabs\"><li class=\"tab col s2\"><a href=\"#main.settings.logs\"><i class=\"fa fa-newspaper-o\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.logs' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.backup\"><i class=\"fa fa-folder-open\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.backup' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.data\"><i class=\"fa fa-database\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.data' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.crypto\"><i class=\"fa fa-key\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.identity' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.network\"><i class=\"fa fa-globe\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.network' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.currency\"><i class=\"fa fa-balance-scale\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.currency' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.cpu\"><i class=\"fa fa-dashboard\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.cpu' | translate }}") ? "" : jade_interp)) + "</a></li><li class=\"tab col s2\"><a href=\"#main.settings.modules\"><i class=\"fa fa-cubes\">&nbsp;</i>" + (jade.escape(null == (jade_interp = " {{ 'settings.tabs.modules' | translate }}") ? "" : jade_interp)) + "</a></li></ul></div></div></div><div ui-view=\"\" class=\"ui-scrollable\"></div></main>");;return buf.join("");
 };
 if (typeof define === 'function' && define.amd) {
   define([], function() {
@@ -736,6 +736,25 @@ if (typeof define === 'function' && define.amd) {
 }
 });
 
+;require.register("views/main/settings/tabs/modules.jade", function(exports, require, module) {
+var __templateData = function template(locals) {
+var buf = [];
+var jade_mixins = {};
+var jade_interp;
+
+buf.push("<div class=\"container modules\"><div class=\"row\"><form class=\"s12 center\"><div class=\"card\"><div class=\"card-action\"><i class=\"fa fa-cubes fa-5x\"></i><h1 translate=\"settings.modules.title\" class=\"card-title\"></h1><p translate=\"settings.modules.message\"></p><blockquote ng-if=\"!hasAccess\" translate=\"settings.modules.no_access\" class=\"left-align orange lighten-5\"></blockquote><blockquote ng-if=\"hasAccess &amp;&amp; !warningShown\" class=\"left-align orange lighten-5\"><a href=\"\" translate=\"settings.modules.warning_light\" ng-click=\"showWarning()\" class=\"waves-effect waves-light\"></a></blockquote><blockquote ng-if=\"hasAccess &amp;&amp; warningShown\" class=\"left-align orange lighten-5\"><div translate=\"settings.modules.warning\"></div><a href=\"\" translate=\"settings.modules.warning_close\" ng-click=\"hideWarning()\" class=\"close waves-effect waves-light\"></a></blockquote></div></div></form><ul class=\"collection with-header\"><li ng-repeat=\"mod in modules track by $index\" class=\"collection-item\"><div><span>{{ mod.fullName }}</span><div class=\"switch secondary-content\"><label><span translate=\"settings.modules.off\"></span><input type=\"checkbox\" ng-model=\"mod.installed\" ng-disabled=\"mod.disabled\" ng-click=\"switchModule(mod)\"/><span class=\"lever\"></span><span translate=\"settings.modules.on\"></span></label></div></div><div ng-if=\"mod.installing\" class=\"installing\"><div class=\"left preloader-wrapper small active\"><div class=\"spinner-layer spinner-blue-only\"><div class=\"circle-clipper left\"><div class=\"circle\"></div></div></div></div><h5 ng-if=\"mod.installed === true\">{{ 'settings.modules.installing' | translate }}</h5><h5 ng-if=\"mod.installed !== true\">{{ 'settings.modules.uninstalling' | translate }}</h5><blockquote translate=\"settings.modules.installing_warn\" class=\"left-align orange lighten-5\"></blockquote></div></li><li class=\"collection-item install_package\"><div class=\"input-field col s6\"><i class=\"material-icons prefix\">language</i><input type=\"text\" ng-model=\"module_to_install\" placeholder=\"Package: module@version, git+https://github.com/user/package.git, ...\"/></div><div class=\"switch secondary-content\"><button ng-click=\"installModule()\" ng-disabled=\"installing\" class=\"btn waves-effect\">{{ 'settings.modules.install' | translate }}</button></div></li></ul></div></div>");;return buf.join("");
+};
+if (typeof define === 'function' && define.amd) {
+  define([], function() {
+    return __templateData;
+  });
+} else if (typeof module === 'object' && module && module.exports) {
+  module.exports = __templateData;
+} else {
+  __templateData;
+}
+});
+
 ;require.register("views/main/settings/tabs/network.jade", function(exports, require, module) {
 var __templateData = function template(locals) {
 var buf = [];
diff --git a/server/controller/webmin.js b/server/controller/webmin.js
index 116ac7c..6c87093 100644
--- a/server/controller/webmin.js
+++ b/server/controller/webmin.js
@@ -9,6 +9,7 @@ const stream      = require('stream');
 const _ = require('underscore');
 const Q = require('q');
 const co = require('co');
+const plugin = require('duniter/app/modules/plugin');
 const duniterKeypair = require('duniter-keypair');
 const common = require('duniter-common');
 const network = require('duniter-bma').duniter.methods;
@@ -17,11 +18,11 @@ const contacter = require('duniter-crawler').duniter.methods.contacter;
 const Peer = common.document.Peer
 const Identity = common.document.Identity
 
-module.exports = (duniterServer, startServices, stopServices) => {
-  return new WebAdmin(duniterServer, startServices, stopServices);
+module.exports = (duniterServer, startServices, stopServices, listDuniterUIPlugins) => {
+  return new WebAdmin(duniterServer, startServices, stopServices, listDuniterUIPlugins);
 };
 
-function WebAdmin (duniterServer, startServices, stopServices) {
+function WebAdmin (duniterServer, startServices, stopServices, listDuniterUIPlugins) {
 
   const logger = duniterServer.logger;
   const rawer = common.rawer;
@@ -555,6 +556,53 @@ function WebAdmin (duniterServer, startServices, stopServices) {
       });
   }
 
+  /*********
+   * PLUGIN STUFF
+   *********/
+
+  this.plugUiModulesList = (req) => co(function*() {
+    return _.pluck(_.filter(listDuniterUIPlugins(), p => p.required.duniterUI), 'name')
+  })
+
+  this.plugModulesList = (req) => co(function*() {
+    return listDuniterUIPlugins().map(plugin => {
+      return {
+        name: plugin.name,
+        version: plugin.version
+      }
+    })
+  })
+
+  this.plugUiModulesGetInjection = (req) => co(function*() {
+    const module = req.params.package
+    const required = require(module)
+    return required.duniterUI.inject || {}
+  })
+
+  this.plugCheckAccess = (req) => plugin.duniter.methods.canWrite()
+
+  this.plugAdd = (req) => co(function*() {
+    const module = req.params.package
+    if (module.match(/^file:/)) {
+      const resolvedPath = path.resolve(module.replace('file:', ''))
+      const installed = listDuniterUIPlugins()
+      for (const module of installed) {
+        if (module.version.match(new RegExp(resolvedPath))) {
+          return { success: false }
+        }
+      }
+    }
+    // Do not wait for full installation, too long
+    plugin.duniter.methods.npmInstall(module, null, path.join(__dirname, '../../'))
+    return { success: true }
+  })
+
+  this.plugRemove = (req) => co(function*() {
+    const module = req.params.package
+    yield plugin.duniter.methods.npmRemove(module, null, path.join(__dirname, '../../'))
+    return true
+  })
+
 }
 
 function getLANIPv4 () {
diff --git a/server/lib/routes.js b/server/lib/routes.js
index e979a7e..1b7bf01 100644
--- a/server/lib/routes.js
+++ b/server/lib/routes.js
@@ -35,6 +35,12 @@ module.exports = {
         handleRequest(app.get.bind(app),  '/webmin/network/interfaces',        webminCtrl.listInterfaces);
         handleRequest(app.get.bind(app),  '/webmin/network/self',              webminCtrl.selfPeer);
         handleRequest(app.get.bind(app),  '/webmin/network/peers',             webminCtrl.peers);
+        handleRequest(app.get.bind(app),  '/webmin/plug/modules',              webminCtrl.plugModulesList);
+        handleRequest(app.get.bind(app),  '/webmin/plug/ui_modules',           webminCtrl.plugUiModulesList);
+        handleRequest(app.get.bind(app),  '/webmin/plug/ui_modules/inject/:package', webminCtrl.plugUiModulesGetInjection);
+        handleRequest(app.get.bind(app),  '/webmin/plug/check_access',         webminCtrl.plugCheckAccess);
+        handleRequest(app.get.bind(app),  '/webmin/plug/add/:package',         webminCtrl.plugAdd);
+        handleRequest(app.get.bind(app),  '/webmin/plug/rem/:package',         webminCtrl.plugRemove);
         handleFileRequest(app.get.bind(app),'/webmin/data/duniter_export',     webminCtrl.exportData);
         handleRequest(app.post.bind(app), '/webmin/data/duniter_import',       webminCtrl.importData);
     },
diff --git a/yarn.lock b/yarn.lock
index 989ec41..642d50a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -40,10 +40,10 @@ acorn@^2.1.0:
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7"
 
 acorn@^4.0.3:
-  version "4.0.11"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0"
+  version "4.0.13"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
 
-adm-zip@0.4.7:
+adm-zip@0.4.7, adm-zip@^0.4.7:
   version "0.4.7"
   resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1"
 
@@ -150,6 +150,31 @@ aproba@^1.0.3:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab"
 
+archiver-utils@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174"
+  dependencies:
+    glob "^7.0.0"
+    graceful-fs "^4.1.0"
+    lazystream "^1.0.0"
+    lodash "^4.8.0"
+    normalize-path "^2.0.0"
+    readable-stream "^2.0.0"
+
+archiver@1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/archiver/-/archiver-1.3.0.tgz#4f2194d6d8f99df3f531e6881f14f15d55faaf22"
+  dependencies:
+    archiver-utils "^1.3.0"
+    async "^2.0.0"
+    buffer-crc32 "^0.2.1"
+    glob "^7.0.0"
+    lodash "^4.8.0"
+    readable-stream "^2.0.0"
+    tar-stream "^1.5.0"
+    walkdir "^0.0.11"
+    zip-stream "^1.1.0"
+
 are-we-there-yet@~1.1.2:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
@@ -235,7 +260,7 @@ async@0.1.22:
   version "0.1.22"
   resolved "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061"
 
-async@2.2.0:
+async@2.2.0, async@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/async/-/async-2.2.0.tgz#c324eba010a237e4fbd55a12dee86367d5c0ef32"
   dependencies:
@@ -245,6 +270,10 @@ async@~0.2.6:
   version "0.2.10"
   resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
 
+async@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9"
+
 asynckit@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -862,8 +891,10 @@ balanced-match@^0.4.1:
   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
 
 base-x@^2.0.1:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/base-x/-/base-x-2.0.5.tgz#11967f90b42995cfdb5f50a1be499d7675db4fce"
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/base-x/-/base-x-2.0.6.tgz#4582a91ebcec99ee06f4e4032030b0cf1c2941d8"
+  dependencies:
+    safe-buffer "^5.0.1"
 
 base64-js@^1.0.2:
   version "1.2.0"
@@ -889,10 +920,23 @@ binary-extensions@^1.0.0:
   version "1.8.0"
   resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
 
+"binary@>= 0.3.0 < 1", binary@~0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
+  dependencies:
+    buffers "~0.1.1"
+    chainsaw "~0.1.0"
+
 bindings@1.2.1, bindings@1.2.x, bindings@~1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11"
 
+bl@^1.0.0:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
+  dependencies:
+    readable-stream "^2.0.5"
+
 bl@~0.7.0:
   version "0.7.0"
   resolved "https://registry.yarnpkg.com/bl/-/bl-0.7.0.tgz#3fb0670602ac2878eb770dc2039f1836be62ae5b"
@@ -1050,12 +1094,16 @@ brunch@2.10.9:
     source-map "~0.5"
     universal-path "^0.1"
 
-bs58@4.0.0:
+bs58@4.0.0, bs58@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.0.tgz#65f5deaf6d74e6135a99f763ca6209ab424b9172"
   dependencies:
     base-x "^2.0.1"
 
+buffer-crc32@^0.2.1:
+  version "0.2.13"
+  resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+
 buffer-shims@^1.0.0, buffer-shims@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
@@ -1072,6 +1120,10 @@ buffer@~4.3.0:
     ieee754 "^1.1.4"
     isarray "^1.0.0"
 
+buffers@~0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
+
 bufferutil@1.2.x:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-1.2.1.tgz#37be5d36e1e06492221e68d474b1ac58e510cbd7"
@@ -1139,6 +1191,12 @@ center-align@^0.1.1:
     align-text "^0.1.3"
     lazy-cache "^1.0.3"
 
+chainsaw@~0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
+  dependencies:
+    traverse ">=0.3.0 <0.4"
+
 chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -1240,10 +1298,24 @@ coffee-script@~1.11:
   version "1.11.1"
   resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.11.1.tgz#bf1c47ad64443a0d95d12df2b147cc0a4daad6e9"
 
+collections@^0.2.0:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/collections/-/collections-0.2.2.tgz#1f23026b2ef36f927eecc901e99c5f0d48fa334e"
+  dependencies:
+    weak-map "1.0.0"
+
 colors@0.5.x:
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774"
 
+colors@1.0.x:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
+
+colors@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
+
 combined-stream@^1.0.5, combined-stream@~1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
@@ -1264,7 +1336,7 @@ commander@2.8.x:
   dependencies:
     graceful-readlink ">= 1.0.0"
 
-commander@^2.0.0, commander@~2.9:
+commander@2.9.0, commander@^2.0.0, commander@~2.9:
   version "2.9.0"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
   dependencies:
@@ -1278,10 +1350,31 @@ commonjs-require-definition@~0.6.2:
   version "0.6.2"
   resolved "https://registry.yarnpkg.com/commonjs-require-definition/-/commonjs-require-definition-0.6.2.tgz#1b66a1babe602605c1ee0a6d86e2e26799ca7cec"
 
+component-emitter@^1.2.0:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+
+compress-commons@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.0.tgz#58587092ef20d37cb58baf000112c9278ff73b9f"
+  dependencies:
+    buffer-crc32 "^0.2.1"
+    crc32-stream "^2.0.0"
+    normalize-path "^2.0.0"
+    readable-stream "^2.0.0"
+
 concat-map@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
 
+concat-stream@^1.4.7:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
+  dependencies:
+    inherits "^2.0.3"
+    readable-stream "^2.2.2"
+    typedarray "^0.0.6"
+
 connect-busboy@0.0.2:
   version "0.0.2"
   resolved "https://registry.yarnpkg.com/connect-busboy/-/connect-busboy-0.0.2.tgz#ac5c9c96672171885e576c66b2bfd95d3bb11097"
@@ -1322,6 +1415,10 @@ cookie@0.3.1:
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
 
+cookiejar@^2.0.6:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a"
+
 core-js@^1.0.0, core-js@^1.0.1:
   version "1.2.7"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
@@ -1341,6 +1438,17 @@ cors@2.8.2:
     object-assign "^4"
     vary "^1"
 
+crc32-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4"
+  dependencies:
+    crc "^3.4.4"
+    readable-stream "^2.0.0"
+
+crc@^3.4.4:
+  version "3.4.4"
+  resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b"
+
 create-ecdh@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
@@ -1425,6 +1533,14 @@ currently-unhandled@^0.4.1:
   dependencies:
     array-find-index "^1.0.1"
 
+cycle@1.0.x:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2"
+
+daemonize2@0.4.2:
+  version "0.4.2"
+  resolved "https://registry.yarnpkg.com/daemonize2/-/daemonize2-0.4.2.tgz#c6e474078becfa7d7a814002514c4712f64fe06f"
+
 dashdash@^1.12.0:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
@@ -1574,9 +1690,9 @@ domain-browser@~1.1.7:
   version "1.1.7"
   resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
 
-duniter-bma@1.3.x, duniter-bma@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/duniter-bma/-/duniter-bma-1.3.0.tgz#a7e383756d92f937c72449debe027bb5a6bbb729"
+duniter-bma@1.3.x:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/duniter-bma/-/duniter-bma-1.3.1.tgz#8dc4ae2b1e899f6a94c4138b030a6037e72a4509"
   dependencies:
     async "2.2.0"
     body-parser "1.17.1"
@@ -1598,24 +1714,25 @@ duniter-bma@1.3.x, duniter-bma@^1.3.0:
     ws "1.1.1"
 
 duniter-common@1.3.x, duniter-common@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/duniter-common/-/duniter-common-1.3.0.tgz#834f5d8f244a0b377146735795d2e5d0328b2cfd"
+  version "1.3.4"
+  resolved "https://registry.yarnpkg.com/duniter-common/-/duniter-common-1.3.4.tgz#5f666930d373447ec202207b89a7803581cb8b1d"
   dependencies:
+    bs58 "^4.0.0"
     co "4.6.0"
     jison "0.4.17"
-    naclb "1.3.7"
-    node-pre-gyp "0.6.32"
+    naclb "1.3.9"
+    seedrandom "^2.4.3"
     tweetnacl "0.14.3"
     underscore "1.8.3"
 
 duniter-crawler@1.3.x:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/duniter-crawler/-/duniter-crawler-1.3.3.tgz#ee38907a8ec852e0843b162ad41980cdc2dead92"
+  version "1.3.6"
+  resolved "https://registry.yarnpkg.com/duniter-crawler/-/duniter-crawler-1.3.6.tgz#1a944f67a11f59b74656fa315b22cbaa4c41088d"
   dependencies:
     async "2.2.0"
     co "4.6.0"
-    duniter-bma "^1.3.0"
-    duniter-common "^1.3.0"
+    duniter-bma "1.3.x"
+    duniter-common "1.3.x"
     moment "2.18.1"
     multimeter "0.1.1"
     querablep "0.1.0"
@@ -1624,11 +1741,12 @@ duniter-crawler@1.3.x:
     underscore "1.8.3"
 
 duniter-keypair@1.3.x:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/duniter-keypair/-/duniter-keypair-1.3.0.tgz#fd63c2ffc1ced6ea68c31153fa893e6f3466ee94"
+  version "1.3.4"
+  resolved "https://registry.yarnpkg.com/duniter-keypair/-/duniter-keypair-1.3.4.tgz#0f13cbf3130ad3720bb853d4440b78a6b7106c6b"
   dependencies:
     bs58 "4.0.0"
     co "4.6.0"
+    duniter-common "1.3.x"
     inquirer "^3.0.6"
     js-yaml "3.8.2"
     node-pre-gyp "0.6.34"
@@ -1637,6 +1755,49 @@ duniter-keypair@1.3.x:
     tweetnacl "0.14.5"
     tweetnacl-util "0.15.0"
 
+"duniter-ui-cesium@file:///home/cgeek/dev/duniter-ui-cesium":
+  version "1.0.0"
+  dependencies:
+    adm-zip "^0.4.7"
+    fs-extra "^3.0.1"
+    request "^2.81.0"
+    rimraf "^2.6.1"
+    tmp "^0.0.31"
+
+duniter@1.3.x:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/duniter/-/duniter-1.3.0.tgz#f45fe7efad562f33f9a885c87d503d1d8e20de4d"
+  dependencies:
+    archiver "1.3.0"
+    async "2.2.0"
+    bindings "1.2.1"
+    co "4.6.0"
+    colors "1.1.2"
+    commander "2.9.0"
+    daemonize2 "0.4.2"
+    duniter-common "1.3.x"
+    event-stream "3.3.4"
+    heapdump "^0.3.9"
+    inquirer "3.0.6"
+    merkle "0.5.1"
+    moment "2.18.1"
+    node-pre-gyp "0.6.34"
+    optimist "0.6.1"
+    q "1.5.0"
+    q-io "1.13.2"
+    querablep "^0.1.0"
+    request "2.81.0"
+    request-promise "4.2.0"
+    spawn-sync "^1.0.15"
+    sqlite3 "3.1.4"
+    superagent "3.5.2"
+    tail "^1.2.1"
+    underscore "1.8.3"
+    unzip "0.1.11"
+    unzip2 "0.2.5"
+    winston "2.3.1"
+    wotb "0.5.x"
+
 duplexer@~0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
@@ -1671,6 +1832,12 @@ encodeurl@~1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20"
 
+end-of-stream@^1.0.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
+  dependencies:
+    once "^1.4.0"
+
 error-ex@^1.2.0:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
@@ -1842,14 +2009,16 @@ express@4.15.2, express@^4.0.0:
     utils-merge "1.0.0"
     vary "~1.1.0"
 
-extend@~3.0.0:
+extend@^3.0.0, extend@~3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
 
 external-editor@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.2.tgz#384f6d8ae02054235c19e0a142c6d6fc36ad9363"
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972"
   dependencies:
+    iconv-lite "^0.4.17"
+    jschardet "^1.4.2"
     tmp "^0.0.31"
 
 extglob@^0.3.1:
@@ -1862,6 +2031,10 @@ extsprintf@1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
 
+eyes@0.1.x:
+  version "0.1.8"
+  resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0"
+
 fast-levenshtein@^1.1.3:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz#e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9"
@@ -1964,7 +2137,7 @@ forever-agent@~0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
 
-form-data@~2.1.1:
+form-data@^2.1.1, form-data@~2.1.1:
   version "2.1.4"
   resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
   dependencies:
@@ -1972,6 +2145,10 @@ form-data@~2.1.1:
     combined-stream "^1.0.5"
     mime-types "^2.1.12"
 
+formidable@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9"
+
 forwarded@~0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363"
@@ -2003,6 +2180,14 @@ fs-extra@^0.22.1:
     jsonfile "^2.1.0"
     rimraf "^2.2.8"
 
+fs-extra@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
+  dependencies:
+    graceful-fs "^4.1.2"
+    jsonfile "^3.0.0"
+    universalify "^0.1.0"
+
 fs-mode@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/fs-mode/-/fs-mode-1.0.1.tgz#73102f40aa1a25221dda0eaa906616d6da08255a"
@@ -2028,6 +2213,15 @@ fstream-ignore@^1.0.5, fstream-ignore@~1.0.5:
     inherits "2"
     minimatch "^3.0.0"
 
+"fstream@>= 0.1.30 < 1", fstream@~0.1.21:
+  version "0.1.31"
+  resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988"
+  dependencies:
+    graceful-fs "~3.0.2"
+    inherits "~2.0.0"
+    mkdirp "0.5"
+    rimraf "2"
+
 fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2, fstream@~1.0.10:
   version "1.0.11"
   resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
@@ -2165,7 +2359,7 @@ globule@^1.0.0:
     lodash "~4.16.4"
     minimatch "~3.0.2"
 
-graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6:
+graceful-fs@^4.1.0, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6:
   version "4.1.11"
   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
 
@@ -2173,6 +2367,12 @@ graceful-fs@~2.0.0:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-2.0.3.tgz#7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0"
 
+graceful-fs@~3.0.2:
+  version "3.0.11"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818"
+  dependencies:
+    natives "^1.1.0"
+
 "graceful-readlink@>= 1.0.0":
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
@@ -2239,6 +2439,10 @@ hawk@~3.1.3:
     hoek "2.x.x"
     sntp "1.x.x"
 
+heapdump@^0.3.9:
+  version "0.3.9"
+  resolved "https://registry.yarnpkg.com/heapdump/-/heapdump-0.3.9.tgz#03c74eb0df5d67be0982e83429ba9c9d2b3b7f78"
+
 hmac-drbg@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@@ -2293,6 +2497,10 @@ iconv-lite@0.4.15:
   version "0.4.15"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
 
+iconv-lite@^0.4.17:
+  version "0.4.17"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d"
+
 ieee754@^1.1.4:
   version "1.1.8"
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
@@ -2318,7 +2526,7 @@ inflight@^1.0.4:
     once "^1.3.0"
     wrappy "1"
 
-inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1:
+inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
 
@@ -2512,7 +2720,7 @@ isobject@^2.0.0:
   dependencies:
     isarray "1.0.0"
 
-isstream@~0.1.2:
+isstream@0.1.x, isstream@~0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
 
@@ -2600,6 +2808,10 @@ jsbn@~0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
 
+jschardet@^1.4.2:
+  version "1.4.2"
+  resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.4.2.tgz#2aa107f142af4121d145659d44f50830961e699a"
+
 jsesc@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
@@ -2640,6 +2852,12 @@ jsonfile@^2.1.0:
   optionalDependencies:
     graceful-fs "^4.1.6"
 
+jsonfile@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.0.tgz#92e7c7444e5ffd5fa32e6a9ae8b85034df8347d0"
+  optionalDependencies:
+    graceful-fs "^4.1.6"
+
 jsonify@~0.0.0:
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
@@ -2677,6 +2895,12 @@ lazy-cache@^1.0.3:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
 
+lazystream@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
+  dependencies:
+    readable-stream "^2.0.5"
+
 lcid@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
@@ -2721,7 +2945,7 @@ lodash.padstart@^4.1.0:
   version "4.6.1"
   resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b"
 
-lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0:
+lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.8.0:
   version "4.17.4"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
 
@@ -2785,6 +3009,13 @@ map-stream@~0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
 
+"match-stream@>= 0.0.2 < 1", match-stream@~0.0.2:
+  version "0.0.2"
+  resolved "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz#99eb050093b34dffade421b9ac0b410a9cfa17cf"
+  dependencies:
+    buffers "~0.1.1"
+    readable-stream "~1.0.0"
+
 materialize-css@0.98.1:
   version "0.98.1"
   resolved "https://registry.yarnpkg.com/materialize-css/-/materialize-css-0.98.1.tgz#7276895b2c998b53e26deaa0c23a0484c0851d99"
@@ -2820,7 +3051,14 @@ merge@^1.1.3:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
 
-methods@~1.1.2:
+merkle@0.5.1:
+  version "0.5.1"
+  resolved "https://registry.yarnpkg.com/merkle/-/merkle-0.5.1.tgz#42e23d8f6f13a0359127049c180f2bc5bd96f028"
+  dependencies:
+    optimist "0.6.1"
+    through "2.3.6"
+
+methods@^1.1.1, methods@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
 
@@ -2867,7 +3105,7 @@ mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7:
   dependencies:
     mime-db "~1.27.0"
 
-mime@1.3.4:
+mime@1.3.4, mime@^1.2.11, mime@^1.3.4:
   version "1.3.4"
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
 
@@ -2875,6 +3113,10 @@ mime@~1.2.11:
   version "1.2.11"
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10"
 
+mimeparse@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/mimeparse/-/mimeparse-0.1.4.tgz#dafb02752370fd226093ae3152c271af01ac254a"
+
 mimic-fn@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
@@ -2912,15 +3154,15 @@ mkdirp@0.3.0, mkdirp@0.3.x:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
 
-mkdirp@0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
+mkdirp@0.5, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5, mkdirp@~0.5.0, mkdirp@~0.5.1:
+  version "0.5.1"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
   dependencies:
     minimist "0.0.8"
 
-mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5, mkdirp@~0.5.0, mkdirp@~0.5.1:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+mkdirp@0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
   dependencies:
     minimist "0.0.8"
 
@@ -2982,23 +3224,23 @@ mute-stream@0.0.7:
   version "0.0.7"
   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
 
-naclb@1.3.7:
-  version "1.3.7"
-  resolved "https://registry.yarnpkg.com/naclb/-/naclb-1.3.7.tgz#df606c3ae4442e67932c9aaeaf36eebef8860b48"
+naclb@1.3.9:
+  version "1.3.9"
+  resolved "https://registry.yarnpkg.com/naclb/-/naclb-1.3.9.tgz#8fdf893682a71494b964b24f4b59429d02998ef7"
   dependencies:
     bindings "1.2.1"
     nan "2.2.0"
-    node-pre-gyp "0.6.23"
+    node-pre-gyp "0.6.33"
 
 nan@2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/nan/-/nan-2.2.0.tgz#779c07135629503cf6a7b7e6aab33049b3c3853c"
 
-nan@^2.0.5, nan@^2.3.0, nan@^2.3.2, nan@^2.3.3:
-  version "2.6.2"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
+nan@^2.0.5, nan@^2.3.2, nan@~2.3.3:
+  version "2.3.5"
+  resolved "https://registry.yarnpkg.com/nan/-/nan-2.3.5.tgz#822a0dc266290ce4cd3a12282ca3e7e364668a08"
 
-nan@~2.4.0:
+nan@^2.3.0, nan@^2.3.3, nan@~2.4.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232"
 
@@ -3008,6 +3250,10 @@ native-notifier@~0.1.0:
   dependencies:
     tag-shell "~0.1.0"
 
+natives@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31"
+
 ncp@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
@@ -3099,9 +3345,9 @@ node-pre-gyp@0.6.23:
     tar "~2.2.0"
     tar-pack "~3.1.0"
 
-node-pre-gyp@0.6.32:
-  version "0.6.32"
-  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5"
+node-pre-gyp@0.6.33:
+  version "0.6.33"
+  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz#640ac55198f6a925972e0c16c4ac26a034d5ecc9"
   dependencies:
     mkdirp "~0.5.1"
     nopt "~3.0.6"
@@ -3113,7 +3359,7 @@ node-pre-gyp@0.6.32:
     tar "~2.2.1"
     tar-pack "~3.3.0"
 
-node-pre-gyp@0.6.34, node-pre-gyp@^0.6.29, node-pre-gyp@^0.6.34:
+node-pre-gyp@0.6.34, node-pre-gyp@^0.6.29, node-pre-gyp@^0.6.34, node-pre-gyp@~0.6.28:
   version "0.6.34"
   resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7"
   dependencies:
@@ -3181,7 +3427,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
     semver "2 || 3 || 4 || 5"
     validate-npm-package-license "^3.0.1"
 
-normalize-path@^2.0.1:
+normalize-path@^2.0.0, normalize-path@^2.0.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
   dependencies:
@@ -3237,7 +3483,7 @@ on-headers@~1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
 
-once@^1.3.0, once@^1.3.3:
+once@^1.3.0, once@^1.3.3, once@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
   dependencies:
@@ -3255,7 +3501,7 @@ onetime@^2.0.0:
   dependencies:
     mimic-fn "^1.0.0"
 
-optimist@^0.6.1:
+optimist@0.6.1, optimist@^0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
   dependencies:
@@ -3286,6 +3532,10 @@ os-locale@^1.4.0:
   dependencies:
     lcid "^1.0.0"
 
+os-shim@^0.1.2:
+  version "0.1.3"
+  resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
+
 os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -3297,6 +3547,10 @@ osenv@0, osenv@^0.1.3, osenv@^0.1.4:
     os-homedir "^1.0.0"
     os-tmpdir "^1.0.0"
 
+"over@>= 0.0.5 < 1":
+  version "0.0.5"
+  resolved "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz#f29852e70fd7e25f360e013a8ec44c82aedb5708"
+
 parse-asn1@^5.0.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712"
@@ -3460,6 +3714,15 @@ public-encrypt@^4.0.0:
     parse-asn1 "^5.0.0"
     randombytes "^2.0.1"
 
+"pullstream@>= 0.4.1 < 1", pullstream@~0.4.0:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz#d6fb3bf5aed697e831150eb1002c25a3f8ae1314"
+  dependencies:
+    over ">= 0.0.5 < 1"
+    readable-stream "~1.0.31"
+    setimmediate ">= 1.0.2 < 2"
+    slice-stream ">= 1.0.0 < 2"
+
 punycode@1.3.2:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
@@ -3477,15 +3740,30 @@ pushserve@^1:
     express "^4.0.0"
     serve-static "^1.10.0"
 
-q@1.5.0:
+q-io@1.13.2:
+  version "1.13.2"
+  resolved "https://registry.yarnpkg.com/q-io/-/q-io-1.13.2.tgz#eea130d481ddb5e1aa1bc5a66855f7391d06f003"
+  dependencies:
+    collections "^0.2.0"
+    mime "^1.2.11"
+    mimeparse "^0.1.4"
+    q "^1.0.1"
+    qs "^1.2.1"
+    url2 "^0.0.0"
+
+q@1.5.0, q@^1.0.1:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
 
-qs@6.4.0, qs@~6.4.0:
+qs@6.4.0, qs@^6.1.0, qs@~6.4.0:
   version "6.4.0"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
 
-querablep@0.1.0:
+qs@^1.2.1:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.2.tgz#19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88"
+
+querablep@0.1.0, querablep@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/querablep/-/querablep-0.1.0.tgz#b2cd2b3e75fcd45d5dd7ade4c1811ab547849a84"
 
@@ -3568,7 +3846,7 @@ readable-stream@1.1.x:
     isarray "0.0.1"
     string_decoder "~0.10.x"
 
-readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4:
+readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2:
   version "2.2.9"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8"
   dependencies:
@@ -3580,7 +3858,7 @@ readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4:
     string_decoder "~1.0.0"
     util-deprecate "~1.0.1"
 
-readable-stream@~1.0.2:
+readable-stream@~1.0.0, readable-stream@~1.0.2, readable-stream@~1.0.31:
   version "1.0.34"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
   dependencies:
@@ -3853,6 +4131,10 @@ scss-tokenizer@^0.2.3:
     js-base64 "^2.1.8"
     source-map "^0.4.2"
 
+seedrandom@^2.4.3:
+  version "2.4.3"
+  resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.3.tgz#2438504dad33917314bff18ac4d794f16d6aaecc"
+
 "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@~5.3.0:
   version "5.3.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
@@ -3904,6 +4186,10 @@ set-immediate-shim@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
 
+"setimmediate@>= 1.0.1 < 2", "setimmediate@>= 1.0.2 < 2", setimmediate@~1.0.1:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+
 setprototypeof@1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
@@ -3976,6 +4262,12 @@ slash@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
 
+"slice-stream@>= 1.0.0 < 2":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz#5b33bd66f013b1a7f86460b03d463dec39ad3ea0"
+  dependencies:
+    readable-stream "~1.0.31"
+
 sntp@1.x.x:
   version "1.0.9"
   resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
@@ -4004,6 +4296,13 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5, source-map@~0.5.1:
   version "0.5.6"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
 
+spawn-sync@^1.0.15:
+  version "1.0.15"
+  resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
+  dependencies:
+    concat-stream "^1.4.7"
+    os-shim "^0.1.2"
+
 spdx-correct@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
@@ -4028,6 +4327,13 @@ sprintf-js@~1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
 
+sqlite3@3.1.4:
+  version "3.1.4"
+  resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-3.1.4.tgz#b01176b8aebdfe9e09ce0b3faedbf305d8a64a25"
+  dependencies:
+    nan "~2.3.3"
+    node-pre-gyp "~0.6.28"
+
 sshpk@^1.7.0:
   version "1.13.0"
   resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c"
@@ -4043,6 +4349,10 @@ sshpk@^1.7.0:
     jsbn "~0.1.0"
     tweetnacl "~0.14.0"
 
+stack-trace@0.0.x:
+  version "0.0.10"
+  resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
+
 "statuses@>= 1.3.1 < 2", statuses@~1.3.1:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
@@ -4161,6 +4471,21 @@ stylus@0.x:
     sax "0.5.x"
     source-map "0.1.x"
 
+superagent@3.5.2:
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.5.2.tgz#3361a3971567504c351063abeaae0faa23dbf3f8"
+  dependencies:
+    component-emitter "^1.2.0"
+    cookiejar "^2.0.6"
+    debug "^2.2.0"
+    extend "^3.0.0"
+    form-data "^2.1.1"
+    formidable "^1.1.1"
+    methods "^1.1.1"
+    mime "^1.3.4"
+    qs "^6.1.0"
+    readable-stream "^2.0.5"
+
 supports-color@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -4173,6 +4498,10 @@ tag-shell@~0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/tag-shell/-/tag-shell-0.1.0.tgz#e743816e6a6e805ac3735f4162e016b97a7ddfbd"
 
+tail@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/tail/-/tail-1.2.1.tgz#c998a0cd9f8bf6dce780a6bc7339e66371e0db3f"
+
 tar-pack@^3.4.0:
   version "3.4.0"
   resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984"
@@ -4212,6 +4541,15 @@ tar-pack@~3.3.0:
     tar "~2.2.1"
     uid-number "~0.0.6"
 
+tar-stream@^1.5.0:
+  version "1.5.4"
+  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016"
+  dependencies:
+    bl "^1.0.0"
+    end-of-stream "^1.0.0"
+    readable-stream "^2.0.0"
+    xtend "^4.0.0"
+
 tar@^2.0.0, tar@^2.2.1, tar@~2.2.0, tar@~2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
@@ -4224,6 +4562,10 @@ through@2, through@^2.3.6, through@~2.3, through@~2.3.1:
   version "2.3.8"
   resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
 
+through@2.3.6:
+  version "2.3.6"
+  resolved "https://registry.yarnpkg.com/through/-/through-2.3.6.tgz#26681c0f524671021d4e29df7c36bce2d0ecf2e8"
+
 timers-browserify@~1.4.2:
   version "1.4.2"
   resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d"
@@ -4266,6 +4608,10 @@ traverse@>=0.2.4:
   version "0.6.6"
   resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
 
+"traverse@>=0.3.0 <0.4":
+  version "0.3.9"
+  resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
+
 trim-newlines@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
@@ -4315,6 +4661,10 @@ typedarray-to-buffer@^3.1.2:
   dependencies:
     is-typedarray "^1.0.0"
 
+typedarray@^0.0.6:
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+
 uglify-js-brunch@2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/uglify-js-brunch/-/uglify-js-brunch-2.0.1.tgz#bf55ba28df5e4ee5083bf7e3964d88eb4aabca13"
@@ -4365,6 +4715,10 @@ universal-path@^0.1:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/universal-path/-/universal-path-0.1.0.tgz#0fca24c936ea3d2282013d143710c06687ed0677"
 
+universalify@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.0.tgz#9eb1c4651debcc670cc94f1a75762332bb967778"
+
 unpipe@1.0.0, unpipe@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -4375,6 +4729,32 @@ untildify@^2.1.0:
   dependencies:
     os-homedir "^1.0.0"
 
+unzip2@0.2.5:
+  version "0.2.5"
+  resolved "https://registry.yarnpkg.com/unzip2/-/unzip2-0.2.5.tgz#4ef7a579a78c15c51f550f6a053db194149c8992"
+  dependencies:
+    binary "~0.3.0"
+    fstream "~0.1.21"
+    match-stream "~0.0.2"
+    pullstream "~0.4.0"
+    readable-stream "~1.0.0"
+    setimmediate "~1.0.1"
+
+unzip@0.1.11:
+  version "0.1.11"
+  resolved "https://registry.yarnpkg.com/unzip/-/unzip-0.1.11.tgz#89749c63b058d7d90d619f86b98aa1535d3b97f0"
+  dependencies:
+    binary ">= 0.3.0 < 1"
+    fstream ">= 0.1.30 < 1"
+    match-stream ">= 0.0.2 < 1"
+    pullstream ">= 0.4.1 < 1"
+    readable-stream "~1.0.31"
+    setimmediate ">= 1.0.1 < 2"
+
+url2@^0.0.0:
+  version "0.0.0"
+  resolved "https://registry.yarnpkg.com/url2/-/url2-0.0.0.tgz#4eaabd1d5c3ac90d62ab4485c998422865a04b1a"
+
 url@~0.11.0:
   version "0.11.0"
   resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
@@ -4434,6 +4814,10 @@ void-elements@~2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
 
+walkdir@^0.0.11:
+  version "0.0.11"
+  resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532"
+
 walker@~1.0.5:
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
@@ -4444,6 +4828,10 @@ watch@~0.10.0:
   version "0.10.0"
   resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc"
 
+weak-map@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.0.tgz#b66e56a9df0bd25a76bbf1b514db129080614a37"
+
 websocket@~1.0.8:
   version "1.0.24"
   resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.24.tgz#74903e75f2545b6b2e1de1425bc1c905917a1890"
@@ -4473,6 +4861,17 @@ window-size@0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
 
+winston@2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/winston/-/winston-2.3.1.tgz#0b48420d978c01804cf0230b648861598225a119"
+  dependencies:
+    async "~1.0.0"
+    colors "1.0.x"
+    cycle "1.0.x"
+    eyes "0.1.x"
+    isstream "0.1.x"
+    stack-trace "0.0.x"
+
 with@~4.0.0:
   version "4.0.3"
   resolved "https://registry.yarnpkg.com/with/-/with-4.0.3.tgz#eefd154e9e79d2c8d3417b647a8f14d9fecce14e"
@@ -4488,6 +4887,14 @@ wordwrap@~0.0.2:
   version "0.0.3"
   resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
 
+wotb@0.5.x:
+  version "0.5.7"
+  resolved "https://registry.yarnpkg.com/wotb/-/wotb-0.5.7.tgz#24b3c8d931533bf77971deceb85cecd2518c8316"
+  dependencies:
+    bindings "1.2.1"
+    nan "2.2.0"
+    node-pre-gyp "0.6.23"
+
 wrap-ansi@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
@@ -4570,3 +4977,12 @@ yargs@~3.10.0:
     cliui "^2.1.0"
     decamelize "^1.0.0"
     window-size "0.1.0"
+
+zip-stream@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.1.1.tgz#5216b48bbb4d2651f64d5c6e6f09eb4a7399d557"
+  dependencies:
+    archiver-utils "^1.3.0"
+    compress-commons "^1.1.0"
+    lodash "^4.8.0"
+    readable-stream "^2.0.0"
-- 
GitLab